@hasna/todos 0.15.10 → 0.15.11

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":"cloud-router.d.ts","sourceRoot":"","sources":["../../src/cli/cloud-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGhG,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,IAAI,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE5Y,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzG,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAG9C;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAuBlD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,6BAA6B;IAC5C,wEAAwE;IACxE,IAAI,EAAE,iBAAiB,CAAC;IACxB,8DAA8D;IAC9D,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,0BAA0B,GAAG,oBAAoB,GAAG,SAAS,CAAC;CACvE;AAOD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,GAAE,GAAwB,GAAG,6BAA6B,CA4CvG;AAgDD,wBAAgB,mCAAmC,CACjD,GAAG,GAAE,GAAwB,GAC5B,gCAAgC,CA4DlC;AAwBD,wFAAwF;AACxF,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAIxD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,cAAqC,GAAG,MAAM,CAwB1F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAS5D;AA6HD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,GAAwB,GAAG,kBAAkB,GAAG,IAAI,CAQ5F;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,GAAE,GAAwB,GAAG,OAAO,CAErE;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAcD,+EAA+E;AAC/E,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoB5G;AAED,sFAAsF;AACtF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAyB3B;AA2ED,8EAA8E;AAC9E,wBAAsB,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAMzG;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkClG;AAED,iEAAiE;AACjE,wBAAsB,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAG/F;AAED,oEAAoE;AACpE,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/G;AAED,6CAA6C;AAC7C,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3H;AAED,wEAAwE;AACxE,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ9F;AASD,sEAAsE;AACtE,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAKhH;AAED,mFAAmF;AACnF,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAG5H;AAED,+EAA+E;AAC/E,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAOhH;AAED,4FAA4F;AAC5F,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAOnC;AAED,8DAA8D;AAC9D,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQlG;AAED,sFAAsF;AACtF,wBAAsB,eAAe,CACnC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,EAC/C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,IAAI,CAAC,CAGf;AAuED,uGAAuG;AACvG,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,wBAA6B,GAClC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAInF;AAqBD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAgBzG;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gBAAgB,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,OAAO,CAAC,aAAa,CAAC,CAqCxB;AAED,gEAAgE;AAChE,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAIlF;AAED,yDAAyD;AACzD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAItF;AAcD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAElB;AA2ED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAErG;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAInG;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,4DAA4D;AAC5D,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQjG;AAED,8EAA8E;AAC9E,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,2BAA2B,CAAC,CAStC;AAED,oFAAoF;AACpF,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IAAE,yBAAyB,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,OAAO,CAAC,2BAA2B,CAAC,CAUtC;AAED,kFAAkF;AAClF,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,2BAA2B,EAAE,MAAM,CAAA;CAAE,GACjE,OAAO,CAAC,6BAA6B,CAAC,CAUxC;AAED,oFAAoF;AACpF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAUhC;AAED,wEAAwE;AACxE,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IACL,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB,GACA,OAAO,CAAC,qBAAqB,CAAC,CAUhC;AAED,qFAAqF;AACrF,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,sBAAsB,EAAE,MAAM,CAAA;CAAE,GAC5D,OAAO,CAAC,6BAA6B,CAAC,CAcxC;AAED,mFAAmF;AACnF,wBAAsB,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAKpG;AASD,gDAAgD;AAChD,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvG;AAED,qDAAqD;AACrD,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnH;AAED,sDAAsD;AACtD,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU9F;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACvG,OAAO,CAAC,WAAW,CAAC,CAQtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAmF3B;AAwCD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAKzG;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtE,OAAO,CAAC,qBAAqB,CAAC,CAQhC;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAU1G;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAM9G;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAM7G;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAO7B;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAClF,OAAO,CAAC,eAAe,CAAC,CAM1B;AAED,yFAAyF;AACzF,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAI9G;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qFAAqF;AACrF,wBAAsB,YAAY,CAChC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAChI,OAAO,CAAC,eAAe,CAAC,CAM1B;AAED,+EAA+E;AAC/E,wBAAsB,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAIvG;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAqBxH;AAED,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMrH;AAED,oEAAoE;AACpE,wBAAsB,eAAe,CACnC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,UAAQ,GACZ,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,+EAA+E;AAC/E,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAIjH;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,MAAM,EAAE,IAAI,EAAE,CAAC;CAChB;AAuED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgC/G;AAaD,iFAAiF;AACjF,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAM3H;AAED,6FAA6F;AAC7F,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvH;AAED,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9G,OAAO,CAAC,qBAAqB,CAAC,CAMhC;AAwBD,iFAAiF;AACjF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAM3G;AAED,sFAAsF;AACtF,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAK1G;AAED,2GAA2G;AAC3G,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAM3H;AAED,8EAA8E;AAC9E,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,GAAE,IAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAO9H;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,oFAAoF;AACpF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,EACrD,EAAE,GAAE,IAAiB,GACpB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAqC/B;AAED,wEAAwE;AACxE,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAK3H;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,iFAAiF;AACjF,wBAAsB,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBjH;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAMxG;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAQ5G;AASD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAGvG;AA6BD,kFAAkF;AAClF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED,+DAA+D;AAC/D,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,6EAA6E;AAC7E,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAEnB;AAED,4EAA4E;AAC5E,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ3D;AAED,qEAAqE;AACrE,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQlG;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACzE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAWtB;AAED,mFAAmF;AACnF,wBAAsB,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAMtG;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAKhG;AAED,2EAA2E;AAC3E,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAUvH;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,SAAS,IAAI,EAAE,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAuB9B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC,IAAI,GAAG;QAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7D,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtG;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoD1H;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgC9H"}
1
+ {"version":3,"file":"cloud-router.d.ts","sourceRoot":"","sources":["../../src/cli/cloud-router.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -2123,7 +2123,7 @@ var package_default;
2123
2123
  var init_package = __esm(() => {
2124
2124
  package_default = {
2125
2125
  name: "@hasna/todos",
2126
- version: "0.15.10",
2126
+ version: "0.15.11",
2127
2127
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
2128
2128
  type: "module",
2129
2129
  main: "dist/index.js",
@@ -2269,7 +2269,7 @@ function isBlockingDependencyStatus(status) {
2269
2269
  function isTerminalStatus(status) {
2270
2270
  return status === "completed" || status === "failed" || status === "cancelled";
2271
2271
  }
2272
- var TASK_STATUSES, TASK_PRIORITIES, VersionConflictError, TaskNotFoundError, TaskNotStartableError, TaskReferenceAmbiguousError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DISPATCH_STATUSES, DispatchNotFoundError;
2272
+ var TASK_STATUSES, TASK_PRIORITIES, PLAN_STATUSES, VersionConflictError, TaskNotFoundError, TaskNotStartableError, TaskReferenceAmbiguousError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DISPATCH_STATUSES, DispatchNotFoundError;
2273
2273
  var init_types = __esm(() => {
2274
2274
  TASK_STATUSES = [
2275
2275
  "pending",
@@ -2284,6 +2284,7 @@ var init_types = __esm(() => {
2284
2284
  "high",
2285
2285
  "critical"
2286
2286
  ];
2287
+ PLAN_STATUSES = ["active", "completed", "archived"];
2287
2288
  VersionConflictError = class VersionConflictError extends Error {
2288
2289
  taskId;
2289
2290
  expectedVersion;
@@ -2822,6 +2823,405 @@ var init_redaction = __esm(() => {
2822
2823
  REDACTION_PLACEHOLDER = String.raw`\[REDACTED(?:_[A-Z_]+)?\]`;
2823
2824
  });
2824
2825
 
2826
+ // src/lib/plan-project-link-contract.ts
2827
+ import { createHash as createHash2 } from "crypto";
2828
+ function canonicalPlanProjectLinkJson(value) {
2829
+ if (value === null || typeof value !== "object")
2830
+ return JSON.stringify(value);
2831
+ if (Array.isArray(value))
2832
+ return `[${value.map(canonicalPlanProjectLinkJson).join(",")}]`;
2833
+ return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonicalPlanProjectLinkJson(item)}`).join(",")}}`;
2834
+ }
2835
+ function planProjectLinkDigest(value) {
2836
+ return createHash2("sha256").update(canonicalPlanProjectLinkJson(value)).digest("hex");
2837
+ }
2838
+ function normalizePlanProjectLinkIdempotencyKey(value) {
2839
+ const key = value?.trim() ?? "";
2840
+ if (key.length < 8 || key.length > 128 || !/^[A-Za-z0-9._:-]+$/.test(key)) {
2841
+ throw new PlanProjectLinkError("PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID", "idempotency_key must be 8-128 ASCII letters, digits, dots, underscores, colons, or hyphens");
2842
+ }
2843
+ return key;
2844
+ }
2845
+ function planProjectLinkReceiptId(idempotencyKey) {
2846
+ return `pplr_${planProjectLinkDigest({ idempotency_key: idempotencyKey }).slice(0, 48)}`;
2847
+ }
2848
+ function planProjectLinkRollbackReceiptId(receiptId) {
2849
+ return `pplr_inverse_${planProjectLinkDigest({ accepted_receipt_id: receiptId }).slice(0, 38)}`;
2850
+ }
2851
+ function planProjectLinkRequestHash(planId, projectId) {
2852
+ return planProjectLinkDigest({ plan_id: planId, project_id: projectId });
2853
+ }
2854
+ function planProjectLinkResultDigest(plan, tasks) {
2855
+ return planProjectLinkDigest({
2856
+ plan_id: plan.id,
2857
+ plan_project_id: plan.project_id,
2858
+ tasks: tasks.map((task) => ({ id: task.id, plan_id: task.plan_id, project_id: task.project_id })).sort((left, right) => left.id.localeCompare(right.id))
2859
+ });
2860
+ }
2861
+ function assertPlanProjectLinkReceipt(value) {
2862
+ const receipt = value;
2863
+ if (!receipt || typeof receipt !== "object" || receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION || typeof receipt.receipt_id !== "string" || typeof receipt.idempotency_key !== "string" || typeof receipt.plan_id !== "string" || typeof receipt.project_id !== "string" || !Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string") || !receipt.prior_task_project_ids || typeof receipt.prior_task_project_ids !== "object" || typeof receipt.result_digest !== "string") {
2864
+ throw new PlanProjectLinkError("PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND", "Stored plan-project-link receipt is invalid");
2865
+ }
2866
+ return receipt;
2867
+ }
2868
+ function responseRecord(value, label) {
2869
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
2870
+ throw new Error(`${label} must be an object`);
2871
+ }
2872
+ return value;
2873
+ }
2874
+ function exactResponseKeys(value, expected, label) {
2875
+ const actual = Object.keys(value).sort();
2876
+ const wanted = [...expected].sort();
2877
+ if (actual.length !== wanted.length || actual.some((key, index) => key !== wanted[index])) {
2878
+ throw new Error(`${label} fields must be exactly: ${wanted.join(", ")}`);
2879
+ }
2880
+ }
2881
+ function responseString(value, label) {
2882
+ if (typeof value !== "string" || value.length === 0) {
2883
+ throw new Error(`${label} must be a non-empty string`);
2884
+ }
2885
+ return value;
2886
+ }
2887
+ function responseNullableString(value, label) {
2888
+ if (value !== null && typeof value !== "string") {
2889
+ throw new Error(`${label} must be a string or null`);
2890
+ }
2891
+ return value;
2892
+ }
2893
+ function responseNumber(value, label) {
2894
+ if (typeof value !== "number" || !Number.isFinite(value)) {
2895
+ throw new Error(`${label} must be a finite number`);
2896
+ }
2897
+ return value;
2898
+ }
2899
+ function responseBoolean(value, label) {
2900
+ if (typeof value !== "boolean")
2901
+ throw new Error(`${label} must be a boolean`);
2902
+ return value;
2903
+ }
2904
+ function responseDateTime(value, label) {
2905
+ const timestamp = responseString(value, label);
2906
+ if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(timestamp) || !Number.isFinite(Date.parse(timestamp))) {
2907
+ throw new Error(`${label} must be an RFC 3339 date-time`);
2908
+ }
2909
+ return timestamp;
2910
+ }
2911
+ function responseNullableDateTime(value, label) {
2912
+ if (value === null)
2913
+ return null;
2914
+ return responseDateTime(value, label);
2915
+ }
2916
+ function responseOptionalNullableString(record, field, label) {
2917
+ if (field in record)
2918
+ responseNullableString(record[field], `${label}.${field}`);
2919
+ }
2920
+ function responseOptionalNullableDateTime(record, field, label) {
2921
+ if (field in record)
2922
+ responseNullableDateTime(record[field], `${label}.${field}`);
2923
+ }
2924
+ function responseStringArray(value, label) {
2925
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
2926
+ throw new Error(`${label} must be an array of strings`);
2927
+ }
2928
+ return value;
2929
+ }
2930
+ function responseProjectSources(value, expectedProjectId) {
2931
+ if (!Array.isArray(value))
2932
+ throw new Error("project.sources must be an array");
2933
+ value.forEach((item, index) => {
2934
+ const label = `project.sources[${index}]`;
2935
+ const source = responseRecord(item, label);
2936
+ responseString(source.id, `${label}.id`);
2937
+ if (responseString(source.project_id, `${label}.project_id`) !== expectedProjectId) {
2938
+ throw new Error(`${label}.project_id must match project.id`);
2939
+ }
2940
+ responseString(source.type, `${label}.type`);
2941
+ responseString(source.name, `${label}.name`);
2942
+ responseString(source.uri, `${label}.uri`);
2943
+ responseNullableString(source.description, `${label}.description`);
2944
+ responseRecord(source.metadata, `${label}.metadata`);
2945
+ responseDateTime(source.created_at, `${label}.created_at`);
2946
+ responseDateTime(source.updated_at, `${label}.updated_at`);
2947
+ });
2948
+ }
2949
+ function responsePlan(value, expectedPlanId) {
2950
+ const plan = responseRecord(value, "plan");
2951
+ if (responseString(plan.id, "plan.id") !== expectedPlanId) {
2952
+ throw new Error(`plan.id must match requested plan ${expectedPlanId}`);
2953
+ }
2954
+ responseNullableString(plan.slug, "plan.slug");
2955
+ responseNullableString(plan.project_id, "plan.project_id");
2956
+ responseNullableString(plan.task_list_id, "plan.task_list_id");
2957
+ responseNullableString(plan.agent_id, "plan.agent_id");
2958
+ responseString(plan.name, "plan.name");
2959
+ responseNullableString(plan.description, "plan.description");
2960
+ if (typeof plan.status !== "string" || !PLAN_STATUSES.includes(plan.status)) {
2961
+ throw new Error(`plan.status must be one of: ${PLAN_STATUSES.join(", ")}`);
2962
+ }
2963
+ responseDateTime(plan.created_at, "plan.created_at");
2964
+ responseDateTime(plan.updated_at, "plan.updated_at");
2965
+ responseOptionalNullableString(plan, "machine_id", "plan");
2966
+ responseOptionalNullableDateTime(plan, "synced_at", "plan");
2967
+ return plan;
2968
+ }
2969
+ function responseProject(value, expectedProjectId) {
2970
+ const project = responseRecord(value, "project");
2971
+ if (responseString(project.id, "project.id") !== expectedProjectId) {
2972
+ throw new Error(`project.id must match requested project ${expectedProjectId}`);
2973
+ }
2974
+ responseString(project.name, "project.name");
2975
+ responseString(project.path, "project.path");
2976
+ responseNullableString(project.description, "project.description");
2977
+ responseNullableString(project.task_list_id, "project.task_list_id");
2978
+ responseNullableString(project.task_prefix, "project.task_prefix");
2979
+ responseNumber(project.task_counter, "project.task_counter");
2980
+ responseDateTime(project.created_at, "project.created_at");
2981
+ responseDateTime(project.updated_at, "project.updated_at");
2982
+ responseOptionalNullableString(project, "machine_id", "project");
2983
+ responseOptionalNullableDateTime(project, "synced_at", "project");
2984
+ if ("sources" in project && project.sources !== undefined) {
2985
+ responseProjectSources(project.sources, expectedProjectId);
2986
+ }
2987
+ return project;
2988
+ }
2989
+ function responseTasks(value, expectedPlanId) {
2990
+ if (!Array.isArray(value))
2991
+ throw new Error("tasks must be an array");
2992
+ const seen = new Set;
2993
+ return value.map((item, index) => {
2994
+ const task = responseRecord(item, `tasks[${index}]`);
2995
+ const taskId = responseString(task.id, `tasks[${index}].id`);
2996
+ if (seen.has(taskId))
2997
+ throw new Error(`tasks contains duplicate id ${taskId}`);
2998
+ seen.add(taskId);
2999
+ if (task.plan_id !== expectedPlanId) {
3000
+ throw new Error(`tasks[${index}].plan_id must match requested plan ${expectedPlanId}`);
3001
+ }
3002
+ const label = `tasks[${index}]`;
3003
+ responseNullableString(task.short_id, `${label}.short_id`);
3004
+ responseNullableString(task.project_id, `tasks[${index}].project_id`);
3005
+ responseNullableString(task.parent_id, `${label}.parent_id`);
3006
+ responseNullableString(task.task_list_id, `${label}.task_list_id`);
3007
+ responseString(task.title, `${label}.title`);
3008
+ responseNullableString(task.description, `${label}.description`);
3009
+ if (typeof task.status !== "string" || !TASK_STATUSES.includes(task.status)) {
3010
+ throw new Error(`${label}.status must be one of: ${TASK_STATUSES.join(", ")}`);
3011
+ }
3012
+ if (typeof task.priority !== "string" || !TASK_PRIORITIES.includes(task.priority)) {
3013
+ throw new Error(`${label}.priority must be one of: ${TASK_PRIORITIES.join(", ")}`);
3014
+ }
3015
+ for (const field of [
3016
+ "agent_id",
3017
+ "assigned_to",
3018
+ "session_id",
3019
+ "working_dir",
3020
+ "locked_by",
3021
+ "approved_by",
3022
+ "recurrence_rule",
3023
+ "recurrence_parent_id",
3024
+ "spawns_template_id",
3025
+ "reason",
3026
+ "spawned_from_session",
3027
+ "assigned_by",
3028
+ "created_by",
3029
+ "assigned_from_project",
3030
+ "task_type",
3031
+ "delegated_from",
3032
+ "runner_id",
3033
+ "current_step"
3034
+ ]) {
3035
+ responseNullableString(task[field], `${label}.${field}`);
3036
+ }
3037
+ responseStringArray(task.tags, `${label}.tags`);
3038
+ responseRecord(task.metadata, `${label}.metadata`);
3039
+ for (const field of [
3040
+ "version",
3041
+ "cost_tokens",
3042
+ "cost_usd",
3043
+ "delegation_depth",
3044
+ "retry_count",
3045
+ "max_retries"
3046
+ ]) {
3047
+ responseNumber(task[field], `${label}.${field}`);
3048
+ }
3049
+ for (const field of ["estimated_minutes", "actual_minutes", "confidence", "sla_minutes", "total_steps"]) {
3050
+ if (task[field] !== null)
3051
+ responseNumber(task[field], `${label}.${field}`);
3052
+ }
3053
+ responseBoolean(task.requires_approval, `${label}.requires_approval`);
3054
+ responseDateTime(task.created_at, `${label}.created_at`);
3055
+ responseDateTime(task.updated_at, `${label}.updated_at`);
3056
+ for (const field of [
3057
+ "locked_at",
3058
+ "started_at",
3059
+ "completed_at",
3060
+ "due_at",
3061
+ "approved_at",
3062
+ "retry_after",
3063
+ "runner_started_at",
3064
+ "runner_completed_at"
3065
+ ]) {
3066
+ responseNullableDateTime(task[field], `${label}.${field}`);
3067
+ }
3068
+ responseOptionalNullableString(task, "machine_id", label);
3069
+ responseOptionalNullableDateTime(task, "synced_at", label);
3070
+ responseOptionalNullableDateTime(task, "archived_at", label);
3071
+ return task;
3072
+ });
3073
+ }
3074
+ function responseReceipt(value, expectation, planRevision, taskIds) {
3075
+ const receipt = responseRecord(value, "receipt");
3076
+ exactResponseKeys(receipt, [
3077
+ "schema_version",
3078
+ "receipt_id",
3079
+ "idempotency_key",
3080
+ "plan_id",
3081
+ "project_id",
3082
+ "prior_plan_project_id",
3083
+ "prior_task_project_ids",
3084
+ "task_ids",
3085
+ "task_count",
3086
+ "result_plan_revision",
3087
+ "result_digest",
3088
+ "rollback_supported",
3089
+ "created_at"
3090
+ ], "receipt");
3091
+ if (receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION) {
3092
+ throw new Error(`receipt.schema_version must be ${PLAN_PROJECT_LINK_SCHEMA_VERSION}`);
3093
+ }
3094
+ const expectedReceiptId = planProjectLinkReceiptId(expectation.idempotency_key);
3095
+ if (responseString(receipt.receipt_id, "receipt.receipt_id") !== expectedReceiptId) {
3096
+ throw new Error("receipt.receipt_id must match the deterministic apply receipt identity");
3097
+ }
3098
+ if (responseString(receipt.idempotency_key, "receipt.idempotency_key") !== expectation.idempotency_key) {
3099
+ throw new Error("receipt.idempotency_key must match the apply request");
3100
+ }
3101
+ if (responseString(receipt.plan_id, "receipt.plan_id") !== expectation.plan_id) {
3102
+ throw new Error("receipt.plan_id must match the requested plan");
3103
+ }
3104
+ if (responseString(receipt.project_id, "receipt.project_id") !== expectation.project_id) {
3105
+ throw new Error("receipt.project_id must match the requested project");
3106
+ }
3107
+ responseNullableString(receipt.prior_plan_project_id, "receipt.prior_plan_project_id");
3108
+ const priorTaskProjectIds = responseRecord(receipt.prior_task_project_ids, "receipt.prior_task_project_ids");
3109
+ for (const [taskId, projectId] of Object.entries(priorTaskProjectIds)) {
3110
+ responseString(taskId, "receipt.prior_task_project_ids key");
3111
+ responseNullableString(projectId, `receipt.prior_task_project_ids.${taskId}`);
3112
+ }
3113
+ if (!Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string" || id.length === 0)) {
3114
+ throw new Error("receipt.task_ids must be an array of non-empty strings");
3115
+ }
3116
+ const receiptTaskIds = receipt.task_ids;
3117
+ if (new Set(receiptTaskIds).size !== receiptTaskIds.length) {
3118
+ throw new Error("receipt.task_ids must not contain duplicates");
3119
+ }
3120
+ if (receiptTaskIds.length !== taskIds.length || receiptTaskIds.some((taskId, index) => taskId !== taskIds[index])) {
3121
+ throw new Error("receipt.task_ids must exactly match the response task identities");
3122
+ }
3123
+ const priorTaskIds = Object.keys(priorTaskProjectIds).sort();
3124
+ if (priorTaskIds.length !== taskIds.length || priorTaskIds.some((taskId, index) => taskId !== [...taskIds].sort()[index])) {
3125
+ throw new Error("receipt.prior_task_project_ids must exactly cover the response task identities");
3126
+ }
3127
+ if (!Number.isInteger(receipt.task_count) || receipt.task_count !== taskIds.length) {
3128
+ throw new Error("receipt.task_count must equal the response task count");
3129
+ }
3130
+ if (responseString(receipt.result_plan_revision, "receipt.result_plan_revision") !== planRevision) {
3131
+ throw new Error("receipt.result_plan_revision must equal plan.updated_at");
3132
+ }
3133
+ const resultDigest = responseString(receipt.result_digest, "receipt.result_digest");
3134
+ if (!/^[a-f0-9]{64}$/.test(resultDigest)) {
3135
+ throw new Error("receipt.result_digest must be a lowercase SHA-256 digest");
3136
+ }
3137
+ if (receipt.rollback_supported !== true) {
3138
+ throw new Error("receipt.rollback_supported must be true");
3139
+ }
3140
+ responseDateTime(receipt.created_at, "receipt.created_at");
3141
+ return receipt;
3142
+ }
3143
+ function assertPlanProjectLinkResponse(value, expectation) {
3144
+ const response = responseRecord(value, `${expectation.mode} response`);
3145
+ exactResponseKeys(response, ["mode", "action", "plan", "project", "tasks", "receipt"], `${expectation.mode} response`);
3146
+ if (response.mode !== expectation.mode) {
3147
+ throw new Error(`mode must be ${expectation.mode}`);
3148
+ }
3149
+ const allowedActions = expectation.mode === "plan" ? ["would_link", "already_linked"] : ["linked", "already_linked"];
3150
+ if (typeof response.action !== "string" || !allowedActions.includes(response.action)) {
3151
+ throw new Error(`action must be one of: ${allowedActions.join(", ")}`);
3152
+ }
3153
+ const plan = responsePlan(response.plan, expectation.plan_id);
3154
+ responseProject(response.project, expectation.project_id);
3155
+ const tasks = responseTasks(response.tasks, expectation.plan_id);
3156
+ const linkedResult = expectation.mode === "apply" || response.action === "already_linked";
3157
+ if (linkedResult) {
3158
+ if (plan.project_id !== expectation.project_id) {
3159
+ throw new Error("plan.project_id must match the requested project after linkage");
3160
+ }
3161
+ if (tasks.some((task) => task.project_id !== expectation.project_id)) {
3162
+ throw new Error("every task.project_id must match the requested project after linkage");
3163
+ }
3164
+ }
3165
+ if (expectation.mode === "plan") {
3166
+ if (response.receipt !== null)
3167
+ throw new Error("receipt must be null for a plan response");
3168
+ } else {
3169
+ if (!expectation.idempotency_key)
3170
+ throw new Error("apply validation requires the request idempotency key");
3171
+ const receipt = responseReceipt(response.receipt, expectation, plan.updated_at, tasks.map((task) => task.id));
3172
+ const expectedDigest = planProjectLinkResultDigest(plan, tasks);
3173
+ if (receipt.result_digest !== expectedDigest) {
3174
+ throw new Error("receipt.result_digest must match the returned plan and tasks");
3175
+ }
3176
+ }
3177
+ return value;
3178
+ }
3179
+ function assertPlanProjectLinkRollbackResponse(value, expectation) {
3180
+ const response = responseRecord(value, "rollback response");
3181
+ exactResponseKeys(response, [
3182
+ "schema_version",
3183
+ "action",
3184
+ "plan",
3185
+ "tasks",
3186
+ "accepted_receipt_id",
3187
+ "rollback_receipt_id",
3188
+ "restored_at"
3189
+ ], "rollback response");
3190
+ if (response.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION) {
3191
+ throw new Error(`schema_version must be ${PLAN_PROJECT_LINK_SCHEMA_VERSION}`);
3192
+ }
3193
+ if (response.action !== "restored")
3194
+ throw new Error("action must be restored");
3195
+ const plan = responsePlan(response.plan, expectation.plan_id);
3196
+ responseTasks(response.tasks, expectation.plan_id);
3197
+ if (responseString(response.accepted_receipt_id, "accepted_receipt_id") !== expectation.receipt_id) {
3198
+ throw new Error("accepted_receipt_id must match the rollback request");
3199
+ }
3200
+ const expectedRollbackReceiptId = planProjectLinkRollbackReceiptId(expectation.receipt_id);
3201
+ if (responseString(response.rollback_receipt_id, "rollback_receipt_id") !== expectedRollbackReceiptId) {
3202
+ throw new Error("rollback_receipt_id must match the deterministic rollback receipt identity");
3203
+ }
3204
+ const restoredAt = responseDateTime(response.restored_at, "restored_at");
3205
+ if (plan.updated_at !== restoredAt) {
3206
+ throw new Error("restored_at must equal plan.updated_at");
3207
+ }
3208
+ return value;
3209
+ }
3210
+ var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
3211
+ var init_plan_project_link_contract = __esm(() => {
3212
+ init_types();
3213
+ PlanProjectLinkError = class PlanProjectLinkError extends Error {
3214
+ code;
3215
+ details;
3216
+ constructor(code, message, details = {}) {
3217
+ super(message);
3218
+ this.code = code;
3219
+ this.details = details;
3220
+ this.name = "PlanProjectLinkError";
3221
+ }
3222
+ };
3223
+ });
3224
+
2825
3225
  // src/pr-groups/types.ts
2826
3226
  var PR_GROUP_LEDGER_SCHEMA_VERSION = 1, PR_GROUP_REPAIR_CYCLE_LIMIT = 2, PrGroupLedgerError;
2827
3227
  var init_types2 = __esm(() => {
@@ -2838,9 +3238,9 @@ var init_types2 = __esm(() => {
2838
3238
  });
2839
3239
 
2840
3240
  // src/pr-groups/ledger.ts
2841
- import { createHash as createHash2 } from "crypto";
3241
+ import { createHash as createHash3 } from "crypto";
2842
3242
  function sha256(value) {
2843
- return createHash2("sha256").update(value).digest("hex");
3243
+ return createHash3("sha256").update(value).digest("hex");
2844
3244
  }
2845
3245
  function stableValue(value) {
2846
3246
  if (Array.isArray(value))
@@ -5711,17 +6111,50 @@ async function cloudRollbackProjectTaskListEnsure(client, projectId, input) {
5711
6111
  return requiredRemoteRoute(client, "/v1/projects/:id/task-list/rollback", () => client.transport.post(`/projects/${encodeURIComponent(projectId)}/task-list/rollback`, input), ["PROJECT_NOT_FOUND", "PROJECT_TASK_LIST_RECEIPT_NOT_FOUND"]);
5712
6112
  }
5713
6113
  async function cloudPlanPlanProjectLink(client, planId, projectId) {
5714
- return requiredRemoteRoute(client, "/v1/plans/:id/project-link", () => client.transport.get(`/plans/${encodeURIComponent(planId)}/project-link`, { query: { project_id: projectId } }), ["PLAN_PROJECT_LINK_PLAN_NOT_FOUND", "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND"]);
6114
+ const route = `/v1/plans/${encodeURIComponent(planId)}/project-link`;
6115
+ const response = await requiredRemoteRoute(client, "/v1/plans/:id/project-link", () => client.transport.get(`/plans/${encodeURIComponent(planId)}/project-link`, { query: { project_id: projectId } }), ["PLAN_PROJECT_LINK_PLAN_NOT_FOUND", "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND"]);
6116
+ try {
6117
+ return assertPlanProjectLinkResponse(response, { mode: "plan", plan_id: planId, project_id: projectId });
6118
+ } catch (error) {
6119
+ const reason = error instanceof Error ? error.message : String(error);
6120
+ throw new Error(`REMOTE_API_INCOMPATIBLE: ${route} returned an invalid ${PLAN_PROJECT_LINK_SCHEMA_VERSION} plan response: ` + `${reason}; local SQLite fallback is disabled`, { cause: error });
6121
+ }
5715
6122
  }
5716
6123
  async function cloudApplyPlanProjectLink(client, planId, projectId, input) {
5717
- return requiredRemoteRoute(client, "/v1/plans/:id/project-link", () => client.transport.post(`/plans/${encodeURIComponent(planId)}/project-link`, { project_id: projectId, ...input }), ["PLAN_PROJECT_LINK_PLAN_NOT_FOUND", "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND"]);
6124
+ const route = `/v1/plans/${encodeURIComponent(planId)}/project-link`;
6125
+ const normalizedInput = {
6126
+ ...input,
6127
+ idempotency_key: normalizePlanProjectLinkIdempotencyKey(input.idempotency_key)
6128
+ };
6129
+ const response = await requiredRemoteRoute(client, "/v1/plans/:id/project-link", () => client.transport.post(`/plans/${encodeURIComponent(planId)}/project-link`, { project_id: projectId, ...normalizedInput }), ["PLAN_PROJECT_LINK_PLAN_NOT_FOUND", "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND"]);
6130
+ try {
6131
+ return assertPlanProjectLinkResponse(response, {
6132
+ mode: "apply",
6133
+ plan_id: planId,
6134
+ project_id: projectId,
6135
+ idempotency_key: normalizedInput.idempotency_key
6136
+ });
6137
+ } catch (error) {
6138
+ const reason = error instanceof Error ? error.message : String(error);
6139
+ throw new Error(`REMOTE_API_INCOMPATIBLE: ${route} returned an invalid ${PLAN_PROJECT_LINK_SCHEMA_VERSION} apply response: ` + `${reason}; local SQLite fallback is disabled`, { cause: error });
6140
+ }
5718
6141
  }
5719
6142
  async function cloudRollbackPlanProjectLink(client, planId, projectId, input) {
5720
- return requiredRemoteRoute(client, "/v1/plans/:id/project-link/rollback", () => client.transport.post(`/plans/${encodeURIComponent(planId)}/project-link/rollback`, { project_id: projectId, ...input }), [
6143
+ const route = `/v1/plans/${encodeURIComponent(planId)}/project-link/rollback`;
6144
+ const response = await requiredRemoteRoute(client, "/v1/plans/:id/project-link/rollback", () => client.transport.post(`/plans/${encodeURIComponent(planId)}/project-link/rollback`, { project_id: projectId, ...input }), [
5721
6145
  "PLAN_PROJECT_LINK_PLAN_NOT_FOUND",
5722
6146
  "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND",
5723
6147
  "PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND"
5724
6148
  ]);
6149
+ try {
6150
+ return assertPlanProjectLinkRollbackResponse(response, {
6151
+ plan_id: planId,
6152
+ receipt_id: input.receipt_id
6153
+ });
6154
+ } catch (error) {
6155
+ const reason = error instanceof Error ? error.message : String(error);
6156
+ throw new Error(`REMOTE_API_INCOMPATIBLE: ${route} returned an invalid ${PLAN_PROJECT_LINK_SCHEMA_VERSION} rollback response: ` + `${reason}; local SQLite fallback is disabled`, { cause: error });
6157
+ }
5725
6158
  }
5726
6159
  async function cloudListPlans(client, projectId) {
5727
6160
  const query = projectId ? { project_id: projectId } : {};
@@ -6396,6 +6829,7 @@ var UUID_RE, TRANSPORT_TOKENS, COMPLETION_EVIDENCE_FIELDS, completionCapabilityC
6396
6829
  var init_cloud_router = __esm(() => {
6397
6830
  init_types();
6398
6831
  init_redaction();
6832
+ init_plan_project_link_contract();
6399
6833
  init_http_client();
6400
6834
  UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
6401
6835
  TRANSPORT_TOKENS = {
@@ -12815,7 +13249,7 @@ __export(exports_event_hooks, {
12815
13249
  emitLocalEventHooks: () => emitLocalEventHooks,
12816
13250
  LOCAL_EVENT_TYPES: () => LOCAL_EVENT_TYPES
12817
13251
  });
12818
- import { createHash as createHash3, randomUUID } from "crypto";
13252
+ import { createHash as createHash4, randomUUID } from "crypto";
12819
13253
  import { appendFileSync, mkdirSync as mkdirSync4 } from "fs";
12820
13254
  import { dirname as dirname4, resolve as resolve7 } from "path";
12821
13255
  import { createConnection } from "net";
@@ -12882,7 +13316,7 @@ function buildEnvelope(type, payload, timestamp2 = new Date().toISOString()) {
12882
13316
  payload: redactValue(payload ?? {}),
12883
13317
  source: { package: "@hasna/todos", local_only: true }
12884
13318
  };
12885
- const digest = createHash3("sha256").update(canonicalEvent(base)).digest("hex");
13319
+ const digest = createHash4("sha256").update(canonicalEvent(base)).digest("hex");
12886
13320
  return { ...base, integrity: { algorithm: "sha256", digest } };
12887
13321
  }
12888
13322
  function summarize(value) {
@@ -18096,7 +18530,7 @@ var init_boards = __esm(() => {
18096
18530
  });
18097
18531
 
18098
18532
  // src/lib/artifact-store.ts
18099
- import { createHash as createHash4 } from "crypto";
18533
+ import { createHash as createHash5 } from "crypto";
18100
18534
  import { existsSync as existsSync8, mkdirSync as mkdirSync5, readFileSync as readFileSync3, rmSync as rmSync2, statSync as statSync2, writeFileSync as writeFileSync3 } from "fs";
18101
18535
  import { basename as basename2, dirname as dirname5, join as join7, resolve as resolve8 } from "path";
18102
18536
  import { tmpdir as tmpdir3 } from "os";
@@ -18121,7 +18555,7 @@ function artifactStorePath(relativePath) {
18121
18555
  return join7(artifactStoreRoot(), normalized);
18122
18556
  }
18123
18557
  function sha2562(buffer) {
18124
- return createHash4("sha256").update(buffer).digest("hex");
18558
+ return createHash5("sha256").update(buffer).digest("hex");
18125
18559
  }
18126
18560
  function isTextLike(buffer, path) {
18127
18561
  if (buffer.includes(0))
@@ -22840,62 +23274,6 @@ var init_plan_artifacts = __esm(() => {
22840
23274
  init_tasks();
22841
23275
  });
22842
23276
 
22843
- // src/lib/plan-project-link-contract.ts
22844
- import { createHash as createHash5 } from "crypto";
22845
- function canonicalPlanProjectLinkJson(value) {
22846
- if (value === null || typeof value !== "object")
22847
- return JSON.stringify(value);
22848
- if (Array.isArray(value))
22849
- return `[${value.map(canonicalPlanProjectLinkJson).join(",")}]`;
22850
- return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonicalPlanProjectLinkJson(item)}`).join(",")}}`;
22851
- }
22852
- function planProjectLinkDigest(value) {
22853
- return createHash5("sha256").update(canonicalPlanProjectLinkJson(value)).digest("hex");
22854
- }
22855
- function normalizePlanProjectLinkIdempotencyKey(value) {
22856
- const key = value?.trim() ?? "";
22857
- if (key.length < 8 || key.length > 128 || !/^[A-Za-z0-9._:-]+$/.test(key)) {
22858
- throw new PlanProjectLinkError("PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID", "idempotency_key must be 8-128 ASCII letters, digits, dots, underscores, colons, or hyphens");
22859
- }
22860
- return key;
22861
- }
22862
- function planProjectLinkReceiptId(idempotencyKey) {
22863
- return `pplr_${planProjectLinkDigest({ idempotency_key: idempotencyKey }).slice(0, 48)}`;
22864
- }
22865
- function planProjectLinkRollbackReceiptId(receiptId) {
22866
- return `pplr_inverse_${planProjectLinkDigest({ accepted_receipt_id: receiptId }).slice(0, 38)}`;
22867
- }
22868
- function planProjectLinkRequestHash(planId, projectId) {
22869
- return planProjectLinkDigest({ plan_id: planId, project_id: projectId });
22870
- }
22871
- function planProjectLinkResultDigest(plan, tasks) {
22872
- return planProjectLinkDigest({
22873
- plan_id: plan.id,
22874
- plan_project_id: plan.project_id,
22875
- tasks: tasks.map((task) => ({ id: task.id, plan_id: task.plan_id, project_id: task.project_id })).sort((left, right) => left.id.localeCompare(right.id))
22876
- });
22877
- }
22878
- function assertPlanProjectLinkReceipt(value) {
22879
- const receipt = value;
22880
- if (!receipt || typeof receipt !== "object" || receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION || typeof receipt.receipt_id !== "string" || typeof receipt.idempotency_key !== "string" || typeof receipt.plan_id !== "string" || typeof receipt.project_id !== "string" || !Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string") || !receipt.prior_task_project_ids || typeof receipt.prior_task_project_ids !== "object" || typeof receipt.result_digest !== "string") {
22881
- throw new PlanProjectLinkError("PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND", "Stored plan-project-link receipt is invalid");
22882
- }
22883
- return receipt;
22884
- }
22885
- var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
22886
- var init_plan_project_link_contract = __esm(() => {
22887
- PlanProjectLinkError = class PlanProjectLinkError extends Error {
22888
- code;
22889
- details;
22890
- constructor(code, message, details = {}) {
22891
- super(message);
22892
- this.code = code;
22893
- this.details = details;
22894
- this.name = "PlanProjectLinkError";
22895
- }
22896
- };
22897
- });
22898
-
22899
23277
  // src/lib/plan-project-link.ts
22900
23278
  async function exactPlanProjectLinkState(store, planId, projectId) {
22901
23279
  const [plan, project] = await Promise.all([
package/dist/contracts.js CHANGED
@@ -12379,7 +12379,7 @@ var init_tasks = __esm(() => {
12379
12379
  // package.json
12380
12380
  var package_default = {
12381
12381
  name: "@hasna/todos",
12382
- version: "0.15.10",
12382
+ version: "0.15.11",
12383
12383
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
12384
12384
  type: "module",
12385
12385
  main: "dist/index.js",
package/dist/index.js CHANGED
@@ -12492,7 +12492,7 @@ var init_dispatches = __esm(() => {
12492
12492
  // package.json
12493
12493
  var package_default = {
12494
12494
  name: "@hasna/todos",
12495
- version: "0.15.10",
12495
+ version: "0.15.11",
12496
12496
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
12497
12497
  type: "module",
12498
12498
  main: "dist/index.js",
@@ -25321,6 +25321,7 @@ function scanSqliteIntegrity(db = getDatabase()) {
25321
25321
  }
25322
25322
 
25323
25323
  // src/lib/plan-project-link-contract.ts
25324
+ init_types();
25324
25325
  import { createHash as createHash10 } from "crypto";
25325
25326
  var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1";
25326
25327
 
@@ -1,4 +1,4 @@
1
- import type { Plan, PlanProjectLinkReceipt, Task } from "../types/index.js";
1
+ import type { Plan, PlanProjectLinkReceipt, PlanProjectLinkResult, PlanProjectLinkRollbackResult, Task } from "../types/index.js";
2
2
  export declare const PLAN_PROJECT_LINK_SCHEMA_VERSION: "todos.plan-project-link.v1";
3
3
  export type PlanProjectLinkErrorCode = "PLAN_PROJECT_LINK_PLAN_NOT_FOUND" | "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND" | "PLAN_PROJECT_LINK_PLAN_REVISION_CONFLICT" | "PLAN_PROJECT_LINK_PROJECT_REVISION_CONFLICT" | "PLAN_PROJECT_LINK_SCOPE_COLLISION" | "PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID" | "PLAN_PROJECT_LINK_IDEMPOTENCY_CONFLICT" | "PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND" | "PLAN_PROJECT_LINK_RESULT_DRIFT" | "PLAN_PROJECT_LINK_ROLLBACK_CONFLICT" | "PLAN_PROJECT_LINK_UNSUPPORTED";
4
4
  export declare class PlanProjectLinkError extends Error {
@@ -14,4 +14,19 @@ export declare function planProjectLinkRollbackReceiptId(receiptId: string): str
14
14
  export declare function planProjectLinkRequestHash(planId: string, projectId: string): string;
15
15
  export declare function planProjectLinkResultDigest(plan: Pick<Plan, "id" | "project_id">, tasks: Task[]): string;
16
16
  export declare function assertPlanProjectLinkReceipt(value: unknown): PlanProjectLinkReceipt;
17
+ type PlanProjectLinkResponseExpectation = {
18
+ mode: "plan" | "apply";
19
+ plan_id: string;
20
+ project_id: string;
21
+ idempotency_key?: string;
22
+ };
23
+ type PlanProjectLinkRollbackResponseExpectation = {
24
+ plan_id: string;
25
+ receipt_id: string;
26
+ };
27
+ /** Validate an untrusted HTTP plan/apply response before the CLI can report success. */
28
+ export declare function assertPlanProjectLinkResponse(value: unknown, expectation: PlanProjectLinkResponseExpectation): PlanProjectLinkResult;
29
+ /** Validate an untrusted HTTP rollback response before the CLI can report success. */
30
+ export declare function assertPlanProjectLinkRollbackResponse(value: unknown, expectation: PlanProjectLinkRollbackResponseExpectation): PlanProjectLinkRollbackResult;
31
+ export {};
17
32
  //# sourceMappingURL=plan-project-link-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-project-link-contract.d.ts","sourceRoot":"","sources":["../../src/lib/plan-project-link-contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE5E,eAAO,MAAM,gCAAgC,EAAG,4BAAqC,CAAC;AAEtF,MAAM,MAAM,wBAAwB,GAChC,kCAAkC,GAClC,qCAAqC,GACrC,0CAA0C,GAC1C,6CAA6C,GAC7C,mCAAmC,GACnC,2CAA2C,GAC3C,wCAAwC,GACxC,qCAAqC,GACrC,gCAAgC,GAChC,qCAAqC,GACrC,+BAA+B,CAAC;AAEpC,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IAEvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFhC,IAAI,EAAE,wBAAwB,EACvC,OAAO,EAAE,MAAM,EACN,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKjD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQnE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CASxF;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAQxG;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAsBnF"}
1
+ {"version":3,"file":"plan-project-link-contract.d.ts","sourceRoot":"","sources":["../../src/lib/plan-project-link-contract.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,IAAI,EACJ,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,IAAI,EACL,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,gCAAgC,EAAG,4BAAqC,CAAC;AAEtF,MAAM,MAAM,wBAAwB,GAChC,kCAAkC,GAClC,qCAAqC,GACrC,0CAA0C,GAC1C,6CAA6C,GAC7C,mCAAmC,GACnC,2CAA2C,GAC3C,wCAAwC,GACxC,qCAAqC,GACrC,gCAAgC,GAChC,qCAAqC,GACrC,+BAA+B,CAAC;AAEpC,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IAEvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFhC,IAAI,EAAE,wBAAwB,EACvC,OAAO,EAAE,MAAM,EACN,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKjD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQnE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CASxF;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAQxG;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAsBnF;AAED,KAAK,kCAAkC,GAAG;IACxC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,KAAK,0CAA0C,GAAG;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA8RF,wFAAwF;AACxF,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,kCAAkC,GAC9C,qBAAqB,CA2CvB;AAED,sFAAsF;AACtF,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,0CAA0C,GACtD,6BAA6B,CA6B/B"}
package/dist/mcp/index.js CHANGED
@@ -18443,6 +18443,63 @@ var init_assignee_context = __esm(() => {
18443
18443
  init_assignee_validation();
18444
18444
  });
18445
18445
 
18446
+ // src/lib/plan-project-link-contract.ts
18447
+ import { createHash as createHash3 } from "crypto";
18448
+ function canonicalPlanProjectLinkJson(value) {
18449
+ if (value === null || typeof value !== "object")
18450
+ return JSON.stringify(value);
18451
+ if (Array.isArray(value))
18452
+ return `[${value.map(canonicalPlanProjectLinkJson).join(",")}]`;
18453
+ return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonicalPlanProjectLinkJson(item)}`).join(",")}}`;
18454
+ }
18455
+ function planProjectLinkDigest(value) {
18456
+ return createHash3("sha256").update(canonicalPlanProjectLinkJson(value)).digest("hex");
18457
+ }
18458
+ function normalizePlanProjectLinkIdempotencyKey(value) {
18459
+ const key = value?.trim() ?? "";
18460
+ if (key.length < 8 || key.length > 128 || !/^[A-Za-z0-9._:-]+$/.test(key)) {
18461
+ throw new PlanProjectLinkError("PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID", "idempotency_key must be 8-128 ASCII letters, digits, dots, underscores, colons, or hyphens");
18462
+ }
18463
+ return key;
18464
+ }
18465
+ function planProjectLinkReceiptId(idempotencyKey) {
18466
+ return `pplr_${planProjectLinkDigest({ idempotency_key: idempotencyKey }).slice(0, 48)}`;
18467
+ }
18468
+ function planProjectLinkRollbackReceiptId(receiptId) {
18469
+ return `pplr_inverse_${planProjectLinkDigest({ accepted_receipt_id: receiptId }).slice(0, 38)}`;
18470
+ }
18471
+ function planProjectLinkRequestHash(planId, projectId) {
18472
+ return planProjectLinkDigest({ plan_id: planId, project_id: projectId });
18473
+ }
18474
+ function planProjectLinkResultDigest(plan, tasks) {
18475
+ return planProjectLinkDigest({
18476
+ plan_id: plan.id,
18477
+ plan_project_id: plan.project_id,
18478
+ tasks: tasks.map((task) => ({ id: task.id, plan_id: task.plan_id, project_id: task.project_id })).sort((left, right) => left.id.localeCompare(right.id))
18479
+ });
18480
+ }
18481
+ function assertPlanProjectLinkReceipt(value) {
18482
+ const receipt = value;
18483
+ if (!receipt || typeof receipt !== "object" || receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION || typeof receipt.receipt_id !== "string" || typeof receipt.idempotency_key !== "string" || typeof receipt.plan_id !== "string" || typeof receipt.project_id !== "string" || !Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string") || !receipt.prior_task_project_ids || typeof receipt.prior_task_project_ids !== "object" || typeof receipt.result_digest !== "string") {
18484
+ throw new PlanProjectLinkError("PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND", "Stored plan-project-link receipt is invalid");
18485
+ }
18486
+ return receipt;
18487
+ }
18488
+ var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
18489
+ var init_plan_project_link_contract = __esm(() => {
18490
+ init_types();
18491
+ PlanProjectLinkError = class PlanProjectLinkError extends Error {
18492
+ code;
18493
+ details;
18494
+ constructor(code, message, details = {}) {
18495
+ super(message);
18496
+ this.code = code;
18497
+ this.details = details;
18498
+ this.name = "PlanProjectLinkError";
18499
+ }
18500
+ };
18501
+ });
18502
+
18446
18503
  // src/pr-groups/types.ts
18447
18504
  var PR_GROUP_LEDGER_SCHEMA_VERSION = 1, PR_GROUP_REPAIR_CYCLE_LIMIT = 2, PrGroupLedgerError;
18448
18505
  var init_types3 = __esm(() => {
@@ -18459,9 +18516,9 @@ var init_types3 = __esm(() => {
18459
18516
  });
18460
18517
 
18461
18518
  // src/pr-groups/ledger.ts
18462
- import { createHash as createHash3 } from "crypto";
18519
+ import { createHash as createHash4 } from "crypto";
18463
18520
  function sha2562(value) {
18464
- return createHash3("sha256").update(value).digest("hex");
18521
+ return createHash4("sha256").update(value).digest("hex");
18465
18522
  }
18466
18523
  function stableValue(value) {
18467
18524
  if (Array.isArray(value))
@@ -21203,6 +21260,7 @@ var UUID_RE, TRANSPORT_TOKENS, completionCapabilityCache, SERVER_MODE_CANDIDATES
21203
21260
  var init_cloud_router = __esm(() => {
21204
21261
  init_types();
21205
21262
  init_redaction();
21263
+ init_plan_project_link_contract();
21206
21264
  init_http_client();
21207
21265
  UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
21208
21266
  TRANSPORT_TOKENS = {
@@ -23608,12 +23666,12 @@ var init_local_notifications = __esm(() => {
23608
23666
  });
23609
23667
 
23610
23668
  // src/lib/local-encryption.ts
23611
- import { createCipheriv, createDecipheriv, createHash as createHash4, randomBytes, scryptSync, timingSafeEqual as timingSafeEqual2 } from "crypto";
23669
+ import { createCipheriv, createDecipheriv, createHash as createHash5, randomBytes, scryptSync, timingSafeEqual as timingSafeEqual2 } from "crypto";
23612
23670
  function now3() {
23613
23671
  return new Date().toISOString();
23614
23672
  }
23615
23673
  function sha2563(value) {
23616
- return createHash4("sha256").update(value).digest("hex");
23674
+ return createHash5("sha256").update(value).digest("hex");
23617
23675
  }
23618
23676
  function normalizeProfileName(value) {
23619
23677
  const name = (value || DEFAULT_ENCRYPTION_PROFILE).trim();
@@ -25751,7 +25809,7 @@ var init_capacity_forecasts = __esm(() => {
25751
25809
  });
25752
25810
 
25753
25811
  // src/lib/audit-ledger.ts
25754
- import { createHash as createHash5 } from "crypto";
25812
+ import { createHash as createHash6 } from "crypto";
25755
25813
  function canonicalize(value) {
25756
25814
  if (value === null || typeof value !== "object")
25757
25815
  return JSON.stringify(value);
@@ -25761,7 +25819,7 @@ function canonicalize(value) {
25761
25819
  return `{${Object.keys(object).sort().map((key) => `${JSON.stringify(key)}:${canonicalize(object[key])}`).join(",")}}`;
25762
25820
  }
25763
25821
  function hash(value) {
25764
- return createHash5("sha256").update(value).digest("hex");
25822
+ return createHash6("sha256").update(value).digest("hex");
25765
25823
  }
25766
25824
  function parsePayload2(value) {
25767
25825
  if (!value)
@@ -35309,7 +35367,7 @@ var package_default;
35309
35367
  var init_package = __esm(() => {
35310
35368
  package_default = {
35311
35369
  name: "@hasna/todos",
35312
- version: "0.15.10",
35370
+ version: "0.15.11",
35313
35371
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
35314
35372
  type: "module",
35315
35373
  main: "dist/index.js",
@@ -36023,7 +36081,7 @@ var init_local_bridge = __esm(() => {
36023
36081
  });
36024
36082
 
36025
36083
  // src/lib/local-backups.ts
36026
- import { createHash as createHash6 } from "crypto";
36084
+ import { createHash as createHash7 } from "crypto";
36027
36085
  import { readFileSync as readFileSync8, writeFileSync as writeFileSync3 } from "fs";
36028
36086
  import { dirname as dirname7, resolve as resolve12 } from "path";
36029
36087
  import { mkdirSync as mkdirSync6 } from "fs";
@@ -36036,7 +36094,7 @@ function stableJson2(value) {
36036
36094
  return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableJson2(record[key])}`).join(",")}}`;
36037
36095
  }
36038
36096
  function sha2564(value) {
36039
- return createHash6("sha256").update(stableJson2(value)).digest("hex");
36097
+ return createHash7("sha256").update(stableJson2(value)).digest("hex");
36040
36098
  }
36041
36099
  function sqliteIntegrity(db) {
36042
36100
  let quick = "unknown";
@@ -36686,7 +36744,7 @@ var init_onboarding_fixtures = __esm(() => {
36686
36744
  });
36687
36745
 
36688
36746
  // src/lib/local-snapshots.ts
36689
- import { createHash as createHash7 } from "crypto";
36747
+ import { createHash as createHash8 } from "crypto";
36690
36748
  function source(version) {
36691
36749
  return {
36692
36750
  packageName: "@hasna/todos",
@@ -36710,7 +36768,7 @@ function stable(value) {
36710
36768
  return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => [key, stable(item)]));
36711
36769
  }
36712
36770
  function sha2565(value) {
36713
- return createHash7("sha256").update(JSON.stringify(stable(value))).digest("hex");
36771
+ return createHash8("sha256").update(JSON.stringify(stable(value))).digest("hex");
36714
36772
  }
36715
36773
  function latestTimestamp2(items, fallback) {
36716
36774
  const timestamps = [];
@@ -37276,7 +37334,7 @@ var init_retrospectives = __esm(() => {
37276
37334
  });
37277
37335
 
37278
37336
  // src/lib/agent-replay-simulator.ts
37279
- import { createHash as createHash8 } from "crypto";
37337
+ import { createHash as createHash9 } from "crypto";
37280
37338
  function isObject(value) {
37281
37339
  return Boolean(value && typeof value === "object" && !Array.isArray(value));
37282
37340
  }
@@ -37297,7 +37355,7 @@ function stable2(value) {
37297
37355
  return Object.fromEntries(Object.keys(value).sort().map((key) => [key, stable2(value[key])]));
37298
37356
  }
37299
37357
  function fingerprint2(value) {
37300
- return createHash8("sha256").update(JSON.stringify(stable2(value))).digest("hex");
37358
+ return createHash9("sha256").update(JSON.stringify(stable2(value))).digest("hex");
37301
37359
  }
37302
37360
  function unpackFixture(input) {
37303
37361
  if (!isObject(input))
@@ -37584,7 +37642,7 @@ __export(exports_local_extensions, {
37584
37642
  getLocalExtension: () => getLocalExtension,
37585
37643
  discoverLocalExtensions: () => discoverLocalExtensions
37586
37644
  });
37587
- import { createHash as createHash9, createVerify } from "crypto";
37645
+ import { createHash as createHash10, createVerify } from "crypto";
37588
37646
  import { existsSync as existsSync13, readdirSync as readdirSync3, readFileSync as readFileSync9, statSync as statSync6 } from "fs";
37589
37647
  import { basename as basename5, join as join11, resolve as resolve13 } from "path";
37590
37648
  function isObject2(value) {
@@ -37670,7 +37728,7 @@ function parseJson(path) {
37670
37728
  return JSON.parse(readFileSync9(path, "utf8"));
37671
37729
  }
37672
37730
  function sha2566(bytes) {
37673
- return `sha256:${createHash9("sha256").update(bytes).digest("hex")}`;
37731
+ return `sha256:${createHash10("sha256").update(bytes).digest("hex")}`;
37674
37732
  }
37675
37733
  function compareVersions(a, b) {
37676
37734
  const left = a.split(".").map((part) => Number.parseInt(part, 10) || 0);
@@ -38145,7 +38203,7 @@ function issueToTask(issue, opts) {
38145
38203
  var init_github = () => {};
38146
38204
 
38147
38205
  // src/db/inbox.ts
38148
- import { createHash as createHash10 } from "crypto";
38206
+ import { createHash as createHash11 } from "crypto";
38149
38207
  function parseMetadata3(value) {
38150
38208
  if (!value)
38151
38209
  return {};
@@ -38165,7 +38223,7 @@ function compactWhitespace(value) {
38165
38223
  function fingerprintInboxInput(input) {
38166
38224
  const sourceType = input.source_type || detectInboxSourceType(input.body, input.source_url);
38167
38225
  const normalized = compactWhitespace(sanitizePreWriteText(input.body, "inbox.fingerprint")).slice(0, 8000);
38168
- return createHash10("sha256").update(`${sourceType}
38226
+ return createHash11("sha256").update(`${sourceType}
38169
38227
  ${input.source_url || ""}
38170
38228
  ${normalized}`).digest("hex");
38171
38229
  }
@@ -42365,10 +42423,10 @@ __export(exports_extract, {
42365
42423
  EXTRACT_TAGS: () => EXTRACT_TAGS
42366
42424
  });
42367
42425
  import { existsSync as existsSync14, readFileSync as readFileSync10, statSync as statSync7 } from "fs";
42368
- import { createHash as createHash11 } from "crypto";
42426
+ import { createHash as createHash12 } from "crypto";
42369
42427
  import { relative as relative5, resolve as resolve14, join as join12 } from "path";
42370
42428
  function stableHash(value) {
42371
- return createHash11("sha256").update(value).digest("hex");
42429
+ return createHash12("sha256").update(value).digest("hex");
42372
42430
  }
42373
42431
  function normalizePathForMatch(value) {
42374
42432
  return value.replace(/\\/g, "/").replace(/^\.\//, "");
@@ -44092,13 +44150,13 @@ __export(exports_environment_snapshots, {
44092
44150
  compareEnvironmentSnapshotFiles: () => compareEnvironmentSnapshotFiles,
44093
44151
  captureEnvironmentSnapshot: () => captureEnvironmentSnapshot
44094
44152
  });
44095
- import { createHash as createHash12 } from "crypto";
44153
+ import { createHash as createHash13 } from "crypto";
44096
44154
  import { existsSync as existsSync15, readFileSync as readFileSync11, statSync as statSync8 } from "fs";
44097
44155
  import { hostname as hostname2, platform, arch } from "os";
44098
44156
  import { dirname as dirname8, join as join14, resolve as resolve15 } from "path";
44099
44157
  import { tmpdir as tmpdir3 } from "os";
44100
44158
  function sha2567(value) {
44101
- return createHash12("sha256").update(value).digest("hex");
44159
+ return createHash13("sha256").update(value).digest("hex");
44102
44160
  }
44103
44161
  function fileRecord(root, relativePath) {
44104
44162
  const path = join14(root, relativePath);
@@ -44689,62 +44747,6 @@ var init_cloud_client = __esm(() => {
44689
44747
  init_config();
44690
44748
  });
44691
44749
 
44692
- // src/lib/plan-project-link-contract.ts
44693
- import { createHash as createHash13 } from "crypto";
44694
- function canonicalPlanProjectLinkJson(value) {
44695
- if (value === null || typeof value !== "object")
44696
- return JSON.stringify(value);
44697
- if (Array.isArray(value))
44698
- return `[${value.map(canonicalPlanProjectLinkJson).join(",")}]`;
44699
- return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonicalPlanProjectLinkJson(item)}`).join(",")}}`;
44700
- }
44701
- function planProjectLinkDigest(value) {
44702
- return createHash13("sha256").update(canonicalPlanProjectLinkJson(value)).digest("hex");
44703
- }
44704
- function normalizePlanProjectLinkIdempotencyKey(value) {
44705
- const key = value?.trim() ?? "";
44706
- if (key.length < 8 || key.length > 128 || !/^[A-Za-z0-9._:-]+$/.test(key)) {
44707
- throw new PlanProjectLinkError("PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID", "idempotency_key must be 8-128 ASCII letters, digits, dots, underscores, colons, or hyphens");
44708
- }
44709
- return key;
44710
- }
44711
- function planProjectLinkReceiptId(idempotencyKey) {
44712
- return `pplr_${planProjectLinkDigest({ idempotency_key: idempotencyKey }).slice(0, 48)}`;
44713
- }
44714
- function planProjectLinkRollbackReceiptId(receiptId) {
44715
- return `pplr_inverse_${planProjectLinkDigest({ accepted_receipt_id: receiptId }).slice(0, 38)}`;
44716
- }
44717
- function planProjectLinkRequestHash(planId, projectId) {
44718
- return planProjectLinkDigest({ plan_id: planId, project_id: projectId });
44719
- }
44720
- function planProjectLinkResultDigest(plan, tasks) {
44721
- return planProjectLinkDigest({
44722
- plan_id: plan.id,
44723
- plan_project_id: plan.project_id,
44724
- tasks: tasks.map((task2) => ({ id: task2.id, plan_id: task2.plan_id, project_id: task2.project_id })).sort((left, right) => left.id.localeCompare(right.id))
44725
- });
44726
- }
44727
- function assertPlanProjectLinkReceipt(value) {
44728
- const receipt = value;
44729
- if (!receipt || typeof receipt !== "object" || receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION || typeof receipt.receipt_id !== "string" || typeof receipt.idempotency_key !== "string" || typeof receipt.plan_id !== "string" || typeof receipt.project_id !== "string" || !Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string") || !receipt.prior_task_project_ids || typeof receipt.prior_task_project_ids !== "object" || typeof receipt.result_digest !== "string") {
44730
- throw new PlanProjectLinkError("PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND", "Stored plan-project-link receipt is invalid");
44731
- }
44732
- return receipt;
44733
- }
44734
- var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
44735
- var init_plan_project_link_contract = __esm(() => {
44736
- PlanProjectLinkError = class PlanProjectLinkError extends Error {
44737
- code;
44738
- details;
44739
- constructor(code, message, details = {}) {
44740
- super(message);
44741
- this.code = code;
44742
- this.details = details;
44743
- this.name = "PlanProjectLinkError";
44744
- }
44745
- };
44746
- });
44747
-
44748
44750
  // src/db/plan-project-links.ts
44749
44751
  function getPlanProjectLinkReceipt(receiptId, db) {
44750
44752
  const d = db || getDatabase();
package/dist/mcp.js CHANGED
@@ -41,7 +41,7 @@ var __require = import.meta.require;
41
41
  // package.json
42
42
  var package_default = {
43
43
  name: "@hasna/todos",
44
- version: "0.15.10",
44
+ version: "0.15.11",
45
45
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
46
46
  type: "module",
47
47
  main: "dist/index.js",
@@ -12382,7 +12382,7 @@ import { createHash as createHash5 } from "crypto";
12382
12382
  // package.json
12383
12383
  var package_default = {
12384
12384
  name: "@hasna/todos",
12385
- version: "0.15.10",
12385
+ version: "0.15.11",
12386
12386
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
12387
12387
  type: "module",
12388
12388
  main: "dist/index.js",
@@ -12525,6 +12525,7 @@ function normalizeAgentNameInput(name) {
12525
12525
  init_creator_identity();
12526
12526
 
12527
12527
  // src/lib/plan-project-link-contract.ts
12528
+ init_types();
12528
12529
  import { createHash as createHash2 } from "crypto";
12529
12530
  var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1";
12530
12531
 
package/dist/registry.js CHANGED
@@ -12379,7 +12379,7 @@ var init_tasks = __esm(() => {
12379
12379
  // package.json
12380
12380
  var package_default = {
12381
12381
  name: "@hasna/todos",
12382
- version: "0.15.10",
12382
+ version: "0.15.11",
12383
12383
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
12384
12384
  type: "module",
12385
12385
  main: "dist/index.js",
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "packageName": "@hasna/todos",
3
- "packageVersion": "0.15.10",
3
+ "packageVersion": "0.15.11",
4
4
  "repository": "https://github.com/hasna/todos.git",
5
- "gitCommit": "dd84cfb6a3378e752b50bc39216cadb5580b940c",
6
- "gitTree": "f16ba8feaa88db61a16ab2f1e9870907b956f0dc",
7
- "sourceTreeSha256": "3640eb1e471e33dc0ab91cab9ec4e7529e5b70940a4aa09401b4069573b6055c",
8
- "generatedAt": "2026-08-08T05:45:27.000Z"
5
+ "gitCommit": "a73c219329648d2563eac3ab8aadf2fbef81bbac",
6
+ "gitTree": "6e98d82151644a5b29f25aff5e329ccbe07fa85e",
7
+ "sourceTreeSha256": "ebbdb1e2ac3d4848f1dddc04c40e12d4ed40c8ac5a34297f5727e088dcbd6c86",
8
+ "generatedAt": "2026-08-08T08:13:06.000Z"
9
9
  }
@@ -70,7 +70,7 @@ var package_default;
70
70
  var init_package = __esm(() => {
71
71
  package_default = {
72
72
  name: "@hasna/todos",
73
- version: "0.15.10",
73
+ version: "0.15.11",
74
74
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
75
75
  type: "module",
76
76
  main: "dist/index.js",
@@ -1170,6 +1170,7 @@ function assertPlanProjectLinkReceipt(value) {
1170
1170
  }
1171
1171
  var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
1172
1172
  var init_plan_project_link_contract = __esm(() => {
1173
+ init_types();
1173
1174
  PlanProjectLinkError = class PlanProjectLinkError extends Error {
1174
1175
  code;
1175
1176
  details;
@@ -62588,6 +62589,7 @@ var init_cloud_router = __esm(() => {
62588
62589
  init_mode();
62589
62590
  init_types();
62590
62591
  init_redaction();
62592
+ init_plan_project_link_contract();
62591
62593
  init_http_client();
62592
62594
  UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
62593
62595
  TRANSPORT_TOKENS = {
package/dist/storage.js CHANGED
@@ -13462,6 +13462,7 @@ function scanSqliteIntegrity(db = getDatabase()) {
13462
13462
  }
13463
13463
 
13464
13464
  // src/lib/plan-project-link-contract.ts
13465
+ init_types();
13465
13466
  import { createHash as createHash4 } from "crypto";
13466
13467
  var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1";
13467
13468
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/todos",
3
- "version": "0.15.10",
3
+ "version": "0.15.11",
4
4
  "description": "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",