@lumenflow/cli 5.4.0 → 5.7.12

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 (227) hide show
  1. package/README.md +42 -40
  2. package/dist/db-journal-recover.js +400 -0
  3. package/dist/db-journal-recover.js.map +1 -0
  4. package/dist/docs-sync.js +8 -3
  5. package/dist/docs-sync.js.map +1 -1
  6. package/dist/gate-defaults.js +191 -9
  7. package/dist/gate-defaults.js.map +1 -1
  8. package/dist/gate-registry.js.map +1 -1
  9. package/dist/gates/monolithic-file-contention-guard.js +167 -0
  10. package/dist/gates/monolithic-file-contention-guard.js.map +1 -0
  11. package/dist/gates/prod-migration-drift.js +207 -0
  12. package/dist/gates/prod-migration-drift.js.map +1 -0
  13. package/dist/gates/test-over-deletion-guard.js +255 -0
  14. package/dist/gates/test-over-deletion-guard.js.map +1 -0
  15. package/dist/gates-runners.js +401 -2
  16. package/dist/gates-runners.js.map +1 -1
  17. package/dist/gates.js +349 -4
  18. package/dist/gates.js.map +1 -1
  19. package/dist/lumenflow-setup.js +144 -0
  20. package/dist/lumenflow-setup.js.map +1 -0
  21. package/dist/lumenflow-upgrade.js +2 -1
  22. package/dist/lumenflow-upgrade.js.map +1 -1
  23. package/dist/mem-create.js +10 -1
  24. package/dist/mem-create.js.map +1 -1
  25. package/dist/mem-signal.js +21 -4
  26. package/dist/mem-signal.js.map +1 -1
  27. package/dist/metrics-cli.js +19 -2
  28. package/dist/metrics-cli.js.map +1 -1
  29. package/dist/metrics-snapshot.js +25 -2
  30. package/dist/metrics-snapshot.js.map +1 -1
  31. package/dist/orchestrate-initiative.js +28 -3
  32. package/dist/orchestrate-initiative.js.map +1 -1
  33. package/dist/public-manifest.js +17 -0
  34. package/dist/public-manifest.js.map +1 -1
  35. package/dist/release.js +53 -18
  36. package/dist/release.js.map +1 -1
  37. package/dist/wu-done-gates.js +121 -8
  38. package/dist/wu-done-gates.js.map +1 -1
  39. package/dist/wu-done.js +30 -6
  40. package/dist/wu-done.js.map +1 -1
  41. package/dist/wu-edit-operations.js +74 -0
  42. package/dist/wu-edit-operations.js.map +1 -1
  43. package/dist/wu-edit-validators.js +58 -0
  44. package/dist/wu-edit-validators.js.map +1 -1
  45. package/dist/wu-edit.js +106 -4
  46. package/dist/wu-edit.js.map +1 -1
  47. package/dist/wu-prep.js +132 -8
  48. package/dist/wu-prep.js.map +1 -1
  49. package/dist/wu-recover.js +6 -0
  50. package/dist/wu-recover.js.map +1 -1
  51. package/dist/wu-release.js +120 -2
  52. package/dist/wu-release.js.map +1 -1
  53. package/dist/wu-sizing-validation.js +47 -17
  54. package/dist/wu-sizing-validation.js.map +1 -1
  55. package/dist/wu-status.js +33 -0
  56. package/dist/wu-status.js.map +1 -1
  57. package/package.json +13 -11
  58. package/packs/agent-runtime/package.json +1 -1
  59. package/packs/sidekick/package.json +1 -1
  60. package/packs/software-delivery/package.json +1 -1
  61. package/templates/core/AGENTS.md.template +162 -26
  62. package/templates/core/LUMENFLOW.md.template +381 -70
  63. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +0 -5
  64. package/templates/core/ai/onboarding/agent-safety-card.md.template +63 -17
  65. package/templates/core/ai/onboarding/initiative-orchestration.md.template +4 -0
  66. package/templates/core/ai/onboarding/release-process.md.template +7 -7
  67. package/templates/core/ai/onboarding/vendor-support.md.template +74 -10
  68. package/templates/vendors/claude/.claude/skills/frontend-design/SKILL.md.template +1 -1
  69. package/templates/vendors/claude/.claude/skills/wu-lifecycle/SKILL.md.template +28 -0
  70. package/packs/agent-runtime/agent-heartbeat.ts +0 -163
  71. package/packs/agent-runtime/auto-session-integration.ts +0 -888
  72. package/packs/agent-runtime/capability-factory.ts +0 -104
  73. package/packs/agent-runtime/constants.ts +0 -21
  74. package/packs/agent-runtime/delegation-registry-schema.ts +0 -220
  75. package/packs/agent-runtime/delegation-registry-store.ts +0 -269
  76. package/packs/agent-runtime/delegation-tree.ts +0 -328
  77. package/packs/agent-runtime/index.ts +0 -20
  78. package/packs/agent-runtime/manifest.ts +0 -348
  79. package/packs/agent-runtime/memory-coordination-contract.ts +0 -86
  80. package/packs/agent-runtime/orchestration.ts +0 -2027
  81. package/packs/agent-runtime/pack-registration.ts +0 -110
  82. package/packs/agent-runtime/policy-factory.ts +0 -165
  83. package/packs/agent-runtime/remote-controls/index.ts +0 -7
  84. package/packs/agent-runtime/remote-controls/operations.ts +0 -405
  85. package/packs/agent-runtime/remote-controls/port.ts +0 -48
  86. package/packs/agent-runtime/remote-controls/state-store.ts +0 -258
  87. package/packs/agent-runtime/remote-controls/types.ts +0 -105
  88. package/packs/agent-runtime/session-schema.ts +0 -467
  89. package/packs/agent-runtime/tool-impl/agent-turn-tools.ts +0 -793
  90. package/packs/agent-runtime/tool-impl/index.ts +0 -6
  91. package/packs/agent-runtime/tool-impl/provider-adapters.ts +0 -1245
  92. package/packs/agent-runtime/tool-impl/remote-controls.mock.ts +0 -256
  93. package/packs/agent-runtime/tool-impl/remote-controls.ts +0 -273
  94. package/packs/agent-runtime/tools/index.ts +0 -4
  95. package/packs/agent-runtime/tools/types.ts +0 -47
  96. package/packs/agent-runtime/turn-lifecycle-events.ts +0 -590
  97. package/packs/agent-runtime/types.ts +0 -128
  98. package/packs/agent-runtime/vitest.config.ts +0 -11
  99. package/packs/sidekick/channel-ingress.ts +0 -137
  100. package/packs/sidekick/constants.ts +0 -10
  101. package/packs/sidekick/index.ts +0 -8
  102. package/packs/sidekick/manifest-schema.ts +0 -49
  103. package/packs/sidekick/manifest.ts +0 -512
  104. package/packs/sidekick/pack-registration.ts +0 -110
  105. package/packs/sidekick/policy-factory.ts +0 -38
  106. package/packs/sidekick/sidekick-events.ts +0 -694
  107. package/packs/sidekick/src/adapters/cloud-queue.ts +0 -101
  108. package/packs/sidekick/src/adapters/control-plane-bridge.adapter.ts +0 -386
  109. package/packs/sidekick/src/adapters/filesystem-bridge.adapter.ts +0 -228
  110. package/packs/sidekick/src/domain/channel.types.ts +0 -64
  111. package/packs/sidekick/src/ports/channel-bridge.port.ts +0 -92
  112. package/packs/sidekick/src/routines/commit.ts +0 -74
  113. package/packs/sidekick/tool-impl/channel-tools.ts +0 -577
  114. package/packs/sidekick/tool-impl/channel-transports.ts +0 -75
  115. package/packs/sidekick/tool-impl/index.ts +0 -29
  116. package/packs/sidekick/tool-impl/memory-tools.ts +0 -290
  117. package/packs/sidekick/tool-impl/routine-commit.ts +0 -102
  118. package/packs/sidekick/tool-impl/routine-tools.ts +0 -440
  119. package/packs/sidekick/tool-impl/runtime-context.ts +0 -28
  120. package/packs/sidekick/tool-impl/shared.ts +0 -125
  121. package/packs/sidekick/tool-impl/storage.ts +0 -325
  122. package/packs/sidekick/tool-impl/system-tools.ts +0 -160
  123. package/packs/sidekick/tool-impl/task-tools.ts +0 -506
  124. package/packs/sidekick/tools/channel-tools.ts +0 -53
  125. package/packs/sidekick/tools/index.ts +0 -9
  126. package/packs/sidekick/tools/memory-tools.ts +0 -53
  127. package/packs/sidekick/tools/routine-tools.ts +0 -53
  128. package/packs/sidekick/tools/system-tools.ts +0 -47
  129. package/packs/sidekick/tools/task-tools.ts +0 -61
  130. package/packs/sidekick/tools/types.ts +0 -57
  131. package/packs/sidekick/vitest.config.ts +0 -11
  132. package/packs/software-delivery/constants.ts +0 -10
  133. package/packs/software-delivery/extensions.ts +0 -140
  134. package/packs/software-delivery/gate-policies.ts +0 -134
  135. package/packs/software-delivery/index.ts +0 -8
  136. package/packs/software-delivery/manifest-schema.ts +0 -268
  137. package/packs/software-delivery/manifest.ts +0 -657
  138. package/packs/software-delivery/pack-registration.ts +0 -113
  139. package/packs/software-delivery/src/commands/index.ts +0 -5
  140. package/packs/software-delivery/src/config/delivery-review-contract.ts +0 -256
  141. package/packs/software-delivery/src/config/env-accessors.ts +0 -66
  142. package/packs/software-delivery/src/config/index.ts +0 -8
  143. package/packs/software-delivery/src/config/normalize-config-keys.ts +0 -9
  144. package/packs/software-delivery/src/config/schemas/lumenflow-config-schema-types.ts +0 -460
  145. package/packs/software-delivery/src/config/workspace-reader.ts +0 -375
  146. package/packs/software-delivery/src/constants/backlog-patterns.ts +0 -31
  147. package/packs/software-delivery/src/constants/client-ids.ts +0 -19
  148. package/packs/software-delivery/src/constants/config-contract.ts +0 -7
  149. package/packs/software-delivery/src/constants/docs-layout-presets.ts +0 -50
  150. package/packs/software-delivery/src/constants/duration-constants.ts +0 -20
  151. package/packs/software-delivery/src/constants/gate-constants.ts +0 -32
  152. package/packs/software-delivery/src/constants/index.ts +0 -29
  153. package/packs/software-delivery/src/constants/lock-constants.ts +0 -35
  154. package/packs/software-delivery/src/constants/object-guards.ts +0 -12
  155. package/packs/software-delivery/src/constants/section-headings.ts +0 -107
  156. package/packs/software-delivery/src/constants/wu-cli-constants.ts +0 -488
  157. package/packs/software-delivery/src/constants/wu-domain-constants.ts +0 -466
  158. package/packs/software-delivery/src/constants/wu-git-constants.ts +0 -7
  159. package/packs/software-delivery/src/constants/wu-id-format.ts +0 -327
  160. package/packs/software-delivery/src/constants/wu-paths-constants.ts +0 -384
  161. package/packs/software-delivery/src/constants/wu-statuses.ts +0 -287
  162. package/packs/software-delivery/src/constants/wu-type-helpers.ts +0 -67
  163. package/packs/software-delivery/src/constants/wu-ui-constants.ts +0 -267
  164. package/packs/software-delivery/src/constants/wu-validation-constants.ts +0 -73
  165. package/packs/software-delivery/src/domain/index.ts +0 -5
  166. package/packs/software-delivery/src/domain/orchestration.constants.ts +0 -166
  167. package/packs/software-delivery/src/domain/orchestration.schemas.ts +0 -238
  168. package/packs/software-delivery/src/domain/orchestration.types.ts +0 -176
  169. package/packs/software-delivery/src/methodology/incremental-test.ts +0 -122
  170. package/packs/software-delivery/src/methodology/index.ts +0 -6
  171. package/packs/software-delivery/src/methodology/manual-test-validator.ts +0 -292
  172. package/packs/software-delivery/src/policy/coverage-gate.ts +0 -270
  173. package/packs/software-delivery/src/policy/gates-agent-mode.ts +0 -223
  174. package/packs/software-delivery/src/policy/gates-config-internal.ts +0 -121
  175. package/packs/software-delivery/src/policy/gates-config.ts +0 -300
  176. package/packs/software-delivery/src/policy/gates-coverage.ts +0 -356
  177. package/packs/software-delivery/src/policy/gates-presets.ts +0 -134
  178. package/packs/software-delivery/src/policy/gates-schemas.ts +0 -173
  179. package/packs/software-delivery/src/policy/index.ts +0 -22
  180. package/packs/software-delivery/src/policy/package-manager-resolver.ts +0 -319
  181. package/packs/software-delivery/src/policy/resolve-policy.ts +0 -601
  182. package/packs/software-delivery/src/ports/config.ports.ts +0 -90
  183. package/packs/software-delivery/src/ports/dashboard-renderer.port.ts +0 -125
  184. package/packs/software-delivery/src/ports/index.ts +0 -10
  185. package/packs/software-delivery/src/ports/sync-validator.ports.ts +0 -59
  186. package/packs/software-delivery/src/ports/wu-helpers.ports.ts +0 -168
  187. package/packs/software-delivery/src/ports/wu-state.ports.ts +0 -241
  188. package/packs/software-delivery/src/primitives/index.ts +0 -5
  189. package/packs/software-delivery/src/runtime/index.ts +0 -6
  190. package/packs/software-delivery/src/runtime/work-classifier.ts +0 -561
  191. package/packs/software-delivery/src/sandbox/index.ts +0 -10
  192. package/packs/software-delivery/src/sandbox/sandbox-allowlist.ts +0 -118
  193. package/packs/software-delivery/src/sandbox/sandbox-backend-linux.ts +0 -88
  194. package/packs/software-delivery/src/sandbox/sandbox-backend-macos.ts +0 -154
  195. package/packs/software-delivery/src/sandbox/sandbox-backend-windows.ts +0 -47
  196. package/packs/software-delivery/src/sandbox/sandbox-profile.ts +0 -153
  197. package/packs/software-delivery/src/schemas/index.ts +0 -5
  198. package/packs/software-delivery/src/state/date-utils.ts +0 -158
  199. package/packs/software-delivery/src/state/index.ts +0 -15
  200. package/packs/software-delivery/src/state/state-machine.ts +0 -119
  201. package/packs/software-delivery/src/state/wu-doc-types.ts +0 -51
  202. package/packs/software-delivery/src/state/wu-paths.ts +0 -381
  203. package/packs/software-delivery/src/state/wu-schema.ts +0 -1139
  204. package/packs/software-delivery/src/state/wu-state-schema.ts +0 -255
  205. package/packs/software-delivery/src/state/wu-yaml.ts +0 -338
  206. package/packs/software-delivery/tool-impl/agent-tools.ts +0 -263
  207. package/packs/software-delivery/tool-impl/delegation-tools.ts +0 -66
  208. package/packs/software-delivery/tool-impl/flow-metrics-tools.ts +0 -219
  209. package/packs/software-delivery/tool-impl/git-runner.ts +0 -113
  210. package/packs/software-delivery/tool-impl/git-tools.ts +0 -316
  211. package/packs/software-delivery/tool-impl/index.ts +0 -15
  212. package/packs/software-delivery/tool-impl/initiative-orchestration-tools.ts +0 -720
  213. package/packs/software-delivery/tool-impl/lane-lock.ts +0 -246
  214. package/packs/software-delivery/tool-impl/memory-tools.ts +0 -470
  215. package/packs/software-delivery/tool-impl/pending-runtime-tools.ts +0 -21
  216. package/packs/software-delivery/tool-impl/runtime-cli-adapter.ts +0 -329
  217. package/packs/software-delivery/tool-impl/runtime-native-tools.ts +0 -687
  218. package/packs/software-delivery/tool-impl/worker-loader.ts +0 -52
  219. package/packs/software-delivery/tool-impl/worktree-tools.ts +0 -46
  220. package/packs/software-delivery/tool-impl/wu-lifecycle-tools.ts +0 -807
  221. package/packs/software-delivery/tools/delegation-tools.ts +0 -23
  222. package/packs/software-delivery/tools/git-tools.ts +0 -55
  223. package/packs/software-delivery/tools/index.ts +0 -8
  224. package/packs/software-delivery/tools/lane-lock-tool.ts +0 -37
  225. package/packs/software-delivery/tools/types.ts +0 -71
  226. package/packs/software-delivery/tools/worktree-tools.ts +0 -49
  227. package/packs/software-delivery/vitest.config.ts +0 -11
package/dist/wu-edit.js CHANGED
@@ -53,11 +53,11 @@ import { validateLaneFormat } from '@lumenflow/core/lane-checker';
53
53
  import { runCLI } from './cli-entry-point.js';
54
54
  import { runWuMutationCommand } from './wu-command-harness.js';
55
55
  // WU-1650: Import from decomposed modules
56
- import { validateDoneWUEdits, validateWUEditable, validateWorktreeExists, validateWorktreeExecutionContext, validateWorktreeClean, validateWorktreeBranch, normalizeReplaceCodePathsArgv, isMetadataOnlyEdit, EDIT_MODE, } from './wu-edit-validators.js';
56
+ import { validateDoneWUEdits, validateWUEditable, validateWorktreeExists, validateWorktreeExecutionContext, validateWorktreeClean, validateWorktreeBranch, normalizeReplaceCodePathsArgv, isMetadataOnlyEdit, isNonDestructiveFromMainEdit, EDIT_MODE, } from './wu-edit-validators.js';
57
57
  import { applyEdits, applyEditsInWorktree, appendWuEditStampEvent, getWuEditCommitFiles, regenerateBacklogFromState, normalizeWUDates, updateInitiativeWusArrays, displayReadinessSummary, } from './wu-edit-operations.js';
58
58
  // WU-1650: Re-export for backwards compatibility
59
59
  // All test files and external consumers import from wu-edit.ts
60
- export { validateDoneWUEdits, validateExposureValue, validateWorktreeExecutionContext, normalizeReplaceCodePathsArgv, hasScopeRelevantBranchChanges, buildAuthoritativeStateMismatchMessage, isMetadataOnlyEdit, } from './wu-edit-validators.js';
60
+ export { validateDoneWUEdits, validateExposureValue, validateWorktreeExecutionContext, normalizeReplaceCodePathsArgv, hasScopeRelevantBranchChanges, buildAuthoritativeStateMismatchMessage, isMetadataOnlyEdit, isNonDestructiveFromMainEdit, } from './wu-edit-validators.js';
61
61
  export { applyExposureEdit, applyEdits, buildWuEditStampNote, mergeStringField, getWuEditCommitFiles, } from './wu-edit-operations.js';
62
62
  const PREFIX = LOG_PREFIX.EDIT;
63
63
  /**
@@ -249,6 +249,34 @@ const EDIT_OPTIONS = {
249
249
  flags: '--plan <uri>',
250
250
  description: 'Plan file URI (lumenflow://plans/... or repo-relative path)',
251
251
  },
252
+ // WU-2940: Sizing-estimate metadata (mirrors wu:create surface). Allows
253
+ // mid-flight scope correction without wu:delete + wu:create. Each flag is
254
+ // independently editable; partial edits merge into existing sizing_estimate.
255
+ estimatedFiles: {
256
+ name: 'estimatedFiles',
257
+ flags: '--estimated-files <count>',
258
+ description: 'Sizing estimate: expected number of files modified (non-negative integer)',
259
+ },
260
+ estimatedToolCalls: {
261
+ name: 'estimatedToolCalls',
262
+ flags: '--estimated-tool-calls <count>',
263
+ description: 'Sizing estimate: expected number of tool calls (non-negative integer)',
264
+ },
265
+ sizingStrategy: {
266
+ name: 'sizingStrategy',
267
+ flags: '--sizing-strategy <strategy>',
268
+ description: 'Execution strategy (single-session, checkpoint-resume, orchestrator-worker, decomposition)',
269
+ },
270
+ sizingExceptionType: {
271
+ name: 'sizingExceptionType',
272
+ flags: '--sizing-exception-type <type>',
273
+ description: 'Sizing exception type (docs-only, shallow-multi-file, review-audit)',
274
+ },
275
+ sizingExceptionReason: {
276
+ name: 'sizingExceptionReason',
277
+ flags: '--sizing-exception-reason <text>',
278
+ description: 'Sizing exception justification (required when --sizing-exception-type is set)',
279
+ },
252
280
  };
253
281
  /**
254
282
  * Parse command line arguments
@@ -308,6 +336,12 @@ function parseArgs() {
308
336
  EDIT_OPTIONS.replaceDependencies,
309
337
  // WU-1683: Plan field
310
338
  EDIT_OPTIONS.plan,
339
+ // WU-2940: Sizing-estimate metadata (mirrors wu:create surface)
340
+ EDIT_OPTIONS.estimatedFiles,
341
+ EDIT_OPTIONS.estimatedToolCalls,
342
+ EDIT_OPTIONS.sizingStrategy,
343
+ EDIT_OPTIONS.sizingExceptionType,
344
+ EDIT_OPTIONS.sizingExceptionReason,
311
345
  // WU-1039: Add exposure for done WU metadata updates
312
346
  WU_OPTIONS.exposure,
313
347
  // Compatibility flag: reality checks now run in wu:prep/wu:done
@@ -404,7 +438,13 @@ export async function main() {
404
438
  // WU-1039: Add exposure to hasEdits check
405
439
  opts.exposure ||
406
440
  // WU-1683: Add plan to hasEdits check
407
- opts.plan;
441
+ opts.plan ||
442
+ // WU-2940: Sizing-estimate flags
443
+ opts.estimatedFiles !== undefined ||
444
+ opts.estimatedToolCalls !== undefined ||
445
+ opts.sizingStrategy !== undefined ||
446
+ opts.sizingExceptionType !== undefined ||
447
+ opts.sizingExceptionReason !== undefined;
408
448
  if (!hasEdits) {
409
449
  die('No edits specified.\n\n' +
410
450
  'Provide one of:\n' +
@@ -434,7 +474,16 @@ export async function main() {
434
474
  ' --blocked-by <wuIds> Append WU IDs that block this WU (use --replace-blocked-by to overwrite)\n' +
435
475
  ' --add-dep <wuIds> Append WU IDs to dependencies (use --replace-dependencies to overwrite)\n' +
436
476
  ' --exposure <type> Update exposure level (ui, api, backend-only, documentation)\n' +
437
- ' --plan <uri> Set plan file URI (lumenflow://plans/... or repo-relative)\n\n' +
477
+ ' --plan <uri> Set plan file URI (lumenflow://plans/... or repo-relative)\n' +
478
+ ' --estimated-files <n> Sizing: expected number of files modified (non-negative integer)\n' +
479
+ ' --estimated-tool-calls <n> Sizing: expected number of tool calls (non-negative integer)\n' +
480
+ ' --sizing-strategy <s> single-session | checkpoint-resume | orchestrator-worker | decomposition\n' +
481
+ ' --sizing-exception-type <t> docs-only | shallow-multi-file | review-audit\n' +
482
+ ' --sizing-exception-reason <text> Justification (required when --sizing-exception-type is set)\n\n' +
483
+ 'In-progress non-destructive edits (WU-2940): --description, --notes, and the\n' +
484
+ ' five sizing flags above can be applied from main without the wu:release/wu:recover\n' +
485
+ ' dance. Other edits (--lane, --code-paths replace, --priority, --type, etc.) still\n' +
486
+ ' require the dance because they restructure scope.\n\n' +
438
487
  'Note: All array fields now append by default (WU-1225). Use --replace-* flags to overwrite.');
439
488
  }
440
489
  // Apply edits to get updated WU
@@ -538,6 +587,59 @@ export async function main() {
538
587
  ` 2. Block the WU if not ready to complete:\n` +
539
588
  ` pnpm wu:block --id ${id} --reason "Needs initiative reassignment"`);
540
589
  }
590
+ // WU-2940: In-progress worktree WUs accept non-destructive edits
591
+ // (--description, --notes, sizing flags) from the main checkout via the
592
+ // micro-worktree path. This avoids the wu:release/wu:recover dance for
593
+ // mid-flight scope correction. Other edits (--lane, --code-paths replace,
594
+ // --priority, --type) still require the dance because they restructure
595
+ // scope. The micro-worktree write lands in the WU YAML on main; the
596
+ // claimed worktree picks up the change via `git pull --rebase` or
597
+ // `git fetch && git merge origin/main` when the agent is ready.
598
+ const currentWorktreeForRedirect = detectCurrentWorktree();
599
+ if (!currentWorktreeForRedirect && isNonDestructiveFromMainEdit(opts)) {
600
+ console.log(`${PREFIX} In-progress WU + non-destructive edits from main: applying via micro-worktree (WU-2940).`);
601
+ await ensureOnMain(getGitForCwd());
602
+ await ensureCleanWorkingTree();
603
+ await runWuMutationCommand({
604
+ context: telemetryContext,
605
+ step: 'edited',
606
+ toolName: MICRO_WORKTREE_OPERATIONS.WU_EDIT,
607
+ success: { mode: 'micro-worktree-in-progress', non_destructive: true },
608
+ failure: { mode: 'micro-worktree-in-progress', non_destructive: true },
609
+ execute: async () => {
610
+ await withMicroWorktree({
611
+ operation: MICRO_WORKTREE_OPERATIONS.WU_EDIT,
612
+ id,
613
+ logPrefix: PREFIX,
614
+ execute: async ({ worktreePath: mwPath }) => {
615
+ const extraFiles = [];
616
+ const wuPath = join(mwPath, WU_PATHS.WU(id));
617
+ normalizeWUDates(normalizedWU);
618
+ const yamlContent = stringifyYAML(normalizedWU);
619
+ writeFileSync(wuPath, yamlContent, {
620
+ encoding: FILE_SYSTEM.ENCODING,
621
+ });
622
+ console.log(`${PREFIX} Updated ${id}.yaml in micro-worktree (in-progress WU)`);
623
+ const wuEventsPath = await appendWuEditStampEvent(mwPath, id, WU_PATHS.WU(id));
624
+ extraFiles.push(wuEventsPath);
625
+ console.log(`${PREFIX} Appended wu:edit stamp event for ${id}`);
626
+ const backlogPath = join(mwPath, WU_PATHS.BACKLOG());
627
+ await regenerateBacklogFromState(backlogPath);
628
+ console.log(`${PREFIX} Regenerated backlog.md in micro-worktree`);
629
+ return {
630
+ commitMessage: COMMIT_FORMATS.EDIT(id),
631
+ files: getWuEditCommitFiles(id, extraFiles),
632
+ };
633
+ },
634
+ });
635
+ },
636
+ });
637
+ console.log(`${PREFIX} Successfully edited ${id} (non-destructive, in-progress)`);
638
+ console.log(`${PREFIX} Changes pushed to origin/main`);
639
+ console.log(`${PREFIX} The claimed worktree will pick up these spec edits on the next pull/merge.`);
640
+ displayReadinessSummary(id);
641
+ return;
642
+ }
541
643
  // In-progress worktree WUs: apply edits directly in the active worktree
542
644
  console.log(`${PREFIX} Editing in_progress WU in active worktree...`);
543
645
  // Resolve worktree path using defaultWorktreeFrom() helper
@@ -1 +1 @@
1
- {"version":3,"file":"wu-edit.js","sourceRoot":"","sources":["../src/wu-edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wu-edit.js","sourceRoot":"","sources":["../src/wu-edit.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,4DAA4D;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxE,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,oDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,qEAAqE;AACrE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChG,6DAA6D;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,sEAAsE;AACtE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,0CAA0C;AAC1C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,gCAAgC,EAChC,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,kBAAkB,EAClB,4BAA4B,EAC5B,SAAS,GACV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,iDAAiD;AACjD,+DAA+D;AAC/D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,gCAAgC,EAChC,6BAA6B,EAC7B,6BAA6B,EAC7B,sCAAsC,EACtC,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;AA+C/B;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,6CAA6C;KAC3D;IACD,kCAAkC;IAClC,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,oCAAoC;KAClD;IACD,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,0CAA0C;KACxD;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,+FAA+F;QACjG,YAAY,EAAE,IAAI;KACnB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,oEAAoE;KAClF;IACD,+DAA+D;IAC/D,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,6CAA6C;KAC3D;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,2DAA2D;KACzE;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,oFAAoF;QACtF,YAAY,EAAE,IAAI;KACnB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,qEAAqE;QAClF,YAAY,EAAE,IAAI;KACnB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,qEAAqE;QAClF,YAAY,EAAE,IAAI;KACnB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,kDAAkD;KAChE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,gFAAgF;QAC7F,YAAY,EAAE,IAAI;KACnB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,6CAA6C;KAC3D;IACD,kFAAkF;IAClF,oBAAoB,EAAE;QACpB,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,uDAAuD;KACrE;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,sDAAsD;KACpE;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,gEAAgE;KAC9E;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,sEAAsE;QACnF,YAAY,EAAE,IAAI;KACnB;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,sCAAsC;QAC7C,WAAW,EAAE,sEAAsE;QACnF,YAAY,EAAE,IAAI;KACnB;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,kEAAkE;QAC/E,YAAY,EAAE,IAAI;KACnB;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EAAE,kEAAkE;QAC/E,YAAY,EAAE,IAAI;KACnB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,iEAAiE;QAC9E,YAAY,EAAE,IAAI;KACnB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,iEAAiE;QAC9E,YAAY,EAAE,IAAI;KACnB;IACD,uEAAuE;IACvE,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,8EAA8E;KAC5F;IACD,yCAAyC;IACzC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,mDAAmD;KACjE;IACD,8CAA8C;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,qDAAqD;KACnE;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,+BAA+B;KAC7C;IACD,iDAAiD;IACjD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,wFAAwF;KAC3F;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,6CAA6C;KAC3D;IACD,wDAAwD;IACxD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,wGAAwG;KAC3G;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,kDAAkD;KAChE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,oHAAoH;KACvH;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,oDAAoD;KAClE;IACD,+DAA+D;IAC/D,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,6DAA6D;KAC3E;IACD,wEAAwE;IACxE,0EAA0E;IAC1E,6EAA6E;IAC7E,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,2EAA2E;KACzF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,uEAAuE;KACrF;IACD,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,4FAA4F;KAC/F;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,qEAAqE;KACnF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,kCAAkC;QACzC,WAAW,EAAE,+EAA+E;KAC7F;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,SAAS;IAChB,MAAM,cAAc,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,cAAc,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,kDAAkD;YAC/D,OAAO,EAAE;gBACP,UAAU,CAAC,EAAE;gBACb,YAAY,CAAC,QAAQ;gBACrB,0BAA0B;gBAC1B,YAAY,CAAC,KAAK;gBAClB,YAAY,CAAC,WAAW;gBACxB,YAAY,CAAC,UAAU;gBACvB,YAAY,CAAC,KAAK;gBAClB,+DAA+D;gBAC/D,YAAY,CAAC,YAAY;gBACzB,YAAY,CAAC,iBAAiB;gBAC9B,YAAY,CAAC,SAAS;gBACtB,YAAY,CAAC,eAAe;gBAC5B,YAAY,CAAC,eAAe;gBAC5B,YAAY,CAAC,gBAAgB;gBAC7B,YAAY,CAAC,KAAK;gBAClB,YAAY,CAAC,YAAY;gBACzB,YAAY,CAAC,MAAM;gBACnB,+BAA+B;gBAC/B,UAAU,CAAC,eAAe;gBAC1B,UAAU,CAAC,aAAa;gBACxB,UAAU,CAAC,YAAY;gBACvB,YAAY,CAAC,qBAAqB;gBAClC,YAAY,CAAC,qBAAqB;gBAClC,YAAY,CAAC,mBAAmB;gBAChC,YAAY,CAAC,mBAAmB;gBAChC,YAAY,CAAC,kBAAkB;gBAC/B,YAAY,CAAC,kBAAkB;gBAC/B,4CAA4C;gBAC5C,YAAY,CAAC,oBAAoB;gBACjC,YAAY,CAAC,mBAAmB;gBAChC,YAAY,CAAC,sBAAsB;gBACnC,iCAAiC;gBACjC,YAAY,CAAC,IAAI;gBACjB,iCAAiC;gBACjC,YAAY,CAAC,IAAI;gBACjB,YAAY,CAAC,QAAQ;gBACrB,oCAAoC;gBACpC,YAAY,CAAC,UAAU;gBACvB,YAAY,CAAC,KAAK;gBAClB,2CAA2C;gBAC3C,YAAY,CAAC,SAAS;gBACtB,YAAY,CAAC,gBAAgB;gBAC7B,YAAY,CAAC,MAAM;gBACnB,YAAY,CAAC,mBAAmB;gBAChC,sBAAsB;gBACtB,YAAY,CAAC,IAAI;gBACjB,gEAAgE;gBAChE,YAAY,CAAC,cAAc;gBAC3B,YAAY,CAAC,kBAAkB;gBAC/B,YAAY,CAAC,cAAc;gBAC3B,YAAY,CAAC,mBAAmB;gBAChC,YAAY,CAAC,qBAAqB;gBAClC,qDAAqD;gBACrD,UAAU,CAAC,QAAQ;gBACnB,gEAAgE;gBAChE,UAAU,CAAC,QAAQ;aACpB;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;YAChB,iBAAiB,EAAE,IAAI;SACxB,CAAe,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,EAAU;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,CAAC;AACxF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB;IACnC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC;IAChD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,GAAG,CACD,uEAAuE,MAAM,mFAAmF,CACjK,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,gHAAgH;AAChH,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,8EAA8E;IAC9E,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAEpB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAEpD,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEpE,uFAAuF;IACvF,gEAAgE;IAChE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC1B,GAAG,CACD,kBAAkB,EAAE,6BAA6B;gBAC/C,oEAAoE;gBACpE,qBAAqB,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBACpE,yBAAyB;gBACzB,gEAAgE;gBAChE,8DAA8D;gBAC9D,mDAAmD,CACtD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,wFAAwF;IACxF,4CAA4C;IAC5C,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CACD,2DAA2D;YACzD,2BAA2B;YAC3B,qGAAqG;YACrG,uEAAuE,CAC1E,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ;QACb,uCAAuC;QACvC,IAAI,CAAC,KAAK;QACV,IAAI,CAAC,WAAW;QAChB,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;QACV,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,iDAAiD;QACjD,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;QACjE,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;QACjE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/D,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/D,sCAAsC;QACtC,IAAI,CAAC,IAAI;QACT,mDAAmD;QACnD,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,QAAQ;QACb,sDAAsD;QACtD,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,KAAK;QACV,wDAAwD;QACxD,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,MAAM;QACX,0CAA0C;QAC1C,IAAI,CAAC,QAAQ;QACb,sCAAsC;QACtC,IAAI,CAAC,IAAI;QACT,iCAAiC;QACjC,IAAI,CAAC,cAAc,KAAK,SAAS;QACjC,IAAI,CAAC,kBAAkB,KAAK,SAAS;QACrC,IAAI,CAAC,cAAc,KAAK,SAAS;QACjC,IAAI,CAAC,mBAAmB,KAAK,SAAS;QACtC,IAAI,CAAC,qBAAqB,KAAK,SAAS,CAAC;IAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,GAAG,CACD,yBAAyB;YACvB,mBAAmB;YACnB,gEAAgE;YAChE,kDAAkD;YAClD,wDAAwD;YACxD,8GAA8G;YAC9G,kFAAkF;YAClF,qGAAqG;YACrG,+EAA+E;YAC/E,0FAA0F;YAC1F,2FAA2F;YAC3F,oFAAoF;YACpF,sFAAsF;YACtF,gEAAgE;YAChE,wEAAwE;YACxE,8DAA8D;YAC9D,0HAA0H;YAC1H,qFAAqF;YACrF,uFAAuF;YACvF,+GAA+G;YAC/G,+EAA+E;YAC/E,iFAAiF;YACjF,6GAA6G;YAC7G,6EAA6E;YAC7E,+EAA+E;YAC/E,wGAAwG;YACxG,uGAAuG;YACvG,4FAA4F;YAC5F,0FAA0F;YAC1F,gGAAgG;YAChG,6FAA6F;YAC7F,wGAAwG;YACxG,+EAA+E;YAC/E,qGAAqG;YACrG,gFAAgF;YAChF,wFAAwF;YACxF,uFAAuF;YACvF,yDAAyD;YACzD,6FAA6F,CAChG,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAE/C,4DAA4D;IAC5D,+EAA+E;IAC/E,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAE7D,uFAAuF;IACvF,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAClE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM;aACzC,GAAG,CAAC,CAAC,KAAe,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACzE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,GAAG,CAAC,GAAG,MAAM,kCAAkC,MAAM,qCAAqC,CAAC,CAAC;IAC9F,CAAC;IAED,gFAAgF;IAChF,wEAAwE;IACxE,uDAAuD;IACvD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,UAAU,CAC3B,uBAAsE,EACtE;QACE,cAAc;QACd,KAAK,EAAE,QAAQ;KAChB,CACF,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtD,GAAG,CACD,GAAG,MAAM,4BAA4B,SAAS,IAAI;YAChD,8CAA8C,CACjD,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC;IAC3C,MAAM,gBAAgB,GAAG;QACvB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,UAAU,CAAC,IAAe;KAC9F,CAAC;IAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,uDAAuD;YAC9D,wCAAwC,CAC3C,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACtB,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,6CAA6C;IAC7C,IAAI,QAAQ,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YACjE,GAAG,CACD,+CAA+C,EAAE,OAAO;gBACtD,qFAAqF;gBACrF,wDAAwD;gBACxD,YAAY;gBACZ,iDAAiD,EAAE,IAAI;gBACvD,yCAAyC,EAAE,iBAAiB,IAAI,CAAC,UAAU,IAAI;gBAC/E,+CAA+C;gBAC/C,2BAA2B,EAAE,2CAA2C,CAC3E,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GACjB,OAAO,UAAU,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,GAAG,CACD,4BAA4B,EAAE,kCAAkC;gBAC9D,0DAA0D;gBAC1D,4DAA4D,CAC/D,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,YAAY,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC9D,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YACpC,GAAG,CACD,4BAA4B,EAAE,qDAAqD;gBACjF,mBAAmB,aAAa,IAAI;gBACpC,mBAAmB,aAAa,MAAM;gBACtC,yCAAyC,CAC5C,CAAC;QACJ,CAAC;QAED,MAAM,oBAAoB,CAAC;YACzB,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;YAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;YAC9B,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,sBAAsB,EAAE,CAAC;gBAC/B,MAAM,oBAAoB,CAAC;oBACzB,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE;oBAC3B,EAAE;oBACF,SAAS,EAAE,YAAY;iBACxB,CAAC,CAAC;gBACH,MAAM,YAAY,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YACrD,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,wBAAwB,EAAE,cAAc,aAAa,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,2CAA2C,aAAa,EAAE,CAAC,CAAC;QAEjF,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3C,wDAAwD;QACxD,2EAA2E;QAC3E,iEAAiE;QACjE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YACjE,GAAG,CACD,+CAA+C,EAAE,OAAO;gBACtD,qFAAqF;gBACrF,wDAAwD;gBACxD,YAAY;gBACZ,iDAAiD,EAAE,IAAI;gBACvD,yCAAyC,EAAE,iBAAiB,IAAI,CAAC,UAAU,IAAI;gBAC/E,+CAA+C;gBAC/C,2BAA2B,EAAE,2CAA2C,CAC3E,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,uEAAuE;QACvE,oEAAoE;QACpE,kEAAkE;QAClE,gEAAgE;QAChE,MAAM,0BAA0B,GAAG,qBAAqB,EAAE,CAAC;QAC3D,IAAI,CAAC,0BAA0B,IAAI,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,2FAA2F,CACrG,CAAC;YACF,MAAM,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;YACnC,MAAM,sBAAsB,EAAE,CAAC;YAE/B,MAAM,oBAAoB,CAAC;gBACzB,OAAO,EAAE,gBAAgB;gBACzB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,yBAAyB,CAAC,OAAO;gBAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,eAAe,EAAE,IAAI,EAAE;gBACtE,OAAO,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,eAAe,EAAE,IAAI,EAAE;gBACtE,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,iBAAiB,CAAC;wBACtB,SAAS,EAAE,yBAAyB,CAAC,OAAO;wBAC5C,EAAE;wBACF,SAAS,EAAE,MAAM;wBACjB,OAAO,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;4BAC1C,MAAM,UAAU,GAAa,EAAE,CAAC;4BAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC7C,gBAAgB,CAAC,YAAY,CAAC,CAAC;4BAC/B,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;4BAChD,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE;gCACjC,QAAQ,EAAE,WAAW,CAAC,QAA0B;6BACjD,CAAC,CAAC;4BACH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,YAAY,EAAE,0CAA0C,CAAC,CAAC;4BAE/E,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC/E,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;4BAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,qCAAqC,EAAE,EAAE,CAAC,CAAC;4BAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;4BACrD,MAAM,0BAA0B,CAAC,WAAW,CAAC,CAAC;4BAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,2CAA2C,CAAC,CAAC;4BAElE,OAAO;gCACL,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gCACtC,KAAK,EAAE,oBAAoB,CAAC,EAAE,EAAE,UAAU,CAAC;6BAC5C,CAAC;wBACJ,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,wBAAwB,EAAE,iCAAiC,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,gCAAgC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,6EAA6E,CACvF,CAAC;YACF,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,+CAA+C,CAAC,CAAC;QAEtE,2DAA2D;QAC3D,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,GAAG,CACD,yCAAyC,EAAE,OAAO;gBAChD,wEAAwE,CAC3E,CAAC;QACJ,CAAC;QAED,uFAAuF;QACvF,8EAA8E;QAC9E,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;QAChD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,oBAAoB,CAAC;QACzB,IAAI,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,kBAAkB,EAAE,CAAC;YACxE,sDAAsD;YACtD,oBAAoB,GAAG,eAAe,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,sCAAsC,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,+EAA+E;YAC/E,0DAA0D;YAC1D,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,oBAAoB,CAAC;YACzB,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE;YACtE,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE;YACtE,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,wDAAwD;gBACxD,sBAAsB,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBACjD,gCAAgC,CAC9B,OAAO,CAAC,GAAG,EAAE,EACb,oBAAoB,EACpB,EAAE,EACF,yBAAyB,CAAC,EAAE,CAAC,CAC9B,CAAC;gBACF,qEAAqE;gBACrE,wEAAwE;gBACxE,mDAAmD;gBACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,MAAM,qBAAqB,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,qDAAqD,CAAC,CAAC;gBAC9E,CAAC;gBAED,yCAAyC;gBACzC,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,IAAc,EAAE,EAAE,CAAC,CAAC;gBACpE,MAAM,sBAAsB,CAAC,oBAAoB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;gBACvE,6DAA6D;gBAC7D,MAAM,oBAAoB,CAAC;oBACzB,YAAY,EAAE,oBAAoB;oBAClC,EAAE;oBACF,SAAS,EAAE,YAAY;iBACxB,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,wBAAwB,EAAE,cAAc,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,mCAAmC,CAAC,CAAC;QAE1D,qCAAqC;QACrC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,4DAA4D;QAC5D,wDAAwD;QACxD,sFAAsF;QACtF,MAAM,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;QACnC,MAAM,sBAAsB,EAAE,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,uCAAuC,CAAC,CAAC;QAE9D,yDAAyD;QACzD,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,MAAM,iBAAiB,GAAG,aAAa,IAAI,aAAa,KAAK,aAAa,CAAC;QAE3E,MAAM,oBAAoB,CAAC;YACzB,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,yBAAyB,CAAC,OAAO;YAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE;YACnF,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE;YACnF,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,iBAAiB,CAAC;oBACtB,SAAS,EAAE,yBAAyB,CAAC,OAAO;oBAC5C,EAAE,EAAE,EAAE;oBACN,SAAS,EAAE,MAAM;oBACjB,OAAO,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;wBAClC,MAAM,UAAU,GAAa,EAAE,CAAC;wBAEhC,oEAAoE;wBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACnD,8EAA8E;wBAC9E,gBAAgB,CAAC,YAAY,CAAC,CAAC;wBAC/B,gEAAgE;wBAChE,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;wBAEhD,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE;4BACjC,QAAQ,EAAE,WAAW,CAAC,QAA0B;yBACjD,CAAC,CAAC;wBACH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,YAAY,EAAE,yBAAyB,CAAC,CAAC;wBAE9D,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,YAAY,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACrF,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,qCAAqC,EAAE,EAAE,CAAC,CAAC;wBAEhE,mDAAmD;wBACnD,IAAI,iBAAiB,EAAE,CAAC;4BACtB,MAAM,eAAe,GAAG,yBAAyB,CAC/C,YAAY,EACZ,EAAE,EACF,aAAmC,EACnC,aAAa,CACd,CAAC;4BACF,UAAU,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;wBACtC,CAAC;wBAED,yEAAyE;wBACzE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC3D,MAAM,0BAA0B,CAAC,WAAW,CAAC,CAAC;wBAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,2CAA2C,CAAC,CAAC;wBAElE,OAAO;4BACL,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;4BACtC,KAAK,EAAE,oBAAoB,CAAC,EAAE,EAAE,UAAU,CAAC;yBAC5C,CAAC;oBACJ,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,wBAAwB,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,gCAAgC,CAAC,CAAC;QAEvD,qCAAqC;QACrC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,kFAAkF;AAClF,wEAAwE;AACxE,iFAAiF;AACjF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
package/dist/wu-prep.js CHANGED
@@ -54,12 +54,17 @@ import { createPreGatesCheckpoint } from '@lumenflow/core/wu-checkpoint';
54
54
  import { isSignalAddressedToAny, loadSignals, resolveReaderIdentities, } from '@lumenflow/memory/signal';
55
55
  import { resolveTddDiffEvidencePolicy, resolveTddOrderingPolicy, resolveScopedUnitTestExecutionPlan, formatScopedUnitTestFallbackMessage, } from '@lumenflow/packs-software-delivery/policy/gates-config';
56
56
  import { runGates } from './gates.js';
57
+ // WU-2927: latency-budget warning lookup for the opt-in local-prep profile
58
+ import { getLocalPrepLatencyBudgetMs } from './gates-runners.js';
57
59
  import { evaluateMainDirtyMutationGuard } from './hooks/dirty-guard.js';
58
60
  import { enforceWuBriefEvidenceForPrep, resolveWuBriefFreshnessMinutes, resolveWuBriefPolicyMode, } from './wu-done-policies.js';
59
61
  import { resolveScopedUnitTestsForLifecycle } from './wu-lifecycle-sync/gate-scope-resolver.js';
60
62
  export { isCodePathCoveredByChanges, findMissingCodePathCoverage, checkCodePathCoverageBeforeGates, formatCodePathCoverageFailure, } from './wu-code-path-coverage.js';
61
63
  const { LOCATION_TYPES } = CONTEXT_VALIDATION;
62
64
  const TDD_EXCEPTION_MARKER = 'tdd-exception:';
65
+ const AUTO_TDD_EXCEPTION_WU_TYPES = new Set(['chore', 'config', 'configuration']);
66
+ const CONFIG_ONLY_TDD_EXCEPTION_EXTENSIONS = new Set(['.yaml', '.yml', '.json', '.toml']);
67
+ const SOURCE_DIRECTORY_SEGMENT = 'src';
63
68
  const CHANGED_FILES_EMPTY = ' - (none)';
64
69
  const AUTOMATED_TEST_DIFF_EVIDENCE_LABEL = 'automated test diff evidence';
65
70
  const GLOB_MATCH_OPTIONS = { dot: true };
@@ -97,6 +102,10 @@ const PREP_OPTIONS = {
97
102
  },
98
103
  force: WU_OPTIONS.force,
99
104
  reason: WU_OPTIONS.reason,
105
+ // WU-2925: --fix-wu plumbed into wu:prep so per-gate skips can be authored at prep time.
106
+ fixWu: WU_OPTIONS.fixWu,
107
+ // WU-2925: per-gate skip surface (repeatable). Symmetric with wu:done.
108
+ skipGate: WU_OPTIONS.skipGate,
100
109
  allowUnreadSignals: {
101
110
  name: 'allowUnreadSignals',
102
111
  flags: '--allow-unread-signals',
@@ -110,9 +119,34 @@ export function buildRunGatesOptionsForPrep(options) {
110
119
  docsOnly: options.docsOnly,
111
120
  fullTests: options.fullTests,
112
121
  scopedTestPaths: options.scopedTestPaths,
122
+ skipGates: options.skipGates,
113
123
  commandContext: 'wu:prep',
114
124
  };
115
125
  }
126
+ /**
127
+ * WU-2925: Normalize a CLI-style --skip-gate value (string | string[]) into a
128
+ * deduplicated string array. Duplicated locally to avoid coupling wu-prep to
129
+ * wu-done-gates internals.
130
+ */
131
+ export function normalizeSkipGateArg(value) {
132
+ if (value === undefined || value === null)
133
+ return [];
134
+ const list = Array.isArray(value) ? value : [value];
135
+ const out = [];
136
+ const seen = new Set();
137
+ for (const v of list) {
138
+ if (typeof v !== 'string')
139
+ continue;
140
+ const trimmed = v.trim();
141
+ if (!trimmed)
142
+ continue;
143
+ if (seen.has(trimmed))
144
+ continue;
145
+ seen.add(trimmed);
146
+ out.push(trimmed);
147
+ }
148
+ return out;
149
+ }
116
150
  /**
117
151
  * WU-2587: Automated test diff evidence is enforced from the resolved
118
152
  * tdd_diff_evidence policy instead of a hardcoded feature/bug check.
@@ -120,12 +154,43 @@ export function buildRunGatesOptionsForPrep(options) {
120
154
  export function shouldEnforceTddDiffEvidence(doc, cwd) {
121
155
  return shouldEnforceTddDiffEvidenceForPolicy(doc, resolveTddDiffEvidencePolicy(cwd || process.cwd()));
122
156
  }
123
- export function hasDocumentedTddException(notes) {
124
- if (typeof notes === 'string') {
125
- return notes.toLowerCase().includes(TDD_EXCEPTION_MARKER);
157
+ function isRecord(value) {
158
+ return typeof value === 'object' && value !== null;
159
+ }
160
+ function isAutoTddExceptionWuType(type) {
161
+ return typeof type === 'string' && AUTO_TDD_EXCEPTION_WU_TYPES.has(type.trim().toLowerCase());
162
+ }
163
+ function isConfigOnlyTddExceptionPath(filePath) {
164
+ const normalized = filePath.replace(/\\/g, '/').trim();
165
+ if (!normalized) {
166
+ return false;
167
+ }
168
+ if (normalized.split('/').includes(SOURCE_DIRECTORY_SEGMENT)) {
169
+ return false;
170
+ }
171
+ return CONFIG_ONLY_TDD_EXCEPTION_EXTENSIONS.has(path.extname(normalized).toLowerCase());
172
+ }
173
+ function areCodePathsConfigOnlyForTddException(codePaths) {
174
+ if (!Array.isArray(codePaths) || codePaths.length === 0) {
175
+ return false;
176
+ }
177
+ return codePaths.every((entry) => typeof entry === 'string' && isConfigOnlyTddExceptionPath(entry));
178
+ }
179
+ export function hasDocumentedTddException(value) {
180
+ if (typeof value === 'string') {
181
+ return value.toLowerCase().includes(TDD_EXCEPTION_MARKER);
126
182
  }
127
- if (Array.isArray(notes)) {
128
- return notes.some((entry) => typeof entry === 'string' && hasDocumentedTddException(entry));
183
+ if (Array.isArray(value)) {
184
+ return value.some((entry) => typeof entry === 'string' && hasDocumentedTddException(entry));
185
+ }
186
+ if (isRecord(value)) {
187
+ if (hasDocumentedTddException(value.notes)) {
188
+ return true;
189
+ }
190
+ if (isAutoTddExceptionWuType(value.type)) {
191
+ return true;
192
+ }
193
+ return areCodePathsConfigOnlyForTddException(value.code_paths ?? value.codePaths);
129
194
  }
130
195
  return false;
131
196
  }
@@ -195,7 +260,7 @@ export async function evaluateTddDiffEvidenceForPrep(options) {
195
260
  if (!shouldEnforceTddDiffEvidenceForPolicy(doc, policy)) {
196
261
  return { valid: true, reason: 'not-applicable', changedFiles: [] };
197
262
  }
198
- if (hasDocumentedTddException(doc.notes)) {
263
+ if (hasDocumentedTddException(doc)) {
199
264
  return { valid: true, reason: 'documented-exception', changedFiles: [] };
200
265
  }
201
266
  const resolveChangedFilesFn = options.resolveChangedFilesFn ?? resolveChangedFiles;
@@ -393,7 +458,7 @@ export async function evaluateCommitOrderForPrep(options) {
393
458
  !policy.applies_to_types.some((wuType) => wuType === doc.type)) {
394
459
  return { valid: true, reason: 'not-applicable' };
395
460
  }
396
- if (hasDocumentedTddException(doc.notes)) {
461
+ if (hasDocumentedTddException(doc)) {
397
462
  return { valid: true, reason: 'documented-exception' };
398
463
  }
399
464
  const resolveCommitsFn = options.resolveBranchCommitsFn ?? defaultResolveBranchCommits;
@@ -963,6 +1028,7 @@ export async function createPrepCheckpoint(params) {
963
1028
  worktreePath: params.worktreePath,
964
1029
  branchName: params.branchName,
965
1030
  gatesPassed: true,
1031
+ skippedGates: params.skippedGates,
966
1032
  }, {});
967
1033
  }
968
1034
  export async function main() {
@@ -978,6 +1044,8 @@ export async function main() {
978
1044
  PREP_OPTIONS.fullTests,
979
1045
  PREP_OPTIONS.force,
980
1046
  PREP_OPTIONS.reason,
1047
+ PREP_OPTIONS.fixWu,
1048
+ PREP_OPTIONS.skipGate,
981
1049
  PREP_OPTIONS.allowUnreadSignals,
982
1050
  ],
983
1051
  required: ['id'],
@@ -1197,6 +1265,8 @@ export async function main() {
1197
1265
  console.log(` ${formatSkipGatesCommand({ wuId: id, mainCheckout: location.mainCheckout })}`);
1198
1266
  console.log('');
1199
1267
  console.log(`${PREP_PREFIX} Replace WU-XXXX with the WU that will fix these pre-existing failures.`);
1268
+ console.log(`${PREP_PREFIX} ${EMOJI.WARNING} --skip-gates is deprecated; prefer per-gate ` +
1269
+ `--skip-gate <name> (repeatable). See https://lumenflow.dev/reference/gates#per-gate-skip`);
1200
1270
  console.log('');
1201
1271
  }
1202
1272
  });
@@ -1208,14 +1278,53 @@ export async function main() {
1208
1278
  else if (scopedUnitTests.length > 0) {
1209
1279
  console.log(`${PREP_PREFIX} Using scoped tests from tests.unit (${scopedUnitTests.length} path${scopedUnitTests.length === 1 ? '' : 's'}).`);
1210
1280
  }
1281
+ // WU-2925: Per-gate skip list (--skip-gate <name>, repeatable).
1282
+ const perGateSkipList = normalizeSkipGateArg(args.skipGate ?? args['skip-gate']);
1283
+ if (perGateSkipList.length > 0) {
1284
+ if (!args.reason) {
1285
+ die(`${EMOJI.FAILURE} --skip-gate requires --reason "<explanation of why this gate is being skipped>"`);
1286
+ }
1287
+ if (!args.fixWu) {
1288
+ die(`${EMOJI.FAILURE} --skip-gate requires --fix-wu WU-{id} (the WU that will fix this gate)`);
1289
+ }
1290
+ if (!PATTERNS.WU_ID.test(String(args.fixWu).toUpperCase())) {
1291
+ die(`${EMOJI.FAILURE} Invalid --fix-wu value '${args.fixWu}'. Expected format: WU-123`);
1292
+ }
1293
+ }
1211
1294
  // Run gates
1295
+ // WU-2926: Gate runtime now distinguishes six states with stable
1296
+ // glyphs/labels:
1297
+ // ✅ passed ❌ failed 🚫 BLOCKED (missing-prereq, non-skippable)
1298
+ // ⊘ AUTO-SKIPPED (not-applicable | missing-prereq) ⏭ SKIPPED-BY-AGENT
1299
+ // BLOCKED exits non-zero — the gate is applicable, prereqs are missing,
1300
+ // and the gate is marked skippable: false (e.g. safety-critical-test on
1301
+ // applicable changes without the test runner). Override per-repo via
1302
+ // software_delivery.gates.overrides.<gate>.skippable=true if intentional.
1212
1303
  console.log(`${PREP_PREFIX} Running gates...`);
1304
+ // WU-2927: Track total elapsed gate time for the optional local-prep latency
1305
+ // budget warning. The budget itself is opt-in through
1306
+ // software_delivery.gates.local_prep.latency_budget_warn_ms (default 180000ms).
1307
+ const gatesStart = Date.now();
1213
1308
  const gatesResult = await runGates(buildRunGatesOptionsForPrep({
1214
1309
  cwd: location.cwd,
1215
1310
  docsOnly: args.docsOnly,
1216
1311
  fullTests: args.fullTests,
1217
1312
  scopedTestPaths: scopedUnitTests,
1313
+ skipGates: perGateSkipList,
1218
1314
  }));
1315
+ const elapsedMs = Date.now() - gatesStart;
1316
+ console.log(`${PREP_PREFIX} Total elapsed: ${(elapsedMs / 1000).toFixed(1)}s`);
1317
+ // WU-2927: Latency-budget warning. Read budget on each call so config edits
1318
+ // take effect without a rebuild. Warning only — never blocks prep.
1319
+ try {
1320
+ const budgetMs = getLocalPrepLatencyBudgetMs(location.cwd);
1321
+ if (budgetMs > 0 && elapsedMs > budgetMs) {
1322
+ console.log(`${PREP_PREFIX} ${EMOJI.WARNING} Total elapsed ${(elapsedMs / 1000).toFixed(1)}s exceeds budget ${(budgetMs / 1000).toFixed(1)}s. Review software_delivery.gates.local_prep settings.`);
1323
+ }
1324
+ }
1325
+ catch {
1326
+ // Best-effort: a malformed config never blocks wu:prep.
1327
+ }
1219
1328
  if (!gatesResult) {
1220
1329
  const buildDiagnostic = await diagnoseBootstrapTrapBuild({ cwd: location.cwd });
1221
1330
  const bootstrapTrapDiagnosis = buildDiagnostic.trap ||
@@ -1240,8 +1349,23 @@ export async function main() {
1240
1349
  process.exit(EXIT_CODES.ERROR);
1241
1350
  }
1242
1351
  // WU-2102: Write gates-passed checkpoint so wu:done can skip gates
1352
+ // WU-2925: Propagate prep-side per-gate skips into the checkpoint so wu:done
1353
+ // writes lifecycle: 'done' audit rows referencing the prep skip.
1243
1354
  const branchName = defaultBranchFrom(doc) ?? getCurrentBranch() ?? '';
1244
- await createPrepCheckpoint({ wuId: id, worktreePath: location.cwd, branchName });
1355
+ const checkpointSkippedGates = perGateSkipList.length > 0
1356
+ ? perGateSkipList.map((gate_name) => ({
1357
+ gate_name,
1358
+ reason: String(args.reason ?? ''),
1359
+ fix_wu: String(args.fixWu ?? ''),
1360
+ source: 'agent',
1361
+ }))
1362
+ : undefined;
1363
+ await createPrepCheckpoint({
1364
+ wuId: id,
1365
+ worktreePath: location.cwd,
1366
+ branchName,
1367
+ skippedGates: checkpointSkippedGates,
1368
+ });
1245
1369
  // WU-1493: Success - print mode-appropriate message
1246
1370
  if (branchPr) {
1247
1371
  const laneBranch = defaultBranchFrom(doc) ?? '';