@lumenflow/core 4.10.0 → 4.12.0

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 (76) hide show
  1. package/dist/arg-parser.d.ts.map +1 -1
  2. package/dist/arg-parser.js +19 -1
  3. package/dist/arg-parser.js.map +1 -1
  4. package/dist/atomic-merge.d.ts.map +1 -1
  5. package/dist/atomic-merge.js +28 -0
  6. package/dist/atomic-merge.js.map +1 -1
  7. package/dist/backlog-generator.d.ts +6 -0
  8. package/dist/backlog-generator.d.ts.map +1 -1
  9. package/dist/backlog-generator.js +12 -0
  10. package/dist/backlog-generator.js.map +1 -1
  11. package/dist/file-classifiers.d.ts +11 -9
  12. package/dist/file-classifiers.d.ts.map +1 -1
  13. package/dist/file-classifiers.js +14 -20
  14. package/dist/file-classifiers.js.map +1 -1
  15. package/dist/gates-config.d.ts +3 -2
  16. package/dist/gates-config.d.ts.map +1 -1
  17. package/dist/gates-config.js +4 -2
  18. package/dist/gates-config.js.map +1 -1
  19. package/dist/gates-presets.d.ts +26 -0
  20. package/dist/gates-presets.d.ts.map +1 -1
  21. package/dist/gates-presets.js +43 -0
  22. package/dist/gates-presets.js.map +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/lumenflow-config-schema.d.ts +10 -0
  28. package/dist/lumenflow-config-schema.d.ts.map +1 -1
  29. package/dist/lumenflow-config-schema.js +3 -1
  30. package/dist/lumenflow-config-schema.js.map +1 -1
  31. package/dist/package-manager-resolver.d.ts +16 -0
  32. package/dist/package-manager-resolver.d.ts.map +1 -1
  33. package/dist/package-manager-resolver.js +46 -0
  34. package/dist/package-manager-resolver.js.map +1 -1
  35. package/dist/path-classifiers.d.ts +2 -8
  36. package/dist/path-classifiers.d.ts.map +1 -1
  37. package/dist/path-classifiers.js +10 -18
  38. package/dist/path-classifiers.js.map +1 -1
  39. package/dist/ports/wu-state.ports.d.ts +12 -0
  40. package/dist/ports/wu-state.ports.d.ts.map +1 -1
  41. package/dist/schemas/wu-config.d.ts +17 -0
  42. package/dist/schemas/wu-config.d.ts.map +1 -1
  43. package/dist/schemas/wu-config.js +31 -0
  44. package/dist/schemas/wu-config.js.map +1 -1
  45. package/dist/spawn-constraints-generator.js +1 -1
  46. package/dist/wu-done-docs-only.d.ts +7 -9
  47. package/dist/wu-done-docs-only.d.ts.map +1 -1
  48. package/dist/wu-done-docs-only.js +11 -23
  49. package/dist/wu-done-docs-only.js.map +1 -1
  50. package/dist/wu-done-validation.d.ts.map +1 -1
  51. package/dist/wu-done-validation.js +2 -1
  52. package/dist/wu-done-validation.js.map +1 -1
  53. package/dist/wu-id-format.d.ts +139 -0
  54. package/dist/wu-id-format.d.ts.map +1 -0
  55. package/dist/wu-id-format.js +252 -0
  56. package/dist/wu-id-format.js.map +1 -0
  57. package/dist/wu-rename-projection.d.ts +62 -0
  58. package/dist/wu-rename-projection.d.ts.map +1 -0
  59. package/dist/wu-rename-projection.js +66 -0
  60. package/dist/wu-rename-projection.js.map +1 -0
  61. package/dist/wu-rules-core.d.ts.map +1 -1
  62. package/dist/wu-rules-core.js +11 -2
  63. package/dist/wu-rules-core.js.map +1 -1
  64. package/dist/wu-state-indexer.d.ts +23 -0
  65. package/dist/wu-state-indexer.d.ts.map +1 -1
  66. package/dist/wu-state-indexer.js +70 -2
  67. package/dist/wu-state-indexer.js.map +1 -1
  68. package/dist/wu-state-schema.d.ts +40 -1
  69. package/dist/wu-state-schema.d.ts.map +1 -1
  70. package/dist/wu-state-schema.js +27 -0
  71. package/dist/wu-state-schema.js.map +1 -1
  72. package/dist/wu-state-store.d.ts +12 -0
  73. package/dist/wu-state-store.d.ts.map +1 -1
  74. package/dist/wu-state-store.js +23 -0
  75. package/dist/wu-state-store.js.map +1 -1
  76. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"wu-done-validation.d.ts","sourceRoot":"","sources":["../src/wu-done-validation.ts"],"names":[],"mappings":"AAiCA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,yBAAyB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAKD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC1C,qBAAqB,CAgBvB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,6BAA6B;IAC5C,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,mBAAmB,EACxB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,6BAAkC;;;;GA4G5C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM;;;EAwE7E;AAwCD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,EAAE,EACF,MAAM,EACN,SAAS,EACT,UAAiB,GAClB,EAAE,yBAAyB;;;EAiF3B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,mBAAmB;;;;;;EAuDhE;AA0BD;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,mBAAmB;;;;;EAgCvE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CA4B3F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oCAAoC,CACxD,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,UAAU,EAAE;IAAE,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,EAChD,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiE3E;AAED;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CA6BR"}
1
+ {"version":3,"file":"wu-done-validation.d.ts","sourceRoot":"","sources":["../src/wu-done-validation.ts"],"names":[],"mappings":"AAiCA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,yBAAyB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAKD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC1C,qBAAqB,CAgBvB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,6BAA6B;IAC5C,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,mBAAmB,EACxB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,6BAAkC;;;;GA4G5C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM;;;EAwE7E;AAwCD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,EAAE,EACF,MAAM,EACN,SAAS,EACT,UAAiB,GAClB,EAAE,yBAAyB;;;EAiF3B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,mBAAmB;;;;;;EAuDhE;AA0BD;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,mBAAmB;;;;;EAgCvE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CA6B3F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oCAAoC,CACxD,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,UAAU,EAAE;IAAE,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,EAChD,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiE3E;AAED;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CA6BR"}
@@ -434,7 +434,8 @@ Allowed paths for documentation WUs:
434
434
  (docs, ai, claude, memoryBank)
435
435
  - .lumenflow/stamps/
436
436
  - .lumenflow/**/*.md (workflow docs: constraints, rules)
437
- - root *.md files matching known patterns (README*, CLAUDE*)
437
+ - any *.md file (root or nested e.g. LUMENFLOW.md, LUMENFLOW.local.md,
438
+ AGENTS.md, UPGRADING.md, README.md, CLAUDE.md)
438
439
 
439
440
  After fixing, retry: pnpm wu:done --id ${id}
440
441
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"wu-done-validation.js","sourceRoot":"","sources":["../src/wu-done-validation.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;GAEG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AA+BxD,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,aAAa,CAAU,CAAC;AAC1D,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,IAAI,EAAW,CAAC;AAElD,MAAM,UAAU,qBAAqB,CACnC,GAA2C;IAE3C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,eAAe,CAAC;IAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AACtD,CAAC;AAmBD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAwB,EACxB,EAAU,EACV,UAAyC,EAAE;IAE3C,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACtE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC7C,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QAC9E,CAAC,CAAC,EAAE,CAAC;IAEP,sEAAsE;IACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,kCAAkC,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,eAAe,SAAS,CAAC,MAAM,sBAAsB,CAAC,CAAC;IAErF,wEAAwE;IACxE,oFAAoF;IACpF,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,kDAAkD;QAClD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC;gBAC/C,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC;gBACjD,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;YAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,kCAAkC,OAAO,CAAC,MAAM,oCAAoC,OAAO;iBACxF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;iBACtB,IAAI,CACH,eAAe,CAAC,OAAO,CACxB,yEAAyE,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,6EAA6E;QAC7E,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;YAClC,MAAM,oBAAoB,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC;gBAChD,YAAY,CAAC,OAAO;gBACpB,GAAG,kBAAkB;gBACrB,YAAY;aACb,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,oBAAoB;iBACrC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;iBAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACnD,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CACpD,CAAC;oBAEF,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,CAAC;oBAED,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,mDAAmD;oBACnD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAE1F,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;wBACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2CAA2C;oBAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CACT,kCAAkC,OAAO,CAAC,MAAM,yBAAyB,YAAY,MAAM,OAAO;qBAC/F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;qBACtB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,+CAA+C;oBAC7E,4DAA4D,YAAY,KAAK;oBAC7E,yDAAyD;oBACzD,gBAAgB;oBAChB,mDAAmD,YAAY,IAAI;oBACnE,6BAA6B,EAAE,+BAA+B;oBAC9D,2DAA2D;oBAC3D,0EAA0E,CAC7E,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uDAAuD;YACvD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,mCAAmC,OAAO,EAAE,CAAC,CAAC;YAC9F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,QAAQ,SAAS,CAAC,MAAM,sBAAsB,CAAC,CAAC;IAC/F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAwB,EAAE,GAAW;IAC5E,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,4CAA4C;IAC5C,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,wBAAwB,oBAAoB,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,+DAA+D;IAC/D,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,cAAc,GAAG,CAAC,KAAc,EAAW,EAAE;YACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,+BAA+B,oBAAoB,UAAU,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,sBAAsB,EAAE,CAAC;QAC1F,MAAM,CAAC,IAAI,CACT,0BAA0B,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,mBAAmB,UAAU,CAAC,sBAAsB,GAAG,CACrH,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QAED,uDAAuD;QACvD,yDAAyD;QACzD,MAAM,OAAO,GACX,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YACxC,CAAC,CAAE,GAAG,CAAC,KAAiC;YACxC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;gBACpD,CAAC,CAAE,GAAG,CAAC,UAAsC;gBAC7C,CAAC,CAAC,EAAE,CAAC;QAEX,qCAAqC;QACrC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAEjF,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,CAAC,YAAY,IAAI,WAAW,IAAI,cAAc,IAAI,mBAAmB,CAAC,EAAE,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QACrF,CAAC;QAED,yDAAyD;QACzD,iFAAiF;QACjF,MAAM,mBAAmB,GAAG,gCAAgC,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,6BAA6B,CACpC,aAAqB,EACrB,IAAY;IAEZ,IAAI,MAA8D,CAAC;IAEnE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqC,CAAC;YACnE,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,SAAS;YAEjD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ;oBACX,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;oBAC/B,MAAM;gBACR,KAAK,SAAS;oBACZ,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;oBACzB,MAAM;gBACR,KAAK,UAAU;oBACb,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;oBACxB,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;oBAC3B,MAAM;gBACR,KAAK,SAAS;oBACZ,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;oBAC/B,MAAM;YACV,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,EAAE,EACF,MAAM,EACN,SAAS,EACT,UAAU,GAAG,IAAI,GACS;IAC1B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,0BAA0B;IAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,QAA0B,EAAE,CAAC,CAAC;QAC3F,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/B,uDAAuD;QACvD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,YAAsB,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,mCAAmC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,mBAAmB,KAAK,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,kCAAkC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CACT,wCAAwC,EAAE,+BAA+B,GAAG,CAAC,MAAM,GAAG,CACvF,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CACT,qBAAqB,EAAE,qBAAqB,SAAS,CAAC,IAAI,YAAY,GAAG,CAAC,MAAM,IAAI,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,2CAA2C,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,EAAE;oBAC7C,QAAQ,EAAE,WAAW,CAAC,QAA0B;iBACjD,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,6BAA6B,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,oBAAoB,aAAa,IAAI,SAAS,gCAAgC,SAAS,CAAC,IAAI,IAAI,CACzG,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAuB;IAC/D,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9D,oDAAoD;IACpD,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,2CAA2C;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC;QAC5C,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QAC7E,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,iDAAiD;IACjD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,yDAAyD;IACzD,MAAM,OAAO,GACX,EAAE,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExF,qCAAqC;IACrC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjF,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAEtE,yBAAyB;IACzB,IAAI,CAAC,CAAC,YAAY,IAAI,WAAW,IAAI,cAAc,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAC5E,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,GAAG,IAAI,8GAA8G;SAC7H,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,wDAAwD;IACxD,MAAM,mBAAmB,GAAG,gCAAgC,CAAC,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAC/B,4EAA4E;QAC5E,MAAM,YAAY,GAChB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC;QAC9E,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,GAAG,IAAI,KAAK,YAAY,EAAE;SAClC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1C,IAAI,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAAuB;IACtE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAE9D,kCAAkC;IAClC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;QACvC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;IACxF,CAAC;IAED,wBAAwB;IACxB,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC;IAChC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;IACxF,CAAC;IAED,gDAAgD;IAChD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CACT,oBAAoB,IAAI,qDAAqD,SAAS,EAAE,CACzF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;AACxF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAAU,EAAE,YAAsB;IACjF,OAAO;;;KAGJ,EAAE;;EAEL,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;yBAQvB,EAAE;;;yBAGF,EAAE;;;;;;;;;yCASc,EAAE;CAC1C,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,EAA2B,EAC3B,UAAgD,EAChD,UAAwC,EAAE;IAE1C,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,mCAAmC;IACnC,MAAM,SAAS,GAAG,EAAE,CAAC,UAAkC,CAAC;IACxD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC;QACH,gDAAgD;QAChD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;QAE/C,oDAAoD;QACpD,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAExE,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,+BAA+B;YAC/B,UAAU;YACV,qCAAqC;YACrC,2DAA2D;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1B,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,wBAAwB,QAAQ,EAAE,CAAC,CAAC;YAE3F,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,YAAY,GAAG,mCAAmC,CAAC,EAAE,CAAC,EAAY,EAAE,gBAAgB,CAAC,CAAC;gBAC5F,GAAG,CAAC,YAAY,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wDAAwD;QACxD,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,iDAAiD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACvI,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mCAAmC,CACjD,IAAY,EACZ,gBAA0B;IAE1B,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpE,OAAO;;;EAGP,KAAK,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI;;EAEpD,QAAQ;;;;;;;;;eASK,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;iCACR,IAAI;;;yBAGZ,IAAI;;;;;;CAM5B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"wu-done-validation.js","sourceRoot":"","sources":["../src/wu-done-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /// <reference path="./types.d.ts" />
2
+ /** Minimum allowed zero-padding width. */
3
+ export declare const WU_ID_WIDTH_MIN = 1;
4
+ /** Maximum allowed zero-padding width. */
5
+ export declare const WU_ID_WIDTH_MAX = 6;
6
+ /**
7
+ * Prefix validation pattern: uppercase letter start, followed by 1-9 more
8
+ * uppercase-alphanumeric characters, terminated by a dash. Matches 'WU-',
9
+ * 'TASK-', 'STORY-', 'TICKET-', 'JIRA123-'. Rejects lowercase, missing dash,
10
+ * single-char prefixes, and over-long prefixes.
11
+ */
12
+ export declare const WU_ID_PREFIX_PATTERN: RegExp;
13
+ /** Canonical WU ID configuration. */
14
+ export interface WuIdConfig {
15
+ /** Zero-padding width. Default 4 (WU-0001). */
16
+ width: number;
17
+ /**
18
+ * Strict mode. When true, non-canonical legacy IDs are flagged as errors
19
+ * by wu:doctor and wu:create canonicalizes --id input. When false, legacy
20
+ * IDs are tolerated as warnings for incremental migration.
21
+ */
22
+ strict: boolean;
23
+ /** Canonical prefix including trailing dash. Default 'WU-'. */
24
+ prefix: string;
25
+ }
26
+ /** Default WU ID configuration. */
27
+ export declare const WU_ID_DEFAULTS: WuIdConfig;
28
+ /**
29
+ * Validate and resolve a partial WU ID config against the defaults.
30
+ *
31
+ * @throws {Error} If width is not an integer in [1, 6] or prefix does not
32
+ * match {@link WU_ID_PREFIX_PATTERN}.
33
+ */
34
+ export declare function validateWuIdConfig(partial?: Partial<WuIdConfig>): WuIdConfig;
35
+ /**
36
+ * Format an integer as a canonical WU ID.
37
+ *
38
+ * Zero-pads to the configured width. If the integer exceeds 10^width, the
39
+ * result is wider than width (overflow is preserved, never truncated).
40
+ *
41
+ * @throws {Error} If n is not a positive integer.
42
+ */
43
+ export declare function formatWuId(n: number, config?: Partial<WuIdConfig>): string;
44
+ /**
45
+ * Parse a WU ID (or YAML/stamp filename) into its prefix and numeric parts.
46
+ *
47
+ * Returns null for any input that does not match the configured prefix or
48
+ * does not carry a positive integer body. Accepts both canonical padded and
49
+ * legacy unpadded forms.
50
+ *
51
+ * Strips `.yaml` and `.done` extensions before parsing.
52
+ */
53
+ export declare function parseWuId(id: string, config?: Partial<WuIdConfig>): {
54
+ prefix: string;
55
+ num: number;
56
+ } | null;
57
+ /**
58
+ * Build an anchored regex that matches WU IDs (both padded and unpadded
59
+ * digit counts) for the configured prefix. Intended for file scans and
60
+ * consumers that previously hardcoded `/^WU-\d+$/`.
61
+ *
62
+ * Strict canonical-form enforcement lives in {@link isCanonicalWuId}, not here.
63
+ */
64
+ export declare function wuIdRegex(config?: Partial<WuIdConfig>): RegExp;
65
+ /**
66
+ * Return an unanchored pattern string (for embedding in longer regexes)
67
+ * that matches the WU id body — the configured prefix followed by one
68
+ * or more digits. Consumers that previously hardcoded `WU-\\d+` inside
69
+ * a larger regex should use this helper so prefix configuration
70
+ * (`software_delivery.wu_id.prefix`) is honored.
71
+ *
72
+ * The pattern does NOT include anchors; callers decide whether to
73
+ * anchor with `^`/`$` or embed in a path/substring match.
74
+ */
75
+ export declare function wuIdBodyPattern(config?: Partial<WuIdConfig>): string;
76
+ /**
77
+ * Return true if the given string is a canonical WU ID for the configured
78
+ * width and prefix. Canonical means:
79
+ * - Prefix matches.
80
+ * - Digit body is at least `width` characters long.
81
+ * - The digit body is not shorter than width (no unpadded legacy).
82
+ * - Overflow (body wider than width) is allowed so the sequence never truncates.
83
+ */
84
+ export declare function isCanonicalWuId(id: string, config?: Partial<WuIdConfig>): boolean;
85
+ /**
86
+ * Canonicalize a (possibly legacy) WU ID to the canonical form for the
87
+ * configured width. Returns null for unparseable input or prefix mismatch.
88
+ *
89
+ * Already-canonical IDs are returned unchanged. Overflow IDs (wider than
90
+ * width) are preserved.
91
+ */
92
+ export declare function canonicalizeWuId(id: string, config?: Partial<WuIdConfig>): string | null;
93
+ /**
94
+ * Load the canonical WU id config from workspace.yaml
95
+ * `software_delivery.wu_id.{width,strict,prefix}`.
96
+ *
97
+ * Falls back to {@link WU_ID_DEFAULTS} when the block is absent, so
98
+ * existing repos without any wu_id config continue to see WU- prefixed
99
+ * ids (backward compatible) with the only visible change being
100
+ * zero-padding on newly-generated ids.
101
+ *
102
+ * @param options.projectRoot - Optional override for the project root.
103
+ */
104
+ export declare function loadWuIdConfig(options?: {
105
+ projectRoot?: string;
106
+ }): WuIdConfig;
107
+ /** Inputs for {@link scanExistingWuNumbers}. */
108
+ export interface ScanExistingWuNumbersInput {
109
+ /** Absolute path to the WU YAML directory. */
110
+ wuDir: string;
111
+ /** Absolute path to the stamps directory. */
112
+ stampsDir: string;
113
+ /** Absolute path to `wu-events.jsonl` (may or may not exist). */
114
+ eventsPath: string;
115
+ }
116
+ /**
117
+ * Scan every existing WU id integer across the yaml directory, stamps
118
+ * directory, and event log. Used by wu:create for integer-level
119
+ * collision detection so `WU-14` and `WU-0014` can never coexist.
120
+ *
121
+ * Results are deduplicated across sources. Entries whose prefix does
122
+ * not match the configured prefix are ignored. Extension suffixes
123
+ * (`.yaml`, `.done`) are stripped before parsing.
124
+ */
125
+ export declare function scanExistingWuNumbers(input: ScanExistingWuNumbersInput, config?: Partial<WuIdConfig>): Set<number>;
126
+ /**
127
+ * Returns true when `num` is already present in the given set.
128
+ * Thin wrapper for call-site readability at the wu:create integration point.
129
+ */
130
+ export declare function integerCollides(existing: ReadonlySet<number>, num: number): boolean;
131
+ /**
132
+ * Returns true when the given WU number is within the width-exhaustion
133
+ * warning band (>= 90% of 10^width) but still below the width ceiling.
134
+ *
135
+ * Numbers that already exceed the width capacity return false so the
136
+ * warning only fires once, not on every subsequent overflow id.
137
+ */
138
+ export declare function isWidthExhaustionWarning(num: number, config?: Partial<WuIdConfig>): boolean;
139
+ //# sourceMappingURL=wu-id-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wu-id-format.d.ts","sourceRoot":"","sources":["../src/wu-id-format.ts"],"names":[],"mappings":"AA2BA,0CAA0C;AAC1C,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,0CAA0C;AAC1C,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAE5D,qCAAqC;AACrC,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mCAAmC;AACnC,eAAO,MAAM,cAAc,EAAE,UAI3B,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,UAAU,CAoBhF;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,MAAM,CAS9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkBxC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,MAAM,CAGlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,MAAM,CAIxE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,OAAO,CAUrF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,MAAM,GAAG,IAAI,CAM5F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,UAAU,CAIjF;AAED,gDAAgD;AAChD,MAAM,WAAW,0BAA0B;IACzC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,EACjC,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,GAAG,CAAC,MAAM,CAAC,CAgDb;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,OAAO,CAK/F"}
@@ -0,0 +1,252 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * WU ID Format Primitives (WU-2552)
5
+ *
6
+ * Canonical zero-padded WU ID primitives. All ID formatting, parsing,
7
+ * and regex construction flows through this module so that width, strict
8
+ * mode, and prefix can be centrally configured via workspace.yaml
9
+ * `software_delivery.wu_id.{width,strict,prefix}`.
10
+ *
11
+ * Design principles:
12
+ * - Pure functions, no I/O, no config reads (caller supplies config).
13
+ * - Hardcoded choices: separator '-', lowercase digits, padding char '0',
14
+ * starting number 1, gap-fill policy 'never reuse'.
15
+ * - `wuIdRegex` is intentionally permissive (matches both padded and unpadded
16
+ * digit counts) so that consumers scanning files for legacy + canonical
17
+ * IDs stay backward compatible during the transition. Strict canonical
18
+ * form is enforced separately via `isCanonicalWuId`.
19
+ *
20
+ * @module wu-id-format
21
+ */
22
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
23
+ import { createError, ErrorCodes } from './error-handler.js';
24
+ import { getConfig } from './lumenflow-config.js';
25
+ /** Minimum allowed zero-padding width. */
26
+ export const WU_ID_WIDTH_MIN = 1;
27
+ /** Maximum allowed zero-padding width. */
28
+ export const WU_ID_WIDTH_MAX = 6;
29
+ /**
30
+ * Prefix validation pattern: uppercase letter start, followed by 1-9 more
31
+ * uppercase-alphanumeric characters, terminated by a dash. Matches 'WU-',
32
+ * 'TASK-', 'STORY-', 'TICKET-', 'JIRA123-'. Rejects lowercase, missing dash,
33
+ * single-char prefixes, and over-long prefixes.
34
+ */
35
+ export const WU_ID_PREFIX_PATTERN = /^[A-Z][A-Z0-9]{1,9}-$/;
36
+ /** Default WU ID configuration. */
37
+ export const WU_ID_DEFAULTS = Object.freeze({
38
+ width: 4,
39
+ strict: true,
40
+ prefix: 'WU-',
41
+ });
42
+ /**
43
+ * Validate and resolve a partial WU ID config against the defaults.
44
+ *
45
+ * @throws {Error} If width is not an integer in [1, 6] or prefix does not
46
+ * match {@link WU_ID_PREFIX_PATTERN}.
47
+ */
48
+ export function validateWuIdConfig(partial = {}) {
49
+ const width = partial.width ?? WU_ID_DEFAULTS.width;
50
+ const strict = partial.strict ?? WU_ID_DEFAULTS.strict;
51
+ const prefix = partial.prefix ?? WU_ID_DEFAULTS.prefix;
52
+ if (!Number.isInteger(width) || width < WU_ID_WIDTH_MIN || width > WU_ID_WIDTH_MAX) {
53
+ throw createError(ErrorCodes.VALIDATION_ERROR, `Invalid wu_id.width: ${String(width)}. Must be an integer between ${WU_ID_WIDTH_MIN} and ${WU_ID_WIDTH_MAX}.`);
54
+ }
55
+ if (typeof prefix !== 'string' || !WU_ID_PREFIX_PATTERN.test(prefix)) {
56
+ throw createError(ErrorCodes.VALIDATION_ERROR, `Invalid wu_id.prefix: "${String(prefix)}". Must match ${WU_ID_PREFIX_PATTERN} (e.g., 'WU-', 'TASK-', 'STORY-').`);
57
+ }
58
+ return { width, strict, prefix };
59
+ }
60
+ /**
61
+ * Format an integer as a canonical WU ID.
62
+ *
63
+ * Zero-pads to the configured width. If the integer exceeds 10^width, the
64
+ * result is wider than width (overflow is preserved, never truncated).
65
+ *
66
+ * @throws {Error} If n is not a positive integer.
67
+ */
68
+ export function formatWuId(n, config = {}) {
69
+ if (!Number.isInteger(n) || n < 1) {
70
+ throw createError(ErrorCodes.VALIDATION_ERROR, `Invalid WU number: ${String(n)}. Must be a positive integer.`);
71
+ }
72
+ const { width, prefix } = validateWuIdConfig(config);
73
+ return `${prefix}${String(n).padStart(width, '0')}`;
74
+ }
75
+ /**
76
+ * Parse a WU ID (or YAML/stamp filename) into its prefix and numeric parts.
77
+ *
78
+ * Returns null for any input that does not match the configured prefix or
79
+ * does not carry a positive integer body. Accepts both canonical padded and
80
+ * legacy unpadded forms.
81
+ *
82
+ * Strips `.yaml` and `.done` extensions before parsing.
83
+ */
84
+ export function parseWuId(id, config = {}) {
85
+ if (typeof id !== 'string' || id.length === 0) {
86
+ return null;
87
+ }
88
+ const { prefix } = validateWuIdConfig(config);
89
+ const stripped = id.replace(/\.(yaml|done)$/, '');
90
+ if (!stripped.startsWith(prefix)) {
91
+ return null;
92
+ }
93
+ const body = stripped.slice(prefix.length);
94
+ if (!/^\d+$/.test(body)) {
95
+ return null;
96
+ }
97
+ const num = parseInt(body, 10);
98
+ if (!Number.isFinite(num) || num < 1) {
99
+ return null;
100
+ }
101
+ return { prefix, num };
102
+ }
103
+ /**
104
+ * Build an anchored regex that matches WU IDs (both padded and unpadded
105
+ * digit counts) for the configured prefix. Intended for file scans and
106
+ * consumers that previously hardcoded `/^WU-\d+$/`.
107
+ *
108
+ * Strict canonical-form enforcement lives in {@link isCanonicalWuId}, not here.
109
+ */
110
+ export function wuIdRegex(config = {}) {
111
+ // eslint-disable-next-line security/detect-non-literal-regexp -- prefix escaped
112
+ return new RegExp(`^${wuIdBodyPattern(config)}$`);
113
+ }
114
+ /**
115
+ * Return an unanchored pattern string (for embedding in longer regexes)
116
+ * that matches the WU id body — the configured prefix followed by one
117
+ * or more digits. Consumers that previously hardcoded `WU-\\d+` inside
118
+ * a larger regex should use this helper so prefix configuration
119
+ * (`software_delivery.wu_id.prefix`) is honored.
120
+ *
121
+ * The pattern does NOT include anchors; callers decide whether to
122
+ * anchor with `^`/`$` or embed in a path/substring match.
123
+ */
124
+ export function wuIdBodyPattern(config = {}) {
125
+ const { prefix } = validateWuIdConfig(config);
126
+ const escaped = prefix.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
127
+ return `${escaped}\\d+`;
128
+ }
129
+ /**
130
+ * Return true if the given string is a canonical WU ID for the configured
131
+ * width and prefix. Canonical means:
132
+ * - Prefix matches.
133
+ * - Digit body is at least `width` characters long.
134
+ * - The digit body is not shorter than width (no unpadded legacy).
135
+ * - Overflow (body wider than width) is allowed so the sequence never truncates.
136
+ */
137
+ export function isCanonicalWuId(id, config = {}) {
138
+ const { width, prefix } = validateWuIdConfig(config);
139
+ if (typeof id !== 'string' || !id.startsWith(prefix)) {
140
+ return false;
141
+ }
142
+ const body = id.slice(prefix.length);
143
+ if (!/^\d+$/.test(body)) {
144
+ return false;
145
+ }
146
+ return body.length >= width;
147
+ }
148
+ /**
149
+ * Canonicalize a (possibly legacy) WU ID to the canonical form for the
150
+ * configured width. Returns null for unparseable input or prefix mismatch.
151
+ *
152
+ * Already-canonical IDs are returned unchanged. Overflow IDs (wider than
153
+ * width) are preserved.
154
+ */
155
+ export function canonicalizeWuId(id, config = {}) {
156
+ const parsed = parseWuId(id, config);
157
+ if (!parsed) {
158
+ return null;
159
+ }
160
+ return formatWuId(parsed.num, config);
161
+ }
162
+ /**
163
+ * Load the canonical WU id config from workspace.yaml
164
+ * `software_delivery.wu_id.{width,strict,prefix}`.
165
+ *
166
+ * Falls back to {@link WU_ID_DEFAULTS} when the block is absent, so
167
+ * existing repos without any wu_id config continue to see WU- prefixed
168
+ * ids (backward compatible) with the only visible change being
169
+ * zero-padding on newly-generated ids.
170
+ *
171
+ * @param options.projectRoot - Optional override for the project root.
172
+ */
173
+ export function loadWuIdConfig(options = {}) {
174
+ const config = getConfig(options.projectRoot ? { projectRoot: options.projectRoot } : {});
175
+ const wuIdBlock = config.wuId;
176
+ return validateWuIdConfig(wuIdBlock ?? {});
177
+ }
178
+ /**
179
+ * Scan every existing WU id integer across the yaml directory, stamps
180
+ * directory, and event log. Used by wu:create for integer-level
181
+ * collision detection so `WU-14` and `WU-0014` can never coexist.
182
+ *
183
+ * Results are deduplicated across sources. Entries whose prefix does
184
+ * not match the configured prefix are ignored. Extension suffixes
185
+ * (`.yaml`, `.done`) are stripped before parsing.
186
+ */
187
+ export function scanExistingWuNumbers(input, config = {}) {
188
+ const result = new Set();
189
+ const addFromEntries = (entries) => {
190
+ for (const entry of entries) {
191
+ const parsed = parseWuId(entry, config);
192
+ if (parsed) {
193
+ result.add(parsed.num);
194
+ }
195
+ }
196
+ };
197
+ if (existsSync(input.wuDir)) {
198
+ addFromEntries(readdirSync(input.wuDir));
199
+ }
200
+ if (existsSync(input.stampsDir)) {
201
+ addFromEntries(readdirSync(input.stampsDir));
202
+ }
203
+ if (existsSync(input.eventsPath)) {
204
+ try {
205
+ const content = readFileSync(input.eventsPath, { encoding: 'utf-8' });
206
+ for (const line of content.split('\n')) {
207
+ const trimmed = line.trim();
208
+ if (trimmed.length === 0)
209
+ continue;
210
+ try {
211
+ const event = JSON.parse(trimmed);
212
+ for (const candidate of [event.wuId, event.from, event.to]) {
213
+ if (typeof candidate === 'string') {
214
+ const parsed = parseWuId(candidate, config);
215
+ if (parsed) {
216
+ result.add(parsed.num);
217
+ }
218
+ }
219
+ }
220
+ }
221
+ catch {
222
+ // Ignore malformed lines; the events file is allowed to have gaps.
223
+ }
224
+ }
225
+ }
226
+ catch {
227
+ // Read errors fall through; caller treats this as "no known ids".
228
+ }
229
+ }
230
+ return result;
231
+ }
232
+ /**
233
+ * Returns true when `num` is already present in the given set.
234
+ * Thin wrapper for call-site readability at the wu:create integration point.
235
+ */
236
+ export function integerCollides(existing, num) {
237
+ return existing.has(num);
238
+ }
239
+ /**
240
+ * Returns true when the given WU number is within the width-exhaustion
241
+ * warning band (>= 90% of 10^width) but still below the width ceiling.
242
+ *
243
+ * Numbers that already exceed the width capacity return false so the
244
+ * warning only fires once, not on every subsequent overflow id.
245
+ */
246
+ export function isWidthExhaustionWarning(num, config = {}) {
247
+ const { width } = validateWuIdConfig(config);
248
+ const capacity = Math.pow(10, width);
249
+ const threshold = capacity * 0.9;
250
+ return num >= threshold && num < capacity;
251
+ }
252
+ //# sourceMappingURL=wu-id-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wu-id-format.js","sourceRoot":"","sources":["../src/wu-id-format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /// <reference path="./types.d.ts" />
2
+ /**
3
+ * WU Rename Projection (WU-2552)
4
+ *
5
+ * Read-side helper that walks a wu-events log and returns a function
6
+ * resolving any original WU id to its current canonical id after zero
7
+ * or more `wu_renamed` events.
8
+ *
9
+ * Event sourcing discipline:
10
+ * - History is append-only. Historical events keep their original wuId.
11
+ * - This projection is the read-side resolution view, not a rewrite.
12
+ * - Rename chains are transitive: A -> B -> C means resolve(A) === 'C'.
13
+ *
14
+ * Consumers:
15
+ * - {@link ./wu-state-indexer.ts} applies events in rename-resolved order.
16
+ * - {@link ./backlog-generator.ts} displays current canonical ids only.
17
+ *
18
+ * @module wu-rename-projection
19
+ */
20
+ import type { WUEvent } from './wu-state-schema.js';
21
+ /** A single rename link recorded in the event log. */
22
+ export interface RenameLink {
23
+ /** Original WU id (what it was called before the rename). */
24
+ from: string;
25
+ /** New WU id (what it is called after the rename). */
26
+ to: string;
27
+ /** Optional human reason supplied at wu:rename time. */
28
+ reason?: string;
29
+ /** ISO-8601 timestamp of the rename event. */
30
+ timestamp: string;
31
+ }
32
+ /** Result of building a rename projection from an event log. */
33
+ export interface RenameProjection {
34
+ /**
35
+ * Resolve an original (possibly stale) WU id to its current canonical id.
36
+ * If the id is not part of any rename chain, it is returned unchanged.
37
+ */
38
+ resolve(wuId: string): string;
39
+ /** List every rename link discovered, in event-log order. */
40
+ getAllRenames(): RenameLink[];
41
+ }
42
+ /**
43
+ * Walk the event log and return a {@link RenameProjection}.
44
+ *
45
+ * Algorithm:
46
+ * 1. Iterate events in order. For each `wu_renamed` event, compose the link
47
+ * into the transitive map. If an earlier rename produced `from`, update
48
+ * its target to `to` so the chain collapses on lookup.
49
+ * 2. Store all raw rename links for audit/debugging via getAllRenames().
50
+ *
51
+ * The returned projection is pure; callers may retain it or throw it away.
52
+ */
53
+ export declare function buildRenameProjection(events: readonly WUEvent[]): RenameProjection;
54
+ /**
55
+ * Convenience wrapper: build a projection and resolve a single id.
56
+ *
57
+ * Use this when you only need one lookup. For multiple lookups against the
58
+ * same event log, call {@link buildRenameProjection} once and keep the
59
+ * projection.
60
+ */
61
+ export declare function resolveRenamedWuId(events: readonly WUEvent[], wuId: string): string;
62
+ //# sourceMappingURL=wu-rename-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wu-rename-projection.d.ts","sourceRoot":"","sources":["../src/wu-rename-projection.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAGpE,sDAAsD;AACtD,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,aAAa,IAAI,UAAU,EAAE,CAAC;CAC/B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,gBAAgB,CAwClF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnF"}
@@ -0,0 +1,66 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ import { WU_EVENT_TYPE } from './wu-state-schema.js';
4
+ function isRenameEvent(event) {
5
+ return event.type === WU_EVENT_TYPE.WU_RENAMED;
6
+ }
7
+ /**
8
+ * Walk the event log and return a {@link RenameProjection}.
9
+ *
10
+ * Algorithm:
11
+ * 1. Iterate events in order. For each `wu_renamed` event, compose the link
12
+ * into the transitive map. If an earlier rename produced `from`, update
13
+ * its target to `to` so the chain collapses on lookup.
14
+ * 2. Store all raw rename links for audit/debugging via getAllRenames().
15
+ *
16
+ * The returned projection is pure; callers may retain it or throw it away.
17
+ */
18
+ export function buildRenameProjection(events) {
19
+ // Direct map: original id -> current id after all observed renames.
20
+ const forward = new Map();
21
+ // Raw rename links in order.
22
+ const links = [];
23
+ for (const event of events) {
24
+ if (!isRenameEvent(event)) {
25
+ continue;
26
+ }
27
+ const { from, to } = event;
28
+ const link = {
29
+ from,
30
+ to,
31
+ timestamp: event.timestamp,
32
+ ...(typeof event.reason === 'string' && event.reason.length > 0
33
+ ? { reason: event.reason }
34
+ : {}),
35
+ };
36
+ links.push(link);
37
+ // Compose: any prior entry whose target equals `from` now targets `to`.
38
+ // This keeps resolve() O(1) without recursive lookup at query time.
39
+ for (const [key, value] of forward) {
40
+ if (value === from) {
41
+ forward.set(key, to);
42
+ }
43
+ }
44
+ // Record the link itself; if already present, the final target wins.
45
+ forward.set(from, to);
46
+ }
47
+ return {
48
+ resolve(wuId) {
49
+ return forward.get(wuId) ?? wuId;
50
+ },
51
+ getAllRenames() {
52
+ return [...links];
53
+ },
54
+ };
55
+ }
56
+ /**
57
+ * Convenience wrapper: build a projection and resolve a single id.
58
+ *
59
+ * Use this when you only need one lookup. For multiple lookups against the
60
+ * same event log, call {@link buildRenameProjection} once and keep the
61
+ * projection.
62
+ */
63
+ export function resolveRenamedWuId(events, wuId) {
64
+ return buildRenameProjection(events).resolve(wuId);
65
+ }
66
+ //# sourceMappingURL=wu-rename-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wu-rename-projection.js","sourceRoot":"","sources":["../src/wu-rename-projection.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAsBzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAyBrD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,UAAU,CAAC;AACjD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA0B;IAC9D,oEAAoE;IACpE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,6BAA6B;IAC7B,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;QAC3B,MAAM,IAAI,GAAe;YACvB,IAAI;YACJ,EAAE;YACF,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAC7D,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;gBAC1B,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjB,wEAAwE;QACxE,oEAAoE;QACpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,qEAAqE;QACrE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACL,OAAO,CAAC,IAAY;YAClB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACnC,CAAC;QACD,aAAa;YACX,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA0B,EAAE,IAAY;IACzE,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC"}