@ai-dossier/cli 0.20.2 → 0.21.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.
@@ -1 +1 @@
1
- {"version":3,"file":"sched.js","sourceRoot":"","sources":["../../src/commands/sched.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sched.js","sourceRoot":"","sources":["../../src/commands/sched.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AAqRH,gDAGC;AA8aD,oDAaC;AAjtBD,sDAAyB;AAEzB,6CAgC2B;AAE3B,0CAAwC;AACxC,8BAAwD;AACxD,wCAA6C;AAC7C,wDAA8E;AAC9E,oCAAuC;AA4BvC,SAAS,SAAS,CAAC,GAAuB;IACxC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACvD,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAClC,IAAA,cAAI,EAAC,CAAC,yCAAyC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS,CAAC,GAAuB;IACxC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACzD,IAAA,cAAI,EAAC,CAAC,kDAAkD,GAAG,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,uFAAuF;AACvF,SAAS,SAAS,CAAC,GAAW,EAAE,IAAY;IAC1C,IAAI,CAAC;QACH,OAAO,IAAA,qCAAmB,EAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,cAAI,EAAC,CAAC,KAAK,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAkB;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAA,0BAAkB,EAAC,mBAAW,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CACX,8IAA8I,CAC/I,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,kBAAU,CAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;AACpE,CAAC;AAED,iFAAiF;AACjF,SAAS,gBAAgB,CAAC,GAAY;IACpC,IACE,GAAG,YAAY,yBAAiB;QAChC,GAAG,YAAY,wBAAgB;QAC/B,GAAG,YAAY,oBAAY;QAC3B,GAAG,YAAY,8BAAsB;QACrC,GAAG,YAAY,0BAAkB,EACjC,CAAC;QACD,IAAA,cAAI,EAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,GAAG,CAAC;AACZ,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAEhF,SAAS,YAAY,CAAC,MAAoB;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9F,KAAK,CAAC,IAAI,CACR,cAAc,MAAM,CAAC,OAAO,MAAM,KAAK,YAAY,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,OAAO,CAChG,CAAC;IACF,IAAI,MAAM,CAAC,eAAe,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACnD,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,+DAA+D;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;YACzB,CAAC,CAAC,sCAAsC;YACxC,CAAC,CAAC,iDAAiD,CAAC;QACtD,KAAK,CAAC,IAAI,CACR,sBAAsB,MAAM,CAAC,eAAe,CAAC,mBAAmB,gDAAgD,MAAM,CAAC,eAAe,CAAC,iBAAiB,KAAK,KAAK,EAAE,CACrK,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CACR,IAAA,mBAAW,EACT,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,EACrE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,KAAK,EAAE;QACb,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,KAAK,IAAI,GAAG;QACd,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;QAC9D,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;QACxD,CAAC,CAAC,OAAO,IAAI,GAAG;KACjB,CAAC,CACH,CACF,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe;YACrC,CAAC,CAAC,eAAe,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;YACvD,CAAC,CAAC,gBAAgB,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,qCAAqC,QAAQ,MAAM,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,MAAM;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,YAAY,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;aACzE,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,IAAA,mBAAW,EACT;YACE,MAAM;YACN,QAAQ;YACR,MAAM;YACN,KAAK;YACL,MAAM;YACN,OAAO;YACP,eAAe;YACf,YAAY;YACZ,wEAAwE;YACxE,2EAA2E;YAC3E,2EAA2E;YAC3E,KAAK;YACL,QAAQ;SACT,EACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,IAAI,GAAG;YACb,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;YACpC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,IAAI,GAAG;YACd,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG;YACpE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;YACpB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;YAC/B,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;SACvD,CAAC,CACH,CACN,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,IAAA,mBAAW,EACT,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAChD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACxB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;YACpE,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG;SAC3E,CAAC,CACH,CACN,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACjF,CAAC,CAAC,QAAQ,CACb,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9E,CAAC,CAAC,QAAQ,CACb,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAChF,SAAS,YAAY,CAAC,GAAW,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,OAAO,IAAA,oBAAS,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,+CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACU,QAAA,iBAAiB,GAAG;IAC/B,kBAAkB;IAClB,qBAAqB;IACrB,MAAM;IACN,YAAY;CACJ,CAAC;AAEX,iFAAiF;AACjF,SAAgB,kBAAkB,CAAC,MAAyB;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,OAAO,yBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,qBAAqB,CAAC,MAAsB,EAAE,IAAa;IAClE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,CAAC,KAAK,CACX,WAAW,KAAK,CAAC,KAAK,sEAAsE,KAAK,CAAC,KAAK,YAAY,CACpH,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAA,mBAAc,EAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CACX,KAAK,MAAM,CAAC,KAAK,kBAAkB,KAAK,CAAC,KAAK,uCAAuC,CACtF,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACzB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QAC3C,IAAI,GAAG;YAAE,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4FAA4F;AAC5F,SAAS,kBAAkB,CAAC,KAAiB,EAAE,OAAuB,EAAE,MAAgB;IACtF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACxD,MAAM,OAAO,GAAG,IAAI,eAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CACZ,IAAA,iBAAS,EAAC,eAAe,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE;YACjD,MAAM,EAAE,IAAA,wBAAgB,EAAC,KAAK,CAAC,aAAuB,CAAC;SACxD,CAAC,CACH,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CACZ,IAAA,iBAAS,EAAC,oBAAoB,EAAE,SAAS,KAAK,EAAE,EAAE;YAChD,MAAM,EAAE,wCAAwC;SACjD,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAS,aAAa,CACpB,IAAoB,EACpB,OAAe,EACf,MAAsB,EACtB,OAAuB,EACvB,MAAgB,EAChB,UAAkB;IAElB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;YACb,OAAO;YACP,QAAQ,EAAE,MAAM,CAAC,MAAM;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YACtC,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACxC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,aAAa;aAC3B,CAAC,CAAC;YACH,kBAAkB,EAAE,MAAM;YAC1B,WAAW,EAAE,UAAU;SACxB,CAAC,CACH,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,YAAY,OAAO,CAAC,MAAM,mBAAmB;QAChF,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC;IAChC,OAAO,CAAC,GAAG,CACT,cAAc,MAAM,CAAC,MAAM,iBAAiB,OAAO,KAAK,OAAO,kBAAkB,UAAU,GAAG,CAC/F,CAAC;AACJ,CAAC;AAED,sBAAsB;AAEtB,SAAS,yBAAyB,CAAC,GAAY;IAC7C,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iFAAiF,CAAC;SAC9F,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;SAC1F,MAAM,CAAC,eAAe,EAAE,4CAA4C,EAAE,MAAM,CAAC;SAC7E,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;SAC3D,MAAM,CAAC,kBAAkB,EAAE,2DAA2D,CAAC;SACvF,MAAM,CAAC,eAAe,EAAE,iDAAiD,EAAE,KAAK,CAAC;SACjF,MAAM,CAAC,wBAAwB,EAAE,0CAA0C,CAAC;SAC5E,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CACL,qBAAqB,EACrB,wIAAwI,CACzI;SACA,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC;SAC7C,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE;QAC/B,IAAA,oBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,IAAI,eAAe,GAAkB,IAAI,CAAC;QAC1C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC;gBACH,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAA,cAAI,EAAC,CAAC,wBAAwB,IAAI,CAAC,YAAY,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAA,cAAI,EAAC,CAAC,+BAAgC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,IACE,MAAM;gBACN,OAAO,MAAM,KAAK,QAAQ;gBAC1B,OAAQ,MAAgC,CAAC,OAAO,KAAK,QAAQ,EAC7D,CAAC;gBACD,eAAe,GAAI,MAA8B,CAAC,OAAO,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAA,cAAI,EAAC,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;YAC5D,OAAO,CAAC,KAAK,CACX,wCAAwC,eAAe,0BAA0B,OAAO,GAAG,CAC5F,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAA,cAAI,EAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,qCAAmB,EAAE,CAAC;YACxC,IAAA,cAAI,EAAC;gBACH,kBAAkB,MAAM,CAAC,MAAM,mEAAmE,qCAAmB,0DAA0D,qCAAmB,GAAG;aACtM,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,IAAI,UAAkB,CAAC;QACvB,IAAI,CAAC;YACH,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpC,MAAM,IAAI,GAAG,IAAA,sBAAc,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9D,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAY;IAC5C,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2DAA2D,CAAC;SACxE,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC;SAC7C,MAAM,CAAC,CAAC,IAAkB,EAAE,EAAE;QAC7B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,yBAAiB,EAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,6BAA6B,CAAC,GAAY,EAAE,KAAc;IACjE,GAAG;SACA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;SACnC,WAAW,CACV,KAAK;QACH,CAAC,CAAC,4DAA4D;QAC9D,CAAC,CAAC,oCAAoC,CACzC;SACA,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC;SAC7C,MAAM,CAAC,CAAC,IAAkB,EAAE,EAAE;QAC7B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACxC,KAAK,EAAE,IAAA,iBAAS,EAAC,KAAK,EAAE,KAAK,CAAC;gBAC9B,MAAM,EAAE,KAAK;aACd,CAAC,CAAC,CAAC;YACJ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAY;IAC7C,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iFAAiF,CAAC;SAC9F,MAAM,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,sBAAsB,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;SACzD,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC;SAC7C,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,IAAA,cAAI,EAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;QAC1C,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;oBACtC,MAAM,CAAC,GAAG,IAAA,oBAAY,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC7C,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;gBACrD,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACvF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,cAAc,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;oBACxC,MAAM,CAAC,GAAG,IAAA,oBAAY,EAAC,KAAK,EAAE,IAAI,CAAC,KAAe,EAAE,MAAM,CAAC,CAAC;oBAC5D,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChD,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CACT,qBAAqB,IAAI,CAAC,KAAK,cAAc,QAAQ,CAAC,MAAM,0BAA0B,CACvF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAY;IAC3C,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,gMAAgM,CACjM;SACA,MAAM,CACL,sBAAsB,EACtB,iDAAiD,EACjD,MAAM,CAAC,QAAQ,CAChB;SACA,MAAM,CAAC,QAAQ,EAAE,0DAA0D,CAAC;SAC5E,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,6BAA6B,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,IAAkB,EAAE,EAAE;QACnC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,MAAmB,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,6DAA6D;QAC7D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAC3D,IAAA,cAAI,EAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,qBAAqB,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;QACtE,CAAC;QAED,qEAAqE;QACrE,qEAAqE;QACrE,uDAAuD;QACvD,MAAM,eAAe,GACnB,MAAM,CAAC,QAAQ,EAAE,OAAO;YACxB,CAAC,IAAA,mBAAS,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,iCAAyB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,eAAe;YAClC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE;YAC3E,CAAC,CAAC,MAAM,CAAC;QAEX,MAAM,IAAI,GAAe;YACvB,KAAK;YACL,OAAO,EAAE,IAAI,eAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAC/B,WAAW,EAAE,IAAA,6BAAqB,EAAC,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;YACzE,SAAS,EAAE,IAAA,uBAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACzC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;YACtB,YAAY,EAAE,IAAA,oBAAY,EAAC,2BAAmB,EAAE;gBAC9C,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sBAAsB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,OAAO,IAAI,CACzE;aACJ,CAAC;YACF,2EAA2E;YAC3E,yEAAyE;YACzE,gFAAgF;YAChF,yEAAyE;YACzE,MAAM,EAAE,IAAA,2BAAmB,EACzB,IAAA,oBAAY,EAAC,wBAAgB,EAAE;gBAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mBAAmB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,OAAO,IAAI,CACtE;aACJ,CAAC,EACF,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAC3B;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,MAAkB,EAAU,EAAE;YAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9E,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9E,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,oCAAoC,CAAC,CAAC;YAC1E,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3E,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxF,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QAChE,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,MAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAA,YAAI,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kEAAkE;gBAClE,oEAAoE;gBACpE,kBAAkB;gBAClB,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAA,cAAI,EAAC,CAAC,sBAAuB,GAAa,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,WAAW,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,YAAY,CAAC,qBAAqB,IAAI,qCAA6B,CAAC,GAAG,IAAI,CAAC;QAC9F,OAAO,CAAC,GAAG,CACT,kCAAkC,OAAO,gBAAgB,QAAQ,oBAAoB,CACtF,CAAC;QACF,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,MAAM,IAAA,eAAO,EACX,IAAI,EACJ,YAAY,EACZ,GAAG,EAAE,CAAC,QAAQ,EACd,CAAC,MAAM,EAAE,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;;gBAC9E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,8FAA8F,CAC/F,CAAC;IAEJ,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACpC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACnC,6BAA6B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/C,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACpC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC"}
@@ -36,8 +36,18 @@ export type KnownPhase = Phase | ClassifyPhase | BatchPhase;
36
36
  export declare const ALL_PHASES: readonly KnownPhase[];
37
37
  /** The one mode value that marks a slot-cycle trail; shared by the grammar and resume. */
38
38
  export declare const SLOT_MODE = "slot";
39
+ /**
40
+ * The fence status (#504) — the takeover record the stall-recovery ladder writes BEFORE
41
+ * the replacement agent starts.
42
+ *
43
+ * A `superseded` milestone says "generation N now owns this run"; every earlier
44
+ * generation is fenced out of the trail. It is universally valid — a takeover can happen
45
+ * at any phase — so it is deliberately absent from every {@link PhaseSpec.statuses} and
46
+ * allowed by {@link statusAllowed} instead of being listed thirteen times.
47
+ */
48
+ export declare const FENCE_STATUS: "superseded";
39
49
  /** Milestone statuses. */
40
- export declare const STATUSES: readonly ["done", "partial", "blocked", "awaiting-merge"];
50
+ export declare const STATUSES: readonly ["done", "partial", "blocked", "awaiting-merge", "superseded"];
41
51
  export type Status = (typeof STATUSES)[number];
42
52
  /**
43
53
  * Keys whose values are paths and must therefore be absolute — the dossier rule is
@@ -59,6 +69,15 @@ export interface PhaseSpec {
59
69
  }
60
70
  /** Keys required whenever a phase reports `status=blocked`. */
61
71
  export declare const BLOCKED_REQUIRED: readonly ["reason"];
72
+ /**
73
+ * Keys required on a {@link FENCE_STATUS} milestone, for every phase.
74
+ *
75
+ * `gen` is what actually fences — the escalation ladder deliberately REUSES the run id
76
+ * across a redispatch (gate-issue Step 1.5 reads the trail's `run=` back), so a run id
77
+ * alone cannot tell the takeover apart from the run it replaced. `takeover` names who
78
+ * took over, so a fenced agent's abort message can say what superseded it.
79
+ */
80
+ export declare const FENCE_REQUIRED: readonly ["gen", "takeover"];
62
81
  /**
63
82
  * Caps that keep a milestone postable. GitHub rejects an issue comment over 65536
64
83
  * characters with an opaque 422, and `execFileSync` hits E2BIG well before that on some
@@ -112,6 +131,25 @@ interface KeyValueRule {
112
131
  test: (value: string) => boolean;
113
132
  expects: string;
114
133
  }
134
+ /**
135
+ * `takeover`: a label naming what took the run over (#504) — a run id, a slot id, an
136
+ * agent name. Loose on purpose (the ladder has no single naming scheme) but still a
137
+ * single flag-safe token, since it is read back out of a comment and shown to an agent.
138
+ */
139
+ export declare const TAKEOVER_RE: RegExp;
140
+ /**
141
+ * A `takeover=` label read OFF the trail, made safe to display.
142
+ *
143
+ * `TAKEOVER_RE` is enforced when a milestone is WRITTEN, but a milestone is an issue
144
+ * comment: anyone who can comment can author one, and the tolerant reader
145
+ * ({@link parseMilestone}) does not split non-header lines on whitespace, so a
146
+ * hand-posted `takeover=` can carry spaces, ANSI escapes, and anything else short of a
147
+ * newline. That string is printed into output an LLM agent with commit rights is
148
+ * instructed to read and act on, and into an operator's terminal. So a label that does
149
+ * not match the write-path grammar is DROPPED rather than quoted — the same discipline
150
+ * as `gh.ts`'s `snippet`/`isSafeArg` and `dispatch.ts`'s prompt flattening.
151
+ */
152
+ export declare function safeLabel(raw: string | undefined): string;
115
153
  export declare const KEY_VALUE_RULES: Record<string, KeyValueRule>;
116
154
  /**
117
155
  * The phase that follows `phase`, for the milestone's `next=` line.
@@ -129,6 +167,17 @@ export declare const KEY_VALUE_RULES: Record<string, KeyValueRule>;
129
167
  * batch-ship → batch-report → done.
130
168
  */
131
169
  export declare function defaultNext(phase: KnownPhase, status: Status): KnownPhase | 'done';
170
+ /**
171
+ * Every status `phase` may report, including the universally-valid fence status (#504).
172
+ *
173
+ * One definition, so the predicate below and the error message in
174
+ * {@link validateMilestone} can never disagree about the rule — a diagnostic that lists
175
+ * a status the validator rejects (or omits one it accepts) is the hardest kind of bug to
176
+ * notice, because the code is right and only the explanation is wrong.
177
+ */
178
+ export declare function allowedStatuses(phase: KnownPhase): readonly Status[];
179
+ /** Whether `phase` may report `status` — the fence status is valid on every phase (#504). */
180
+ export declare function statusAllowed(phase: KnownPhase, status: Status): boolean;
132
181
  /** The keys `phase` must carry when reporting `status`. */
133
182
  export declare function requiredKeys(phase: KnownPhase, status: Status): readonly string[];
134
183
  export interface MilestoneInput {
@@ -183,6 +232,64 @@ export declare function parseMilestone(body: string): ParsedMilestone | null;
183
232
  export declare function parseMilestones(bodies: string[]): ParsedMilestone[];
184
233
  /** Mint a fresh run id: `r-<issue>-<4 hex>`. */
185
234
  export declare function mintRunId(issue: number | string): string;
235
+ /**
236
+ * The generation of a run that has never been fenced, and the generation a caller that
237
+ * knows nothing about fencing implicitly posts at.
238
+ *
239
+ * Zero is deliberately the default rather than an error: an agent running an older
240
+ * dossier — or the zombie this whole mechanism exists to stop — passes no generation at
241
+ * all, so it lands at 0 and is fenced out the moment generation 1 exists. Nothing has to
242
+ * be upgraded for the fence to take effect on the runs that matter.
243
+ */
244
+ export declare const DEFAULT_GENERATION = 0;
245
+ /**
246
+ * Ceiling on a run generation.
247
+ *
248
+ * The ladder caps recoveries at two per run, so a real generation is a single digit;
249
+ * anything near this ceiling is forged or corrupt. The cap exists because generations
250
+ * are arithmetic on network data: without it a fence claiming `gen=9007199254740991`
251
+ * makes the NEXT generation unrepresentable, and every downstream parse of it fails —
252
+ * which would disable fencing on that issue permanently.
253
+ */
254
+ export declare const MAX_GENERATION = 1000;
255
+ /**
256
+ * The `gen=` of a milestone, or null when it does not carry a usable one.
257
+ *
258
+ * Null rather than {@link DEFAULT_GENERATION}: a milestone whose `gen=` is missing,
259
+ * unparseable, or past {@link MAX_GENERATION} is MALFORMED, and reading a malformed
260
+ * fence as "generation 0" would silently downgrade it to "never fenced" — the one answer
261
+ * that must never be inferred from bad data.
262
+ */
263
+ export declare function generationOf(milestone: ParsedMilestone): number | null;
264
+ /** Read a generation off a flag or a comment value; null when it is not one. */
265
+ export declare function parseGeneration(raw: string): number | null;
266
+ /**
267
+ * The highest-generation fence on `run`'s trail, or null when the run was never fenced.
268
+ *
269
+ * Scanned by highest generation rather than by position because milestones are only
270
+ * append-ordered, not generation-ordered: a zombie can post AFTER the fence that
271
+ * superseded it, and taking the last fence by position would then read back the older
272
+ * one and un-fence the trail.
273
+ */
274
+ export declare function latestFence(milestones: readonly ParsedMilestone[], run: string): ParsedMilestone | null;
275
+ /** The generation that currently owns `run` — 0 when it was never fenced. */
276
+ export declare function fenceGeneration(milestones: readonly ParsedMilestone[], run: string): number;
277
+ /**
278
+ * Whether a run at `gen` has been superseded: some fence installed a HIGHER generation.
279
+ *
280
+ * Equal generations are live — the takeover posts at exactly the generation its own
281
+ * fence installed, so `>` (not `>=`) is what lets the replacement work while every
282
+ * earlier generation is locked out.
283
+ */
284
+ export declare function isFenced(milestones: readonly ParsedMilestone[], run: string, gen: number): boolean;
285
+ /**
286
+ * The generation the next fence on `run` should install, or null at {@link MAX_GENERATION}.
287
+ *
288
+ * Null rather than an unbounded increment: emitting a generation nobody can parse back
289
+ * would break the fence for every later reader, so refusing to fence — loudly — is the
290
+ * safer end of that trade.
291
+ */
292
+ export declare function nextFenceGeneration(milestones: readonly ParsedMilestone[], run: string): number | null;
186
293
  /**
187
294
  * The world-facing checks the resume table needs. Injected so {@link computeResume}
188
295
  * stays pure and testable — the command layer supplies the `git`/`gh`/`fs` versions.
@@ -242,6 +349,12 @@ export interface ResumeResult {
242
349
  slot_trail?: boolean;
243
350
  /** Human-readable note, e.g. "already complete". */
244
351
  note?: string;
352
+ /**
353
+ * The generation that owns this run (#504) — 0 for a run that was never fenced. A
354
+ * resuming agent passes it to `runstate post --gen`; posting below it is rejected,
355
+ * which is what stops a superseded run from extending the trail.
356
+ */
357
+ generation: number;
245
358
  /**
246
359
  * Whether the `worktree=` path carried in `resume_context` exists on this machine —
247
360
  * `n/a` when no milestone recorded one. Bonus signal only: it never changes
@@ -1 +1 @@
1
- {"version":3,"file":"runstate.d.ts","sourceRoot":"","sources":["../src/runstate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runstate.d.ts","sourceRoot":"","sources":["../src/runstate.ts"],"names":[],"mappings":"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"}
package/dist/runstate.js CHANGED
@@ -12,13 +12,16 @@
12
12
  * be unit tested without touching `gh`, the network, or the filesystem.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.KEY_VALUE_RULES = exports.NEXT_VALUES = exports.RESUME_LOOP_CAP = exports.BATCH_SPECS = exports.CLASSIFY_SPEC = exports.PHASE_SPECS = exports.MAX_BODY_LENGTH = exports.MAX_VALUE_LENGTH = exports.BLOCKED_REQUIRED = exports.PATH_KEYS = exports.STATUSES = exports.SLOT_MODE = exports.ALL_PHASES = exports.BATCH_PHASES = exports.CLASSIFY_PHASE = exports.PHASES = exports.RUNSTATE_MARKER = void 0;
15
+ exports.MAX_GENERATION = exports.DEFAULT_GENERATION = exports.KEY_VALUE_RULES = exports.TAKEOVER_RE = exports.NEXT_VALUES = exports.RESUME_LOOP_CAP = exports.BATCH_SPECS = exports.CLASSIFY_SPEC = exports.PHASE_SPECS = exports.MAX_BODY_LENGTH = exports.MAX_VALUE_LENGTH = exports.FENCE_REQUIRED = exports.BLOCKED_REQUIRED = exports.PATH_KEYS = exports.STATUSES = exports.FENCE_STATUS = exports.SLOT_MODE = exports.ALL_PHASES = exports.BATCH_PHASES = exports.CLASSIFY_PHASE = exports.PHASES = exports.RUNSTATE_MARKER = void 0;
16
16
  exports.isAcKey = isAcKey;
17
17
  exports.isPhase = isPhase;
18
18
  exports.isKnownPhase = isKnownPhase;
19
19
  exports.isBatchPhase = isBatchPhase;
20
20
  exports.isStatus = isStatus;
21
+ exports.safeLabel = safeLabel;
21
22
  exports.defaultNext = defaultNext;
23
+ exports.allowedStatuses = allowedStatuses;
24
+ exports.statusAllowed = statusAllowed;
22
25
  exports.requiredKeys = requiredKeys;
23
26
  exports.validateMilestone = validateMilestone;
24
27
  exports.nowStamp = nowStamp;
@@ -27,6 +30,12 @@ exports.splitPair = splitPair;
27
30
  exports.parseMilestone = parseMilestone;
28
31
  exports.parseMilestones = parseMilestones;
29
32
  exports.mintRunId = mintRunId;
33
+ exports.generationOf = generationOf;
34
+ exports.parseGeneration = parseGeneration;
35
+ exports.latestFence = latestFence;
36
+ exports.fenceGeneration = fenceGeneration;
37
+ exports.isFenced = isFenced;
38
+ exports.nextFenceGeneration = nextFenceGeneration;
30
39
  exports.hitLoopCap = hitLoopCap;
31
40
  exports.computeResume = computeResume;
32
41
  const node_crypto_1 = require("node:crypto");
@@ -57,8 +66,18 @@ exports.BATCH_PHASES = [
57
66
  exports.ALL_PHASES = [exports.CLASSIFY_PHASE, ...exports.PHASES, ...exports.BATCH_PHASES];
58
67
  /** The one mode value that marks a slot-cycle trail; shared by the grammar and resume. */
59
68
  exports.SLOT_MODE = 'slot';
69
+ /**
70
+ * The fence status (#504) — the takeover record the stall-recovery ladder writes BEFORE
71
+ * the replacement agent starts.
72
+ *
73
+ * A `superseded` milestone says "generation N now owns this run"; every earlier
74
+ * generation is fenced out of the trail. It is universally valid — a takeover can happen
75
+ * at any phase — so it is deliberately absent from every {@link PhaseSpec.statuses} and
76
+ * allowed by {@link statusAllowed} instead of being listed thirteen times.
77
+ */
78
+ exports.FENCE_STATUS = 'superseded';
60
79
  /** Milestone statuses. */
61
- exports.STATUSES = ['done', 'partial', 'blocked', 'awaiting-merge'];
80
+ exports.STATUSES = ['done', 'partial', 'blocked', 'awaiting-merge', exports.FENCE_STATUS];
62
81
  /**
63
82
  * Keys whose values are paths and must therefore be absolute — the dossier rule is
64
83
  * "paths are absolute", and a relative worktree path makes a resume unresolvable from
@@ -67,6 +86,15 @@ exports.STATUSES = ['done', 'partial', 'blocked', 'awaiting-merge'];
67
86
  exports.PATH_KEYS = ['worktree', 'planning'];
68
87
  /** Keys required whenever a phase reports `status=blocked`. */
69
88
  exports.BLOCKED_REQUIRED = ['reason'];
89
+ /**
90
+ * Keys required on a {@link FENCE_STATUS} milestone, for every phase.
91
+ *
92
+ * `gen` is what actually fences — the escalation ladder deliberately REUSES the run id
93
+ * across a redispatch (gate-issue Step 1.5 reads the trail's `run=` back), so a run id
94
+ * alone cannot tell the takeover apart from the run it replaced. `takeover` names who
95
+ * took over, so a fenced agent's abort message can say what superseded it.
96
+ */
97
+ exports.FENCE_REQUIRED = ['gen', 'takeover'];
70
98
  /**
71
99
  * Caps that keep a milestone postable. GitHub rejects an issue comment over 65536
72
100
  * characters with an opaque 422, and `execFileSync` hits E2BIG well before that on some
@@ -198,6 +226,31 @@ const AREA_SLUGS_RE = /^[a-z0-9][a-z0-9-]*(?:,[a-z0-9][a-z0-9-]*)*$/;
198
226
  const DEPS_RE = /^(?:none|\d+(?:,\d+)*)$/;
199
227
  /** `batch`: a batch id slug — no spaces, slashes, or `#`. */
200
228
  const BATCH_ID_RE = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
229
+ /**
230
+ * `takeover`: a label naming what took the run over (#504) — a run id, a slot id, an
231
+ * agent name. Loose on purpose (the ladder has no single naming scheme) but still a
232
+ * single flag-safe token, since it is read back out of a comment and shown to an agent.
233
+ */
234
+ exports.TAKEOVER_RE = /^[A-Za-z0-9][A-Za-z0-9._:@/-]*$/;
235
+ /** Longest label echoed back out of a comment; a forged one is not a budget. */
236
+ const MAX_LABEL_LENGTH = 120;
237
+ /**
238
+ * A `takeover=` label read OFF the trail, made safe to display.
239
+ *
240
+ * `TAKEOVER_RE` is enforced when a milestone is WRITTEN, but a milestone is an issue
241
+ * comment: anyone who can comment can author one, and the tolerant reader
242
+ * ({@link parseMilestone}) does not split non-header lines on whitespace, so a
243
+ * hand-posted `takeover=` can carry spaces, ANSI escapes, and anything else short of a
244
+ * newline. That string is printed into output an LLM agent with commit rights is
245
+ * instructed to read and act on, and into an operator's terminal. So a label that does
246
+ * not match the write-path grammar is DROPPED rather than quoted — the same discipline
247
+ * as `gh.ts`'s `snippet`/`isSafeArg` and `dispatch.ts`'s prompt flattening.
248
+ */
249
+ function safeLabel(raw) {
250
+ return raw !== undefined && raw.length <= MAX_LABEL_LENGTH && exports.TAKEOVER_RE.test(raw)
251
+ ? raw
252
+ : 'unknown';
253
+ }
201
254
  /** One rule per enum-valued key; the message lists the closed set verbatim. */
202
255
  function enumRule(values) {
203
256
  return {
@@ -233,6 +286,14 @@ exports.KEY_VALUE_RULES = {
233
286
  test: (v) => BATCH_ID_RE.test(v),
234
287
  expects: "expected a batch id slug (letters, digits, '.', '_', '-'), e.g. b-2026-08-29-01",
235
288
  },
289
+ gen: {
290
+ test: (v) => NON_NEGATIVE_INT_RE.test(v),
291
+ expects: 'expected a non-negative integer run generation, e.g. 1 (mint one with: runstate fence)',
292
+ },
293
+ takeover: {
294
+ test: (v) => exports.TAKEOVER_RE.test(v),
295
+ expects: 'expected a single token naming what took the run over, e.g. slot-2 or r-504-fc02',
296
+ },
236
297
  };
237
298
  /** The batch line's successor order, for `defaultNext`. */
238
299
  const BATCH_NEXT = {
@@ -260,6 +321,11 @@ const BATCH_NEXT = {
260
321
  function defaultNext(phase, status) {
261
322
  if (status === 'blocked')
262
323
  return 'done';
324
+ // A fence hands the SAME phase to the takeover, so the trail still points at work to
325
+ // be done — that is what makes a fence whose takeover died resumable rather than
326
+ // terminal (#504). `classify` is exempt only because it is not a `next=` value.
327
+ if (status === exports.FENCE_STATUS)
328
+ return phase === exports.CLASSIFY_PHASE ? 'done' : phase;
263
329
  if (status === 'awaiting-merge' || status === 'partial')
264
330
  return phase;
265
331
  if (phase === exports.CLASSIFY_PHASE)
@@ -269,8 +335,25 @@ function defaultNext(phase, status) {
269
335
  const idx = exports.PHASES.indexOf(phase);
270
336
  return idx === exports.PHASES.length - 1 ? 'done' : exports.PHASES[idx + 1];
271
337
  }
338
+ /**
339
+ * Every status `phase` may report, including the universally-valid fence status (#504).
340
+ *
341
+ * One definition, so the predicate below and the error message in
342
+ * {@link validateMilestone} can never disagree about the rule — a diagnostic that lists
343
+ * a status the validator rejects (or omits one it accepts) is the hardest kind of bug to
344
+ * notice, because the code is right and only the explanation is wrong.
345
+ */
346
+ function allowedStatuses(phase) {
347
+ return [...ALL_PHASE_SPECS[phase].statuses, exports.FENCE_STATUS];
348
+ }
349
+ /** Whether `phase` may report `status` — the fence status is valid on every phase (#504). */
350
+ function statusAllowed(phase, status) {
351
+ return allowedStatuses(phase).includes(status);
352
+ }
272
353
  /** The keys `phase` must carry when reporting `status`. */
273
354
  function requiredKeys(phase, status) {
355
+ if (status === exports.FENCE_STATUS)
356
+ return exports.FENCE_REQUIRED;
274
357
  const spec = ALL_PHASE_SPECS[phase];
275
358
  const base = spec.required[status] ?? [];
276
359
  return status === 'blocked' ? [...base, ...exports.BLOCKED_REQUIRED] : base;
@@ -328,11 +411,11 @@ function validateMilestone(input) {
328
411
  if (!isStatus(status)) {
329
412
  errors.push(`Unknown status '${status}' — expected one of: ${exports.STATUSES.join(', ')}`);
330
413
  }
331
- else if (isKnownPhase(phase)) {
332
- const allowed = ALL_PHASE_SPECS[phase].statuses;
333
- if (!allowed.includes(status)) {
334
- errors.push(`Status '${status}' is not valid for phase '${phase}' — expected one of: ${allowed.join(', ')}`);
335
- }
414
+ else if (isKnownPhase(phase) && !statusAllowed(phase, status)) {
415
+ // The message lists the phase's OWN statuses and mentions the fence separately: an
416
+ // author who mistyped a status must not read `superseded` as an ordinary choice and
417
+ // hand-post a fence, bypassing the generation arithmetic `runstate fence` owns.
418
+ errors.push(`Status '${status}' is not valid for phase '${phase}' — expected one of: ${ALL_PHASE_SPECS[phase].statuses.join(', ')} ('${exports.FENCE_STATUS}' is valid on every phase, but is written by 'runstate fence', never by hand)`);
336
419
  }
337
420
  if (!RUN_ID_RE.test(run)) {
338
421
  errors.push(`Invalid run id '${run}' — expected r-<issue>-<hex>, e.g. r-440-ab56 (mint one with: ai-dossier runstate mint --issue <n>)`);
@@ -355,7 +438,7 @@ function validateMilestone(input) {
355
438
  if (problem)
356
439
  errors.push(problem);
357
440
  }
358
- if (isKnownPhase(phase) && isStatus(status) && ALL_PHASE_SPECS[phase].statuses.includes(status)) {
441
+ if (isKnownPhase(phase) && isStatus(status) && statusAllowed(phase, status)) {
359
442
  const missing = requiredKeys(phase, status).filter((k) => !seen.has(k));
360
443
  if (missing.length > 0) {
361
444
  errors.push(`Phase '${phase}' with status '${status}' requires ${missing.map((k) => `${k}=`).join(' ')} — add with --kv ${missing.map((k) => `${k}=<value>`).join(' --kv ')}`);
@@ -449,6 +532,107 @@ function parseMilestones(bodies) {
449
532
  function mintRunId(issue) {
450
533
  return `r-${issue}-${(0, node_crypto_1.randomBytes)(RUN_ID_RANDOM_BYTES).toString('hex')}`;
451
534
  }
535
+ // --- Fencing (#504) ---
536
+ /**
537
+ * The generation of a run that has never been fenced, and the generation a caller that
538
+ * knows nothing about fencing implicitly posts at.
539
+ *
540
+ * Zero is deliberately the default rather than an error: an agent running an older
541
+ * dossier — or the zombie this whole mechanism exists to stop — passes no generation at
542
+ * all, so it lands at 0 and is fenced out the moment generation 1 exists. Nothing has to
543
+ * be upgraded for the fence to take effect on the runs that matter.
544
+ */
545
+ exports.DEFAULT_GENERATION = 0;
546
+ /**
547
+ * Ceiling on a run generation.
548
+ *
549
+ * The ladder caps recoveries at two per run, so a real generation is a single digit;
550
+ * anything near this ceiling is forged or corrupt. The cap exists because generations
551
+ * are arithmetic on network data: without it a fence claiming `gen=9007199254740991`
552
+ * makes the NEXT generation unrepresentable, and every downstream parse of it fails —
553
+ * which would disable fencing on that issue permanently.
554
+ */
555
+ exports.MAX_GENERATION = 1000;
556
+ /**
557
+ * The `gen=` of a milestone, or null when it does not carry a usable one.
558
+ *
559
+ * Null rather than {@link DEFAULT_GENERATION}: a milestone whose `gen=` is missing,
560
+ * unparseable, or past {@link MAX_GENERATION} is MALFORMED, and reading a malformed
561
+ * fence as "generation 0" would silently downgrade it to "never fenced" — the one answer
562
+ * that must never be inferred from bad data.
563
+ */
564
+ function generationOf(milestone) {
565
+ const raw = milestone.keys.gen;
566
+ if (raw === undefined)
567
+ return null;
568
+ const parsed = parseGeneration(raw);
569
+ return parsed === null || parsed > exports.MAX_GENERATION ? null : parsed;
570
+ }
571
+ /** Read a generation off a flag or a comment value; null when it is not one. */
572
+ function parseGeneration(raw) {
573
+ if (!NON_NEGATIVE_INT_RE.test(raw))
574
+ return null;
575
+ const parsed = Number.parseInt(raw, 10);
576
+ return Number.isSafeInteger(parsed) ? parsed : null;
577
+ }
578
+ /**
579
+ * The highest-generation fence on `run`'s trail, or null when the run was never fenced.
580
+ *
581
+ * Scanned by highest generation rather than by position because milestones are only
582
+ * append-ordered, not generation-ordered: a zombie can post AFTER the fence that
583
+ * superseded it, and taking the last fence by position would then read back the older
584
+ * one and un-fence the trail.
585
+ */
586
+ function latestFence(milestones, run) {
587
+ if (run === '')
588
+ return null;
589
+ let best = null;
590
+ let bestGen = -1;
591
+ for (const milestone of milestones) {
592
+ if (milestone.status !== exports.FENCE_STATUS || milestone.run !== run)
593
+ continue;
594
+ // A malformed fence is SKIPPED, never counted as generation 0: `FENCE_REQUIRED`
595
+ // mandates a well-formed `gen=` on the write path, so one without it did not come
596
+ // from `runstate fence`, and treating it as generation 0 would let it mask a real
597
+ // fence behind it.
598
+ const gen = generationOf(milestone);
599
+ if (gen === null)
600
+ continue;
601
+ if (gen > bestGen) {
602
+ bestGen = gen;
603
+ best = milestone;
604
+ }
605
+ }
606
+ return best;
607
+ }
608
+ /** The generation that currently owns `run` — 0 when it was never fenced. */
609
+ function fenceGeneration(milestones, run) {
610
+ const fence = latestFence(milestones, run);
611
+ // `latestFence` already skipped every fence without a usable generation, so the
612
+ // fallback here only covers "no fence at all".
613
+ return fence === null ? exports.DEFAULT_GENERATION : (generationOf(fence) ?? exports.DEFAULT_GENERATION);
614
+ }
615
+ /**
616
+ * Whether a run at `gen` has been superseded: some fence installed a HIGHER generation.
617
+ *
618
+ * Equal generations are live — the takeover posts at exactly the generation its own
619
+ * fence installed, so `>` (not `>=`) is what lets the replacement work while every
620
+ * earlier generation is locked out.
621
+ */
622
+ function isFenced(milestones, run, gen) {
623
+ return fenceGeneration(milestones, run) > gen;
624
+ }
625
+ /**
626
+ * The generation the next fence on `run` should install, or null at {@link MAX_GENERATION}.
627
+ *
628
+ * Null rather than an unbounded increment: emitting a generation nobody can parse back
629
+ * would break the fence for every later reader, so refusing to fence — loudly — is the
630
+ * safer end of that trade.
631
+ */
632
+ function nextFenceGeneration(milestones, run) {
633
+ const next = fenceGeneration(milestones, run) + 1;
634
+ return next > exports.MAX_GENERATION ? null : next;
635
+ }
452
636
  /**
453
637
  * True when the last {@link RESUME_LOOP_CAP} milestones are all `blocked` on the same
454
638
  * phase — the run is retrying the same wall and needs a human, not another resume.
@@ -571,6 +755,7 @@ function computeResume(milestones, probe) {
571
755
  resume_context: {},
572
756
  last: null,
573
757
  local_worktree: 'n/a',
758
+ generation: exports.DEFAULT_GENERATION,
574
759
  };
575
760
  }
576
761
  const context = {};
@@ -585,6 +770,7 @@ function computeResume(milestones, probe) {
585
770
  resume_context: context,
586
771
  last,
587
772
  local_worktree,
773
+ generation: fenceGeneration(milestones, last.run),
588
774
  };
589
775
  if (hitLoopCap(milestones)) {
590
776
  return { ...base, resume_from: last.phase, hard_block: 'resume-loop' };
@@ -593,6 +779,22 @@ function computeResume(milestones, probe) {
593
779
  if (fresh) {
594
780
  return { ...base, resume_from: 'none', ...fresh };
595
781
  }
782
+ // A fence is the last thing on the trail: the takeover was announced but has not
783
+ // posted yet (#504). It may never post — the takeover can die too — so this is a
784
+ // resumable state, at the fenced phase and at the generation the fence installed,
785
+ // rather than a terminal one or an unknown status falling through to a fresh entry.
786
+ if (last.status === exports.FENCE_STATUS) {
787
+ return {
788
+ ...base,
789
+ resume_from: last.phase || 'none',
790
+ // Deliberately NOT "resume as that generation": `post` accepts an equal
791
+ // generation, so telling every reader to adopt the takeover's number would invite
792
+ // a second writer alongside a takeover that is alive and working — the exact race
793
+ // this mechanism exists to prevent. Only a resumer that installs its own fence has
794
+ // established that it, and not the takeover, owns the run.
795
+ note: `fenced by '${safeLabel(last.keys.takeover)}' at generation ${base.generation} — if you are not that takeover, run 'ai-dossier runstate fence' to install generation ${base.generation + 1} before posting`,
796
+ };
797
+ }
596
798
  // Any blocked milestone resumes at that same phase.
597
799
  if (last.status === 'blocked') {
598
800
  return { ...base, resume_from: last.phase || 'none' };