@rsaglobaltech/specgate 0.22.1 → 0.22.3

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 (51) hide show
  1. package/CHANGELOG.md +149 -54
  2. package/bin/specgate.ts +6 -1
  3. package/dist/bin/specgate.js +4 -1
  4. package/dist/bin/specgate.js.map +1 -1
  5. package/dist/packages/core/src/domain/BriefCards.js +13 -3
  6. package/dist/packages/core/src/domain/BriefCards.js.map +1 -1
  7. package/dist/packages/core/src/domain/CapabilitySpecMerge.js +83 -0
  8. package/dist/packages/core/src/domain/CapabilitySpecMerge.js.map +1 -0
  9. package/dist/packages/core/src/domain/DraftChecklist.js +19 -5
  10. package/dist/packages/core/src/domain/DraftChecklist.js.map +1 -1
  11. package/dist/packages/core/test/unit/capability-spec-merge.test.js +104 -0
  12. package/dist/packages/core/test/unit/capability-spec-merge.test.js.map +1 -0
  13. package/dist/scripts/agents/detect.js +1 -0
  14. package/dist/scripts/agents/detect.js.map +1 -1
  15. package/dist/scripts/agents/init.js +13 -0
  16. package/dist/scripts/agents/init.js.map +1 -1
  17. package/dist/scripts/cli/commands/change/ChangeCommand.js +21 -0
  18. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  19. package/dist/scripts/cli/commands/change/TicketCommand.js +64 -6
  20. package/dist/scripts/cli/commands/change/TicketCommand.js.map +1 -1
  21. package/dist/scripts/cli/commands/harness/RunCommand.js +66 -0
  22. package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
  23. package/dist/scripts/cli/commands/quality/CheckCommand.js +15 -5
  24. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  25. package/dist/scripts/cli/commands/quality/DoctorCommand.js +22 -8
  26. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  27. package/dist/scripts/cli/commands/spec/DoneCommand.js +85 -16
  28. package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
  29. package/dist/scripts/cli/commands/spec/DraftCommand.js +94 -1
  30. package/dist/scripts/cli/commands/spec/DraftCommand.js.map +1 -1
  31. package/dist/scripts/draft/drafting-guide.js +4 -0
  32. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  33. package/dist/scripts/draft/ticket-guide.js +4 -0
  34. package/dist/scripts/draft/ticket-guide.js.map +1 -1
  35. package/dist/scripts/harness/init.js +104 -26
  36. package/dist/scripts/harness/init.js.map +1 -1
  37. package/dist/scripts/harness/prompt.js +13 -1
  38. package/dist/scripts/harness/prompt.js.map +1 -1
  39. package/dist/scripts/lib/base-ids.js +7 -0
  40. package/dist/scripts/lib/base-ids.js.map +1 -1
  41. package/dist/scripts/lib/change-base.js +230 -0
  42. package/dist/scripts/lib/change-base.js.map +1 -0
  43. package/dist/scripts/lib/change-overlap.js +234 -0
  44. package/dist/scripts/lib/change-overlap.js.map +1 -0
  45. package/dist/scripts/lib/surface.js +6 -0
  46. package/dist/scripts/lib/surface.js.map +1 -1
  47. package/dist/scripts/lib/ticket-keys.js +48 -3
  48. package/dist/scripts/lib/ticket-keys.js.map +1 -1
  49. package/dist/scripts/merge-capability-spec.js +87 -0
  50. package/dist/scripts/merge-capability-spec.js.map +1 -0
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../scripts/harness/init.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCH,gDASC;AAED,oCAKC;AAED,8CAkBC;AAgBD,8CAuBC;AAED,oCAiEC;AAQD,8BAUC;AAED,kCAOC;AAmGD,gDAsBC;AAwND,gDAqHC;AAtpBD,4CAA8B;AAC9B,gDAAkC;AAClC,2DAA+C;AAC/C,sEAAyE;AACzE,sEAAwE;AACxE,sDAAwD;AACxD,wCAAkD;AAClD,oDAAwE;AACxE,4CAA6C;AAC7C,4EAGoD;AACpD,8CAAgC;AAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAE9D,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAE9D,MAAM,UAAU,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAEnD;;;;;;;;;;;GAWG;AACH;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC,mBAAmB,CAAC;QAC7B,CAAC,CAAC,sCAAsC;QACxC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACrB,CAAC,CAAC,gCAAgC;YAClC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;gBAChB,CAAC,CAAC,gCAAgC;gBAClC,CAAC,CAAC,EAAE,CAAC;AACb,CAAC;AAED,SAAgB,YAAY,CAAC,UAAkB;IAC7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,GAAG;QACR,CAAC,CAAC,eAAe,GAAG,GAAG;QACvB,CAAC,CAAC,yEAAyE,CAAC;AAChF,CAAC;AAED,SAAgB,iBAAiB,CAAC,UAAkB;IAClD,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,kEAAkE;IAClE,OAAO,IAAA,+BAAuB,EAC5B;QACE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,UAAkB;IAClD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChF,IAAI,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,CACL,oFAAoF;YACpF,mFAAmF;YACnF,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,qFAAqF;YACrF,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,YAAY,CAC1B,UAAkB,EAClB,OAAsB;IAEtB,4EAA4E;IAC5E,4EAA4E;IAC5E,sBAAsB;IACtB,mEAAmE;IACnE,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,IAAA,8BAAmB,EAAC;QAC3C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG;QACX,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC;QACrC,cAAc,EAAE,gBAAgB;YAC9B,CAAC,CAAC,iFAAiF;gBACjF,+EAA+E;gBAC/E,QAAQ;YACV,CAAC,CAAC,gFAAgF;gBAChF,6EAA6E;gBAC7E,0EAA0E;gBAC1E,iEAAiE;gBACjE,0EAA0E;QAC9E,aAAa,EAAE,gBAAgB;YAC7B,CAAC,CAAC,iFAAiF;gBACjF,+DAA+D;YACjE,CAAC,CAAC,iFAAiF;gBACjF,iEAAiE;QACrE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC;QACxC,aAAa,EAAE,OAAO;YACpB,CAAC,CAAC,cAAc,OAAO,GAAG;YAC1B,CAAC,CAAC,2EAA2E;QAC/E,YAAY,EAAE,OAAO;YACnB,CAAC,CAAC,GAAG,OAAO,mCAAmC;YAC/C,CAAC,CAAC,8BAA8B;QAClC,iBAAiB,EAAE,CAAC,GAAG,EAAE;YACvB,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,CAAC,CAAC,EAAE;KACL,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAA,yBAAc,EAClB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,EACxE,IAAI,CACL;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAA,yBAAc,EAClB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,EACrE,IAAI,CACL;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,UAAkB,EAAE,OAAsB;IAClE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACxF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACvF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ;YACzD,CAAC,CAAC,GAAG,OAAO,mBAAmB;YAC/B,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,UAAkB;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,KAAK;IACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8DAA8D;QAC5D,WAAW;QACX,yCAAyC;QACzC,YAAY;QACZ,OAAO,WAAW,yCAAyC;QAC3D,OAAO,WAAW,0DAA0D;QAC5E,aAAa;QACb,8EAA8E;QAC9E,gFAAgF;QAChF,gEAAgE;QAChE,sEAAsE;QACtE,qDAAqD;QACrD,8CAA8C,CACjD,CAAC;AACJ,CAAC;AAWD,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAuB;QAC/B,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC;KACtB,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,eAAe,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACjE,IAAI,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACvC,IAAI,CAAC,KAAK,UAAU;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACzC,IAAI,CAAC,KAAK,QAAQ;YAAE,SAAS;aAC7B,IAAI,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;YAAE,CAAC,EAAE,CAAC;aACpD,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,iBAAiB;IACjB,OAAO;IACP,eAAe;IACf,UAAU;IACV,WAAW;IACX,cAAc;IACd,aAAa;IACb,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,SAAiB;IAEjB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC;IAClE,OAAO;QACL,IAAI,EAAE,GAAG,IAAI,wEAAwE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACzG,KAAK,EAAE,OAAO;KACf,CAAC;AACJ,CAAC;AAED,MAAa,WAAY,SAAQ,qBAAW;IACnC,OAAO;QACZ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,qEAAqE;QACrE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,UAAU,CAAC;QACf,IAAI,CAAC;YACH,UAAU,GAAG,IAAA,gCAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;gBACnB,IAAA,mBAAK,EAAC,YAAY,EAAE,IAAA,0BAAY,EAAC,GAAG,CAAC,EAAE;oBACrC,GAAG,EAAE,sEAAsE;iBAC5E,CAAC;aACH,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,wBAAa,EAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;oBAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrF,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,IAAI,WAAW,IAAI,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,MAAM,GAAoB,IAAI,CAAC;QACnC,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/E,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC1B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE;gBACvE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,QAAQ,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACtE,CAAC;oBACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,IAAI,GAAG,CAAC,CAAiC,EAAE,EAAE;YACjD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;gBACrC,IAAA,mBAAK,EAAC,uBAAuB,EAAE,oBAAoB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;oBACxE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACnB,GAAG,EAAE,2EAA2E;iBACjF,CAAC;aACH,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS;YACxE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,uEAAuE;QACvE,4EAA4E;QAC5E,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC;oBACE,IAAA,kBAAI,EACF,uBAAuB,EACvB,MAAM,CAAC,MAAM,GAAG,CAAC;wBACf,CAAC,CAAC,GAAG,WAAW,gDAAgD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;wBAC1F,CAAC,CAAC,GAAG,WAAW,gEAAgE,EAClF,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,oDAAoD,EAAE,CACnF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,IAAA,kBAAI,EAAC,qBAAqB,EAAE,uCAAuC,EAAE;gBACnE,GAAG,EAAE,wFAAwF;aAC9F,CAAC;SACH,CAAC;QACF,IAAI,aAAa;YAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;YAE5C,MAAM,CAAC,IAAI,CACT,IAAA,kBAAI,EACF,yBAAyB,EACzB,gGAAgG,EAChG;gBACE,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,iIAAiI;aACvI,CACF,CACF,CAAC;QAEJ,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT,IAAA,qBAAO,EACL,wBAAwB,EACxB,2DAA2D,EAC3D;gBACE,MAAM,EAAE,WAAW;gBACnB,GAAG,EAAE,sJAAsJ;aAC5J,CACF,CACF,CAAC;QACJ,CAAC;QAED,EAAE,CAAC,IAAI,CACL;YACE,UAAU;YACV,OAAO;YACP,KAAK,EAAE,OAAO;YACd,MAAM;SACP,EACD,GAAG,EAAE;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,OAAO;gBAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,IAAI,KAAK,uBAAuB;oBAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,qEAAqE;YACrE,wEAAwE;YACxE,2BAA2B;YAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;oBAAE,SAAS;gBACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,CAAC,GAAG;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,GAAG,CAAC,KAAK,CACP,IAAI;gBACF,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACpC,EAAE;qBACC,EAAE,CACD,MAAM,EACN,sBAAsB,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,EAC3F,CAAC,CACF;qBACA,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC5B,EAAE;qBACC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC;qBAC9E,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC5B,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;oBACf,iEAAiE;oBACjE,CAAC,iCAAiC,EAAE,6BAA6B,CAAC;oBAClE,oEAAoE;iBACrE,CAAC,CACL,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAtLD,kCAsLC;AAED,gFAAgF;AAEhF,gFAAgF;AACnE,QAAA,iBAAiB,GAAG,iBAAiB,CAAC;AACtC,QAAA,kBAAkB,GAAG,oCAAoC,yBAAiB,EAAE,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9F,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,0BAAkB,CAAC,EAAE,CAAC;QAC3C,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,iBAAiB,GAAG,QAAQ,KAAK,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,EAAE,CAAC,cAAc,CACf,cAAc,EACd,GAAG,SAAS,mEAAmE;YAC7E,4EAA4E;YAC5E,6CAA6C;YAC7C,GAAG,0BAAkB,IAAI,EAC3B,MAAM,CACP,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,SAAS;IACT,EAAE;IACF,6EAA6E;IAC7E,yEAAyE;IACzE,gFAAgF;IAChF,iEAAiE;IACjE,EAAE;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,aAAa,CACd,CAAC;IACF,MAAM,gBAAgB,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,gBAAgB;QACpC,CAAC,CAAC,8EAA8E;QAChF,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC;IAElF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAC/C,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnF,yEAAyE;IACzE,EAAE;IACF,6DAA6D;IAC7D,EAAE;IACF,yEAAyE;IACzE,8EAA8E;IAC9E,mEAAmE;IACnE,gFAAgF;IAChF,4EAA4E;IAC5E,6EAA6E;IAC7E,kDAAkD;IAClD,wDAAwD;IACxD,EAAE;IACF,4EAA4E;IAC5E,6EAA6E;IAC7E,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,yBAAiB,SAAS,EAAE,GAAG,aAAa,WAAW,CAAC,CAAC;IAE/F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,yBAAiB,OAAO,CAAC,EAAE;YAC3F,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;QACH,OAAO,IAAA,qBAAO,EACZ,6BAA6B,EAC7B,iEAAiE,EACjE;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EACD,sCAAsC;gBACtC,sBAAsB,yBAAiB,YAAY,aAAa,cAAc;gBAC9E,mEAAmE;gBACnE,uCAAuC;SAC1C,CACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,SAAS,yBAAiB,OAAO,EAAE,oCAAoC,CAAC,CAAC;IAEnF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAA,qBAAO,EACZ,+BAA+B,EAC/B,6DAA6D,EAC7D;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EACD,2EAA2E;gBAC3E,0EAA0E;gBAC1E,yEAAyE;gBACzE,kCAAkC;gBAClC,gEAAgE;gBAChE,0EAA0E;gBAC1E,uDAAuD;gBACvD,CAAC,iBAAiB,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,EAAE,CAAC;SACrF,CACF,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,IAAA,qBAAO,EACZ,wBAAwB,EACxB,yEAAyE,EACzE;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,8EAA8E;SACpF,CACF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;IAAE,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../scripts/harness/init.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCH,gDASC;AAED,oCAKC;AAED,8CAkBC;AAgBD,8CAuBC;AAED,oCAiEC;AAQD,8BAUC;AAED,kCAOC;AAmGD,gDAsBC;AA2QD,sCAQC;AA0BD,gDAwIC;AA9vBD,4CAA8B;AAC9B,gDAAkC;AAClC,2DAA+C;AAC/C,sEAAyE;AACzE,sEAAwE;AACxE,sDAAwD;AACxD,wCAAkD;AAClD,oDAAwE;AACxE,4CAA6C;AAC7C,4EAGoD;AACpD,8CAAgC;AAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAE9D,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAE9D,MAAM,UAAU,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAEnD;;;;;;;;;;;GAWG;AACH;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC,mBAAmB,CAAC;QAC7B,CAAC,CAAC,sCAAsC;QACxC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACrB,CAAC,CAAC,gCAAgC;YAClC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;gBAChB,CAAC,CAAC,gCAAgC;gBAClC,CAAC,CAAC,EAAE,CAAC;AACb,CAAC;AAED,SAAgB,YAAY,CAAC,UAAkB;IAC7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,GAAG;QACR,CAAC,CAAC,eAAe,GAAG,GAAG;QACvB,CAAC,CAAC,yEAAyE,CAAC;AAChF,CAAC;AAED,SAAgB,iBAAiB,CAAC,UAAkB;IAClD,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,kEAAkE;IAClE,OAAO,IAAA,+BAAuB,EAC5B;QACE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,UAAkB;IAClD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChF,IAAI,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,CACL,oFAAoF;YACpF,mFAAmF;YACnF,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,qFAAqF;YACrF,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,YAAY,CAC1B,UAAkB,EAClB,OAAsB;IAEtB,4EAA4E;IAC5E,4EAA4E;IAC5E,sBAAsB;IACtB,mEAAmE;IACnE,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,IAAA,8BAAmB,EAAC;QAC3C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG;QACX,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC;QACrC,cAAc,EAAE,gBAAgB;YAC9B,CAAC,CAAC,iFAAiF;gBACjF,+EAA+E;gBAC/E,QAAQ;YACV,CAAC,CAAC,gFAAgF;gBAChF,6EAA6E;gBAC7E,0EAA0E;gBAC1E,iEAAiE;gBACjE,0EAA0E;QAC9E,aAAa,EAAE,gBAAgB;YAC7B,CAAC,CAAC,iFAAiF;gBACjF,+DAA+D;YACjE,CAAC,CAAC,iFAAiF;gBACjF,iEAAiE;QACrE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC;QACxC,aAAa,EAAE,OAAO;YACpB,CAAC,CAAC,cAAc,OAAO,GAAG;YAC1B,CAAC,CAAC,2EAA2E;QAC/E,YAAY,EAAE,OAAO;YACnB,CAAC,CAAC,GAAG,OAAO,mCAAmC;YAC/C,CAAC,CAAC,8BAA8B;QAClC,iBAAiB,EAAE,CAAC,GAAG,EAAE;YACvB,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,CAAC,CAAC,EAAE;KACL,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAA,yBAAc,EAClB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,EACxE,IAAI,CACL;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAA,yBAAc,EAClB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,EACrE,IAAI,CACL;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,UAAkB,EAAE,OAAsB;IAClE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACxF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACvF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ;YACzD,CAAC,CAAC,GAAG,OAAO,mBAAmB;YAC/B,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,UAAkB;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,KAAK;IACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8DAA8D;QAC5D,WAAW;QACX,yCAAyC;QACzC,YAAY;QACZ,OAAO,WAAW,yCAAyC;QAC3D,OAAO,WAAW,0DAA0D;QAC5E,aAAa;QACb,8EAA8E;QAC9E,gFAAgF;QAChF,gEAAgE;QAChE,sEAAsE;QACtE,qDAAqD;QACrD,8CAA8C,CACjD,CAAC;AACJ,CAAC;AAWD,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAuB;QAC/B,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC;KACtB,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,eAAe,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACjE,IAAI,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACvC,IAAI,CAAC,KAAK,UAAU;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACzC,IAAI,CAAC,KAAK,QAAQ;YAAE,SAAS;aAC7B,IAAI,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;YAAE,CAAC,EAAE,CAAC;aACpD,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,iBAAiB;IACjB,OAAO;IACP,eAAe;IACf,UAAU;IACV,WAAW;IACX,cAAc;IACd,aAAa;IACb,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,SAAiB;IAEjB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC;IAClE,OAAO;QACL,IAAI,EAAE,GAAG,IAAI,wEAAwE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACzG,KAAK,EAAE,OAAO;KACf,CAAC;AACJ,CAAC;AAED,MAAa,WAAY,SAAQ,qBAAW;IACnC,OAAO;QACZ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,qEAAqE;QACrE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,UAAU,CAAC;QACf,IAAI,CAAC;YACH,UAAU,GAAG,IAAA,gCAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;gBACnB,IAAA,mBAAK,EAAC,YAAY,EAAE,IAAA,0BAAY,EAAC,GAAG,CAAC,EAAE;oBACrC,GAAG,EAAE,sEAAsE;iBAC5E,CAAC;aACH,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,wBAAa,EAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;oBAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrF,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,IAAI,WAAW,IAAI,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,MAAM,GAAoB,IAAI,CAAC;QACnC,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/E,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC1B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE;gBACvE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,QAAQ,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACtE,CAAC;oBACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,IAAI,GAAG,CAAC,CAAiC,EAAE,EAAE;YACjD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QACF,2EAA2E;QAC3E,4EAA4E;QAC5E,+EAA+E;QAC/E,MAAM,UAAU,GACd,CAAC,IAAI,CAAC,KAAK;YACX,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;gBACrC,IAAA,mBAAK,EAAC,uBAAuB,EAAE,oBAAoB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;oBACxE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACnB,GAAG,EAAE,2EAA2E;iBACjF,CAAC;aACH,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS;YACxE,IAAI,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,uEAAuE;QACvE,4EAA4E;QAC5E,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC;oBACE,IAAA,kBAAI,EACF,uBAAuB,EACvB,MAAM,CAAC,MAAM,GAAG,CAAC;wBACf,CAAC,CAAC,GAAG,WAAW,gDAAgD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;wBAC1F,CAAC,CAAC,GAAG,WAAW,gEAAgE,EAClF,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,oDAAoD,EAAE,CACnF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,UAAU;gBACZ,CAAC,CAAC;oBACE,IAAA,kBAAI,EACF,qBAAqB,EACrB,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,yDAAyD,EACjG;wBACE,MAAM,EAAE,WAAW;wBACnB,GAAG,EAAE,sDAAsD;qBAC5D,CACF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,IAAA,kBAAI,EAAC,qBAAqB,EAAE,uCAAuC,EAAE;gBACnE,GAAG,EAAE,wFAAwF;aAC9F,CAAC;SACH,CAAC;QACF,IAAI,aAAa;YAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;YAE5C,MAAM,CAAC,IAAI,CACT,IAAA,kBAAI,EACF,yBAAyB,EACzB,iKAAiK,EACjK;gBACE,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,iIAAiI;aACvI,CACF,CACF,CAAC;QAEJ,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT,IAAA,qBAAO,EACL,wBAAwB,EACxB,2DAA2D,EAC3D;gBACE,MAAM,EAAE,WAAW;gBACnB,GAAG,EAAE,sJAAsJ;aAC5J,CACF,CACF,CAAC;QACJ,CAAC;QAED,EAAE,CAAC,IAAI,CACL;YACE,UAAU;YACV,OAAO;YACP,KAAK,EAAE,OAAO;YACd,MAAM;SACP,EACD,GAAG,EAAE;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,OAAO;gBAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,IAAI,KAAK,uBAAuB,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAC3E,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,qEAAqE;YACrE,wEAAwE;YACxE,2BAA2B;YAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;oBAAE,SAAS;gBACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,CAAC,GAAG;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,GAAG,CAAC,KAAK,CACP,IAAI;gBACF,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACpC,EAAE;qBACC,EAAE,CACD,MAAM,EACN,sBAAsB,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,EAC3F,CAAC,CACF;qBACA,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC5B,EAAE;qBACC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC;qBAC9E,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC5B,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;oBACf,iEAAiE;oBACjE,CAAC,iCAAiC,EAAE,6BAA6B,CAAC;oBAClE,oEAAoE;iBACrE,CAAC,CACL,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AA7MD,kCA6MC;AAED,oEAAoE;AAEpE,gFAAgF;AACnE,QAAA,iBAAiB,GAAG,iBAAiB,CAAC;AACtC,QAAA,kBAAkB,GAAG,oCAAoC,yBAAiB,EAAE,CAAC;AAc7E,QAAA,aAAa,GAAkB;IAC1C;QACE,IAAI,EAAE,yBAAiB;QACvB,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE,oBAAoB;QAC7B,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EACL,mEAAmE;YACnE,4EAA4E;QAC9E,OAAO,EAAE,mCAAmC;KAC7C;IACD;QACE,sDAAsD;QACtD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,mCAAmC;QAC5C,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,gCAAgC;QACvC,OAAO,EACL,4EAA4E;YAC5E,mFAAmF;QACrF,OAAO,EAAE,mDAAmD;KAC7D;CACF,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;AAApE,QAAA,cAAc,kBAAsD;AAEjF;;;;;;;;;;;;;GAaG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,OAAiB,EAAE;IAC7D,MAAM,MAAM,GACV,mCAAmC;QACnC,0DAA0D;QAC1D,+EAA+E;QAC/E,wCAAwC;QACxC,8DAA8D,CAAC;IACjE,OAAO,UAAU,MAAM,6BAA6B,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9F,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,MAAM,eAAe,GAAG,CAAC,CAAc,EAAE,EAAE,CACzC,QAAQ;SACL,KAAK,CAAC,IAAI,CAAC;SACX,IAAI,CACH,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO;QACtC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CACjC,CAAC;IACN,MAAM,OAAO,GAAG,qBAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAA,sBAAc,EAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QAClD,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,iBAAiB,KAAK,QAAQ,KAAK,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,EAAE,CAAC,cAAc,CACf,cAAc,EACd,GAAG,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE;YACxB,6CAA6C;YAC7C,GAAG,IAAA,sBAAc,EAAC,CAAC,CAAC,IAAI,EAC1B,MAAM,CACP,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,SAAS;IACT,EAAE;IACF,6EAA6E;IAC7E,yEAAyE;IACzE,gFAAgF;IAChF,iEAAiE;IACjE,EAAE;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,aAAa,CACd,CAAC;IACF,MAAM,gBAAgB,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,CAAC,CAAc,EAAE,EAAE,CACpC,gBAAgB;QACd,CAAC,CAAC,aAAa,CAAC,sDAAsD,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpF,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAC/C,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnF,yEAAyE;IACzE,EAAE;IACF,6DAA6D;IAC7D,EAAE;IACF,yEAAyE;IACzE,8EAA8E;IAC9E,mEAAmE;IACnE,gFAAgF;IAChF,4EAA4E;IAC5E,6EAA6E;IAC7E,kDAAkD;IAClD,wDAAwD;IACxD,EAAE;IACF,4EAA4E;IAC5E,6EAA6E;IAC7E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,SAAS,EAAE,aAAa,CAAC,CAAC;QAEtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE;gBAChF,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;YACH,OAAO,IAAA,qBAAO,EACZ,6BAA6B,EAC7B,0BAA0B,CAAC,CAAC,KAAK,wBAAwB,EACzD;gBACE,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EACD,sCAAsC;oBACtC,sBAAsB,CAAC,CAAC,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI;oBACxE,yBAAyB,CAAC,CAAC,OAAO,sCAAsC;oBACxE,6CAA6C;aAChD,CACF,CAAC;QACJ,CAAC;QAED,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAA,qBAAO,EACZ,+BAA+B,EAC/B,6DAA6D,EAC7D;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EACD,2EAA2E;gBAC3E,0EAA0E;gBAC1E,yEAAyE;gBACzE,kCAAkC;gBAClC,gEAAgE;gBAChE,0EAA0E;gBAC1E,uDAAuD;gBACvD,CAAC,iBAAiB,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,EAAE,CAAC;SACrF,CACF,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,IAAA,qBAAO,EACZ,wBAAwB,EACxB,yEAAyE,EACzE;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,8EAA8E;SACpF,CACF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;IAAE,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC"}
@@ -7,12 +7,24 @@ exports.buildPrompt = buildPrompt;
7
7
  const instructions_1 = require("../change/instructions");
8
8
  const DiskHarnessConfigRepository_1 = require("../../packages/core/src/infrastructure/DiskHarnessConfigRepository");
9
9
  const GenerateAgentPromptUseCase_1 = require("../../packages/core/src/application/GenerateAgentPromptUseCase");
10
+ /**
11
+ * The apply stage's rules, as an agent inside the harness must read them. The
12
+ * interactive loop has the agent run `specgate status` and `specgate apply`;
13
+ * here the harness runs the gate and marks the requirement itself, and an
14
+ * agent told to run them ran whatever `specgate` was on its PATH — an old
15
+ * global install with no `apply` — and spent the attempt on it.
16
+ */
17
+ const HARNESS_RULES = [
18
+ ...(instructions_1.STAGES?.apply?.rules ?? []).filter((r) => !/is the queue|Close each requirement with `specgate apply/.test(r)),
19
+ "Do not run `specgate` yourself: when you finish, the harness runs the gate and marks the " +
20
+ "requirement. The `specgate` on your PATH may not even be this project's version.",
21
+ ];
10
22
  function buildPrompt(req, projectDir, opts = {}) {
11
23
  const repo = new DiskHarnessConfigRepository_1.DiskHarnessConfigRepository();
12
24
  const useCase = new GenerateAgentPromptUseCase_1.GenerateAgentPromptUseCase(repo);
13
25
  return useCase.execute(req, projectDir, {
14
26
  ...opts,
15
- stageRules: instructions_1.STAGES?.apply?.rules,
27
+ stageRules: HARNESS_RULES,
16
28
  });
17
29
  }
18
30
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../scripts/harness/prompt.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAYH,kCAYC;AAtBD,yDAAgD;AAChD,oHAAiH;AACjH,+GAA4G;AAQ5G,SAAgB,WAAW,CACzB,GAA4B,EAC5B,UAAkB,EAClB,OAAsB,EAAE;IAExB,MAAM,IAAI,GAAG,IAAI,yDAA2B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,uDAA0B,CAAC,IAAI,CAAC,CAAC;IAErD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAwB,EAAE,UAAU,EAAE;QAC3D,GAAG,IAAI;QACP,UAAU,EAAE,qBAAM,EAAE,KAAK,EAAE,KAAK;KACjC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../scripts/harness/prompt.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA2BH,kCAYC;AArCD,yDAAgD;AAChD,oHAAiH;AACjH,+GAA4G;AAQ5G;;;;;;GAMG;AACH,MAAM,aAAa,GAAa;IAC9B,GAAG,CAAC,qBAAM,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,0DAA0D,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3E;IACD,2FAA2F;QACzF,kFAAkF;CACrF,CAAC;AAEF,SAAgB,WAAW,CACzB,GAA4B,EAC5B,UAAkB,EAClB,OAAsB,EAAE;IAExB,MAAM,IAAI,GAAG,IAAI,yDAA2B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,uDAA0B,CAAC,IAAI,CAAC,CAAC;IAErD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAwB,EAAE,UAAU,EAAE;QAC3D,GAAG,IAAI;QACP,UAAU,EAAE,aAAa;KAC1B,CAAC,CAAC;AACL,CAAC"}
@@ -160,8 +160,15 @@ function checkIdsAgainstBase(projectDir, given) {
160
160
  }
161
161
  const here = titles(workingTree(projectDir));
162
162
  const there = titles(atRef(projectDir, base, prefix));
163
+ // Only ids this branch introduced can collide. One both sides already held
164
+ // where they last met is concurrent editing, not a reused id (REQ-120):
165
+ // renumbering it would break every test that names it.
166
+ const met = git(projectDir, ["merge-base", "HEAD", base]);
167
+ const inherited = met.status === 0 ? titles(atRef(projectDir, met.stdout.trim(), prefix)) : new Map();
163
168
  const collisions = [];
164
169
  for (const [id, title] of here) {
170
+ if (inherited.has(id))
171
+ continue;
165
172
  const other = there.get(id);
166
173
  if (other !== undefined && norm(other) !== norm(title)) {
167
174
  collisions.push({ id, here: title, base: other });
@@ -1 +1 @@
1
- {"version":3,"file":"base-ids.js","sourceRoot":"","sources":["../../../scripts/lib/base-ids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-ids.js","sourceRoot":"","sources":["../../../scripts/lib/base-ids.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2HA,kCAKC;AAID,kDAsCC;AA1KD,4CAA8B;AAC9B,gDAAkC;AAClC,2DAA+C;AAC/C,gFAA8E;AAC9E,0EAA0E;AAC1E,wEAA4E;AAC5E,4FAA4F;AAqB5F,yFAAyF;AACzF,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,uDAAuD,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAKD,SAAS,MAAM,CAAC,MAAc;IAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,MAAM,GAAG,IAAI,IAAA,8BAAc,EAAC,IAAA,0BAAa,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAChC,GAAG,KAAK,SAAS;IACjB,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC;IACrD,iEAAiE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9E,SAAS,IAAI,CAAC,IAAY,EAAE,GAAW,EAAE,GAAa;IACpD,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACvC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,UAAkB;IACrC,OAAO;QACL,IAAI;YACF,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3E,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG;YACN,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,UAAkB,EAAE,IAAc;IAC7C,OAAO,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,kEAAkE;AAClE,SAAS,QAAQ,CAAC,UAAkB;IAClC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,KAAK,CAAC,UAAkB,EAAE,GAAW,EAAE,MAAc;IAC5D,MAAM,CAAC,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO;QACL,IAAI;YACF,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE;gBACxB,SAAS;gBACT,IAAI;gBACJ,aAAa;gBACb,GAAG;gBACH,IAAI;gBACJ,CAAC,CAAC,SAAS,CAAC;gBACZ,CAAC,CAAC,YAAY,CAAC;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,MAAM;iBACZ,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrD,MAAM,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,GAAG;YACN,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAgB,WAAW,CAAC,UAAkB,EAAE,KAAc;IAC5D,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACxD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAExE,SAAgB,mBAAmB,CAAC,UAAkB,EAAE,KAAc;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjF,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;IACxF,IAAI,CAAC;QACH,IAAA,4BAAgB,EAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,IAAI,2BAA2B,EAAE,CAAC;IAC3E,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3F,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,oCAAoC,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,2EAA2E;IAC3E,wEAAwE;IACxE,uDAAuD;IACvD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,SAAS,GACb,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACtF,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAA,oCAAkB,EAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9F,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI;QACJ,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClE,QAAQ,EAAE,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;KACxD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ /**
3
+ * A change never replaces a requirement that moved under it (REQ-168).
4
+ *
5
+ * A MODIFIED or REMOVED delta restates a requirement as its author read it.
6
+ * If another change rewrites that requirement and merges first, archiving this
7
+ * delta replaces the merged text with a rewrite of the old one — no conflict,
8
+ * a green gate, and the other ticket's rule gone. `change_overlap` (REQ-160)
9
+ * sees the two only while both are open, and the capability spec merge driver
10
+ * (REQ-166) only when both rewrites meet in one merge.
11
+ *
12
+ * So the text a change was drafted against is fingerprinted in its
13
+ * `change.yaml` the first time the gate sees it — a file, so it survives a
14
+ * rebase where commit history would not — and compared from then on. Before
15
+ * the branch has brought the base in, git alone shows the move: the
16
+ * requirement differs between the base and where the two last met.
17
+ */
18
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
31
+ }) : function(o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar = (this && this.__importStar) || (function () {
35
+ var ownKeys = function(o) {
36
+ ownKeys = Object.getOwnPropertyNames || function (o) {
37
+ var ar = [];
38
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
39
+ return ar;
40
+ };
41
+ return ownKeys(o);
42
+ };
43
+ return function (mod) {
44
+ if (mod && mod.__esModule) return mod;
45
+ var result = {};
46
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
47
+ __setModuleDefault(result, mod);
48
+ return result;
49
+ };
50
+ })();
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.fingerprint = fingerprint;
53
+ exports.recordBases = recordBases;
54
+ exports.archiveBaseMoved = archiveBaseMoved;
55
+ exports.changeBaseFindings = changeBaseFindings;
56
+ const node_crypto_1 = require("node:crypto");
57
+ const node_child_process_1 = require("node:child_process");
58
+ const fs = __importStar(require("node:fs"));
59
+ const path = __importStar(require("node:path"));
60
+ const diagnostics_1 = require("./diagnostics");
61
+ const ticket_keys_1 = require("./ticket-keys");
62
+ const CapabilitySpecMerge_1 = require("../../packages/core/src/domain/CapabilitySpecMerge");
63
+ const CHANGES = path.join("docs", "specs", "changes");
64
+ const CAPABILITIES = path.join("docs", "specs", "capabilities");
65
+ const SECTION = /^## (ADDED|MODIFIED|REMOVED|RENAMED) Requirements/;
66
+ const REQUIREMENT = /^###\s+Requirement:\s+(REQ-[\w.]+)/;
67
+ const BASED_ON = /^based_on:\s*\[([^\]]*)\]\s*$/m;
68
+ function git(dir, args) {
69
+ return (0, node_child_process_1.spawnSync)("git", ["-C", dir, ...args], { encoding: "utf8" });
70
+ }
71
+ /** The text that matters: the trace comment flips with every `apply`. */
72
+ function fingerprint(block) {
73
+ const text = block
74
+ .replace(/\r\n/g, "\n")
75
+ .split("\n")
76
+ .filter((l) => !/^<!--\s*specgate:trace\b/.test(l.trim()))
77
+ .map((l) => l.trimEnd())
78
+ .join("\n")
79
+ .trim();
80
+ return (0, node_crypto_1.createHash)("sha256").update(text).digest("hex").slice(0, 12);
81
+ }
82
+ /** The requirements a change modifies or removes, with their capability. */
83
+ function rewrites(projectDir, changeId) {
84
+ const specs = path.join(projectDir, CHANGES, changeId, "specs");
85
+ if (!fs.existsSync(specs))
86
+ return [];
87
+ const out = [];
88
+ for (const capability of fs.readdirSync(specs)) {
89
+ const delta = path.join(specs, capability, "spec.md");
90
+ if (!fs.existsSync(delta))
91
+ continue;
92
+ let section = "";
93
+ for (const line of fs.readFileSync(delta, "utf8").split("\n")) {
94
+ const s = SECTION.exec(line);
95
+ if (s)
96
+ section = s[1];
97
+ const r = REQUIREMENT.exec(line);
98
+ if (r && (section === "MODIFIED" || section === "REMOVED"))
99
+ out.push({ id: r[1], capability });
100
+ }
101
+ }
102
+ return out;
103
+ }
104
+ function openChanges(projectDir) {
105
+ const dir = path.join(projectDir, CHANGES);
106
+ if (!fs.existsSync(dir))
107
+ return [];
108
+ return fs
109
+ .readdirSync(dir, { withFileTypes: true })
110
+ .filter((e) => e.isDirectory() && e.name !== "archive" && !e.name.startsWith("."))
111
+ .map((e) => e.name);
112
+ }
113
+ const capabilityFile = (capability) => path.join(CAPABILITIES, capability, "spec.md");
114
+ function blockNow(projectDir, w) {
115
+ try {
116
+ const text = fs.readFileSync(path.join(projectDir, capabilityFile(w.capability)), "utf8");
117
+ return (0, CapabilitySpecMerge_1.requirementBlocks)(text).get(w.id);
118
+ }
119
+ catch {
120
+ return undefined;
121
+ }
122
+ }
123
+ function blockAt(projectDir, ref, prefix, w) {
124
+ const file = [prefix, capabilityFile(w.capability)].filter(Boolean).join("/");
125
+ const r = git(projectDir, ["show", `${ref}:${file.split(path.sep).join("/")}`]);
126
+ return r.status === 0 ? (0, CapabilitySpecMerge_1.requirementBlocks)(r.stdout).get(w.id) : undefined;
127
+ }
128
+ const yamlPath = (projectDir, changeId) => path.join(projectDir, CHANGES, changeId, "change.yaml");
129
+ function recorded(projectDir, changeId) {
130
+ let yaml = "";
131
+ try {
132
+ yaml = fs.readFileSync(yamlPath(projectDir, changeId), "utf8");
133
+ }
134
+ catch {
135
+ return new Map();
136
+ }
137
+ const list = BASED_ON.exec(yaml)?.[1] ?? "";
138
+ return new Map(list
139
+ .split(",")
140
+ .map((e) => e.trim().split("@"))
141
+ .filter(([id, sha]) => id && sha)
142
+ .map(([id, sha]) => [id, sha]));
143
+ }
144
+ /**
145
+ * Fingerprint what each open change rewrites and has no record of yet — or,
146
+ * for `rebased`, all of one change's, after its delta was rewritten over the
147
+ * moved text. Returns the ids written.
148
+ */
149
+ function recordBases(projectDir, only) {
150
+ const written = [];
151
+ for (const changeId of only ? [only.changeId] : openChanges(projectDir)) {
152
+ const file = yamlPath(projectDir, changeId);
153
+ if (!fs.existsSync(file))
154
+ continue;
155
+ const have = only?.rebased ? new Map() : recorded(projectDir, changeId);
156
+ const next = new Map(have);
157
+ for (const w of rewrites(projectDir, changeId)) {
158
+ if (next.has(w.id))
159
+ continue;
160
+ const block = blockNow(projectDir, w);
161
+ if (block === undefined)
162
+ continue;
163
+ next.set(w.id, fingerprint(block));
164
+ written.push(w.id);
165
+ }
166
+ const before = recorded(projectDir, changeId);
167
+ const same = next.size === before.size && [...next].every(([k, v]) => before.get(k) === v);
168
+ if (same)
169
+ continue;
170
+ const line = `based_on: [${[...next].map(([id, sha]) => `${id}@${sha}`).join(", ")}]`;
171
+ const yaml = fs.readFileSync(file, "utf8");
172
+ fs.writeFileSync(file, BASED_ON.test(yaml) ? yaml.replace(BASED_ON, line) : `${yaml.replace(/\n*$/, "\n")}${line}\n`, "utf8");
173
+ }
174
+ return written;
175
+ }
176
+ const rewriteFix = (changeId, w) => `Rewrite ${w.id} in ${path.join(CHANGES, changeId, "specs", w.capability, "spec.md")} over ` +
177
+ `${capabilityFile(w.capability)} as it reads now, keeping what the other change added; then ` +
178
+ `run \`specgate change validate ${changeId} --rebased\`.`;
179
+ /** The requirements one change rewrites that moved since it recorded them. */
180
+ function movedSinceRecorded(projectDir, changeId) {
181
+ const have = recorded(projectDir, changeId);
182
+ return rewrites(projectDir, changeId).filter((w) => {
183
+ const sha = have.get(w.id);
184
+ const block = blockNow(projectDir, w);
185
+ return sha !== undefined && block !== undefined && fingerprint(block) !== sha;
186
+ });
187
+ }
188
+ /** Archive's refusal: an error per requirement that moved under the change. */
189
+ function archiveBaseMoved(projectDir, changeId) {
190
+ return movedSinceRecorded(projectDir, changeId).map((w) => (0, diagnostics_1.error)("change_base_moved", `${w.id} changed after ${changeId} was drafted against it: archiving would replace it as it reads now.`, { target: w.id, fix: rewriteFix(changeId, w) }));
191
+ }
192
+ /**
193
+ * `change_base_moved` warnings for `check`: moved since recorded, or — before
194
+ * the branch caught up — different on the base from where the two last met.
195
+ */
196
+ function changeBaseFindings(projectDir, given) {
197
+ const out = [];
198
+ let base = null;
199
+ try {
200
+ base = (0, ticket_keys_1.ticketBase)(projectDir, given);
201
+ }
202
+ catch {
203
+ base = null;
204
+ }
205
+ const met = base ? git(projectDir, ["merge-base", "HEAD", base]) : null;
206
+ const prefix = git(projectDir, ["rev-parse", "--show-prefix"]).stdout.trim().replace(/\/$/, "");
207
+ for (const changeId of openChanges(projectDir)) {
208
+ const moved = new Set(movedSinceRecorded(projectDir, changeId).map((w) => w.id));
209
+ for (const w of rewrites(projectDir, changeId)) {
210
+ if (moved.has(w.id)) {
211
+ out.push((0, diagnostics_1.warning)("change_base_moved", `${w.id} changed after ${changeId} was drafted against it: archiving would replace it as it reads now.`, { target: w.id, fix: rewriteFix(changeId, w) }));
212
+ continue;
213
+ }
214
+ if (!base || !met || met.status !== 0)
215
+ continue;
216
+ const then = blockAt(projectDir, met.stdout.trim(), prefix, w);
217
+ const there = blockAt(projectDir, base, prefix, w);
218
+ if (then === undefined || there === undefined || fingerprint(then) === fingerprint(there)) {
219
+ continue;
220
+ }
221
+ out.push((0, diagnostics_1.warning)("change_base_moved", `${w.id}, which ${changeId} rewrites, has changed on ${base} since this branch started.`, {
222
+ target: w.id,
223
+ fix: `Merge ${base} into this branch, rewrite ${w.id} in the delta over the requirement ` +
224
+ `as merged, then run \`specgate change validate ${changeId} --rebased\`.`,
225
+ }));
226
+ }
227
+ }
228
+ return out;
229
+ }
230
+ //# sourceMappingURL=change-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-base.js","sourceRoot":"","sources":["../../../scripts/lib/change-base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ /**
3
+ * Two open changes that rewrite the same requirement (REQ-160).
4
+ *
5
+ * With one change per ticket, two developers can each modify REQ-012 on their
6
+ * own branch. Reserved ids do not help — the requirement already exists — and
7
+ * git only notices when the text conflicts: two rewrites that touch different
8
+ * lines merge cleanly, and the second silently replaces the first. So the
9
+ * changes are read where they are: the working tree, and every local and
10
+ * remote-tracking branch not yet merged into this one (`git grep`, no
11
+ * checkout).
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.changeOverlaps = changeOverlaps;
48
+ const node_child_process_1 = require("node:child_process");
49
+ const fs = __importStar(require("node:fs"));
50
+ const path = __importStar(require("node:path"));
51
+ const diagnostics_1 = require("./diagnostics");
52
+ const CHANGES = "docs/specs/changes";
53
+ /** Refs per `git grep` call: a long branch list stays under the argument limit. */
54
+ const BATCH = 200;
55
+ const SECTION = /^## (ADDED|MODIFIED|REMOVED|RENAMED) Requirements/;
56
+ const REQUIREMENT = /^###\s+Requirement:\s+(REQ-[\w.]+)/;
57
+ /** A path inside an open change's delta, with the change's id. */
58
+ const OPEN_DELTA = /^docs\/specs\/changes\/([^/]+)\/specs\/.+\.md$/;
59
+ function git(dir, args) {
60
+ return (0, node_child_process_1.spawnSync)("git", ["-C", dir, ...args], { encoding: "utf8", maxBuffer: 64 * 1024 * 1024 });
61
+ }
62
+ const isOpen = (changeId) => changeId !== "archive" && !changeId.startsWith(".");
63
+ const touches = () => ({ rewrites: new Set(), adds: new Set() });
64
+ function read(lines, into) {
65
+ let section = "";
66
+ for (const line of lines) {
67
+ const s = SECTION.exec(line);
68
+ if (s) {
69
+ section = s[1];
70
+ continue;
71
+ }
72
+ const r = REQUIREMENT.exec(line);
73
+ if (!r)
74
+ continue;
75
+ if (section === "MODIFIED" || section === "REMOVED")
76
+ into.rewrites.add(r[1]);
77
+ else if (section === "ADDED")
78
+ into.adds.add(r[1]);
79
+ }
80
+ }
81
+ const empty = (t) => t.rewrites.size === 0 && t.adds.size === 0;
82
+ function deltaFiles(dir) {
83
+ if (!fs.existsSync(dir))
84
+ return [];
85
+ return fs.readdirSync(dir, { withFileTypes: true }).flatMap((e) => {
86
+ const full = path.join(dir, e.name);
87
+ return e.isDirectory() ? deltaFiles(full) : e.name.endsWith(".md") ? [full] : [];
88
+ });
89
+ }
90
+ /** Open change → what it does to requirements, in the working tree. */
91
+ function localChanges(projectDir) {
92
+ const out = new Map();
93
+ const changes = path.join(projectDir, CHANGES);
94
+ if (!fs.existsSync(changes))
95
+ return out;
96
+ for (const e of fs.readdirSync(changes, { withFileTypes: true })) {
97
+ if (!e.isDirectory() || !isOpen(e.name))
98
+ continue;
99
+ const t = touches();
100
+ for (const file of deltaFiles(path.join(changes, e.name, "specs"))) {
101
+ read(fs.readFileSync(file, "utf8").split("\n"), t);
102
+ }
103
+ if (!empty(t))
104
+ out.set(e.name, t);
105
+ }
106
+ return out;
107
+ }
108
+ const shortRef = (ref) => ref.replace(/^refs\/(heads|remotes)\//, "");
109
+ /** Branches not yet merged into HEAD: the ones whose open changes can still collide. */
110
+ function unmergedRefs(projectDir) {
111
+ const current = git(projectDir, ["symbolic-ref", "-q", "HEAD"]).stdout.trim();
112
+ const refs = git(projectDir, [
113
+ "for-each-ref",
114
+ "--format=%(refname)",
115
+ "refs/heads",
116
+ "refs/remotes",
117
+ ]);
118
+ if (refs.status !== 0)
119
+ return [];
120
+ return refs.stdout
121
+ .split("\n")
122
+ .map((r) => r.trim())
123
+ .filter((r) => r && r !== current && !r.endsWith("/HEAD"))
124
+ .filter((r) => git(projectDir, ["merge-base", "--is-ancestor", r, "HEAD"]).status !== 0);
125
+ }
126
+ /** `branch → change → what it does`, read from every unmerged branch. */
127
+ function branchChanges(projectDir) {
128
+ const out = new Map();
129
+ const refs = unmergedRefs(projectDir);
130
+ for (let i = 0; i < refs.length; i += BATCH) {
131
+ const batch = refs.slice(i, i + BATCH);
132
+ const found = git(projectDir, [
133
+ "grep",
134
+ "-n",
135
+ "-E",
136
+ "^(## (ADDED|MODIFIED|REMOVED|RENAMED) Requirements|### +Requirement: +REQ-)",
137
+ ...batch,
138
+ "--",
139
+ CHANGES,
140
+ ]);
141
+ // 1 is "no match", which is an answer.
142
+ if (found.status !== 0)
143
+ continue;
144
+ const byFile = new Map();
145
+ for (const line of found.stdout.split("\n")) {
146
+ const ref = batch.find((r) => line.startsWith(`${r}:`));
147
+ if (!ref)
148
+ continue;
149
+ const rest = line.slice(ref.length + 1);
150
+ const m = /^([^:]+):\d+:(.*)$/.exec(rest);
151
+ if (!m)
152
+ continue;
153
+ const key = `${ref}\u0000${m[1]}`;
154
+ if (!byFile.has(key))
155
+ byFile.set(key, []);
156
+ byFile.get(key).push(m[2]);
157
+ }
158
+ for (const [key, lines] of byFile) {
159
+ const [ref, file] = key.split("\u0000");
160
+ const change = OPEN_DELTA.exec(file)?.[1];
161
+ if (!change || !isOpen(change))
162
+ continue;
163
+ const branch = shortRef(ref);
164
+ if (!out.has(branch))
165
+ out.set(branch, new Map());
166
+ const changes = out.get(branch);
167
+ if (!changes.has(change))
168
+ changes.set(change, touches());
169
+ read(lines, changes.get(change));
170
+ }
171
+ }
172
+ return out;
173
+ }
174
+ const CLASH_FIX = "Two requirements cannot share an id. Renumber the one whose branch is not merged yet: " +
175
+ "a new id above both, in its delta and in the tests that name it.";
176
+ const FIX = "Agree which goes first. Merge that one, bring it into the other branch, and draft the second " +
177
+ "change again over the requirement as merged, so neither rewrite silently replaces the other.";
178
+ /**
179
+ * `change_overlap` for each requirement an open change here rewrites that
180
+ * another open change also rewrites — on this branch or on an unmerged one —
181
+ * and `change_id_clash` for each id it adds that a change on an unmerged
182
+ * branch adds too.
183
+ */
184
+ function changeOverlaps(projectDir) {
185
+ const local = localChanges(projectDir);
186
+ if (local.size === 0)
187
+ return [];
188
+ const out = [];
189
+ const said = new Set();
190
+ const clash = (req, mine, other, where) => {
191
+ const key = `clash\u0000${req}\u0000${other}`;
192
+ if (said.has(key))
193
+ return;
194
+ said.add(key);
195
+ out.push((0, diagnostics_1.warning)("change_id_clash", `${req} is added by ${mine} and also by change ${other} ${where}.`, {
196
+ target: req,
197
+ fix: CLASH_FIX,
198
+ }));
199
+ };
200
+ const say = (req, mine, other, where) => {
201
+ const key = `${req}\u0000${[mine, other].sort().join("\u0000")}`;
202
+ if (said.has(key))
203
+ return;
204
+ said.add(key);
205
+ out.push((0, diagnostics_1.warning)("change_overlap", `${req} is rewritten by ${mine} and also by change ${other} ${where}.`, { target: req, fix: FIX }));
206
+ };
207
+ const ids = [...local.keys()];
208
+ for (let i = 0; i < ids.length; i++) {
209
+ for (let j = i + 1; j < ids.length; j++) {
210
+ for (const req of local.get(ids[i]).rewrites) {
211
+ if (local.get(ids[j]).rewrites.has(req))
212
+ say(req, ids[i], ids[j], "on this branch");
213
+ }
214
+ }
215
+ }
216
+ for (const [branch, changes] of branchChanges(projectDir)) {
217
+ for (const [other, theirs] of changes) {
218
+ // The same change on its own pushed branch, or an older copy of it.
219
+ if (local.has(other))
220
+ continue;
221
+ for (const [mine, t] of local) {
222
+ for (const req of t.rewrites)
223
+ if (theirs.rewrites.has(req))
224
+ say(req, mine, other, `on ${branch}`);
225
+ // Reserved on two clones before either fetched the other (REQ-164).
226
+ for (const req of t.adds)
227
+ if (theirs.adds.has(req))
228
+ clash(req, mine, other, `on ${branch}`);
229
+ }
230
+ }
231
+ }
232
+ return out;
233
+ }
234
+ //# sourceMappingURL=change-overlap.js.map