@resolveio/server-lib 22.3.157 → 22.3.159

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,"sources":["../../src/util/ai-runner-manager-autopilot.ts"],"names":[],"mappings":";;;;;;;;;;;;;AA2SA,4FAsIC;AAjbD,uEASoC;AAsHpC,SAAS,SAAS,CAAC,KAAU,EAAE,GAAU;IAAV,oBAAA,EAAA,UAAU;IACxC,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,KAAU,EAAE,KAAU,EAAE,GAAS;;IAArB,sBAAA,EAAA,UAAU;IAAE,oBAAA,EAAA,SAAS;IACnD,IAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,IAAM,MAAM,GAAa,EAAE,CAAC;;QAC5B,KAAoB,IAAA,QAAA,SAAA,GAAG,CAAA,wBAAA,yCAAE,CAAC;YAArB,IAAM,KAAK,gBAAA;YACf,IAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC5B,MAAM;YACP,CAAC;QACF,CAAC;;;;;;;;;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAU;IAC9B,IAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,MAAM,CAAC,KAAqB;IACpC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IACD,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACpD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC5C,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,oBAAoB;YACxB,OAAO,sBAAsB,CAAC;QAC/B,KAAK,yBAAyB;YAC7B,OAAO,eAAe,CAAC;QACxB,KAAK,kBAAkB;YACtB,OAAO,cAAc,CAAC;QACvB,KAAK,oBAAoB;YACxB,OAAO,gBAAgB,CAAC;QACzB,KAAK,6BAA6B;YACjC,OAAO,gBAAgB,CAAC;QACzB,KAAK,+BAA+B;YACnC,OAAO,uBAAuB,CAAC;QAChC,KAAK,oBAAoB;YACxB,OAAO,gBAAgB,CAAC;QACzB,KAAK,6BAA6B;YACjC,OAAO,qBAAqB,CAAC;QAC9B,KAAK,SAAS;YACb,OAAO,SAAS,CAAC;QAClB,KAAK,eAAe;YACnB,OAAO,eAAe,CAAC;QACxB,KAAK,aAAa;YACjB,OAAO,qBAAqB,CAAC;QAC9B;YACC,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;IACrF,CAAC;AACF,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc,EAAE,YAAqB;IACrE,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC9B,OAAO,8FAA8F,CAAC;IACvG,CAAC;IACD,IAAI,YAAY,IAAI,MAAM,KAAK,oBAAoB,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;QAC7F,OAAO,6FAA6F,CAAC;IACtG,CAAC;IACD,IAAI,MAAM,KAAK,kBAAkB,IAAI,MAAM,KAAK,oBAAoB,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACzG,OAAO,wEAAwE,CAAC;IACjF,CAAC;IACD,IAAI,MAAM,KAAK,6BAA6B,EAAE,CAAC;QAC9C,OAAO,yFAAyF,CAAC;IAClG,CAAC;IACD,OAAO,wDAAwD,CAAC;AACjE,CAAC;AAED,SAAS,SAAS,CAAC,KAMlB;IACA,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,yBAAyB,EAAE,CAAC;QAC/G,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,MAAM,KAAK,6BAA6B,EAAE,CAAC;QACnF,OAAO,MAAM,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA+C;;IAC7E,IAAM,eAAe,GAAG,SAAS,CAAC,MAAA,KAAK,CAAC,iBAAiB,0CAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IAChF,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC;IACxB,CAAC;IACD,IAAM,UAAU,GAAG,SAAS,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9D,QAAQ,UAAU,EAAE,CAAC;QACpB,KAAK,kBAAkB;YACtB,OAAO,oBAAoB,CAAC;QAC7B,KAAK,qBAAqB;YACzB,OAAO,yBAAyB,CAAC;QAClC,KAAK,cAAc;YAClB,OAAO,kBAAkB,CAAC;QAC3B,KAAK,gBAAgB;YACpB,OAAO,oBAAoB,CAAC;QAC7B,KAAK,yBAAyB;YAC7B,OAAO,6BAA6B,CAAC;QACtC,KAAK,2BAA2B;YAC/B,OAAO,+BAA+B,CAAC;QACxC,KAAK,gBAAgB;YACpB,OAAO,oBAAoB,CAAC;QAC7B,KAAK,yBAAyB;YAC7B,OAAO,6BAA6B,CAAC;QACtC,KAAK,SAAS;YACb,OAAO,SAAS,CAAC;QAClB,KAAK,eAAe;YACnB,OAAO,eAAe,CAAC;QACxB,KAAK,eAAe;YACnB,OAAO,aAAa,CAAC;QACtB;YACC,OAAO,CAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAE,MAAM,MAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,eAAe,CAAC;IAChG,CAAC;AACF,CAAC;AAED,SAAS,2BAA2B,CAAC,KAA+C,EAAE,cAAsB;;IAC3G,IAAM,YAAY,GAAG,SAAS,CAAC,CAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAE,YAAY,MAAI,MAAA,KAAK,CAAC,cAAc,0CAAE,YAAY,CAAA,EAAE,GAAG,CAAC,CAAC;IAClH,IAAM,QAAQ,GAAG,SAAS,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,IAAM,YAAY,GAAG,SAAS,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,MAAI,MAAA,KAAK,CAAC,kBAAkB,0CAAE,YAAY,CAAA,EAAE,GAAG,CAAC,CAAC;IAC3G,IAAM,kBAAkB,GAAG,SAAS,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,kBAAkB,MAAI,MAAA,KAAK,CAAC,kBAAkB,0CAAE,kBAAkB,CAAA,EAAE,GAAG,CAAC,CAAC;IAC7H,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,OAAO,OAAO,CAAC,MAAM,CAAC,UAAC,KAAK;QAC3B,IAAM,cAAc,GAAG,YAAY,IAAI,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,EAAE,GAAG,CAAC,KAAK,YAAY,CAAC;QAC5F,IAAM,UAAU,GAAG,QAAQ,IAAI,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,QAAQ,CAAC;QAC5E,IAAM,YAAY,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,EAAE,GAAG,CAAC,KAAK,YAAY,CAAC;QAC3F,IAAM,WAAW,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,kBAAkB,EAAE,GAAG,CAAC,KAAK,kBAAkB,CAAC;QAC5G,IAAM,kBAAkB,GAAG,CAAC,cAAc;eACtC,cAAc,KAAK,aAAa;eAChC,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,EAAE,GAAG,CAAC,KAAK,cAAc;eACxD,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,EAAE,GAAG,CAAC,KAAK,aAAa,CAAC;QAC5D,OAAO,CAAC,cAAc,IAAI,UAAU,CAAC,IAAI,YAAY,IAAI,WAAW,IAAI,kBAAkB,CAAC;IAC5F,CAAC,CAAC,CAAC,MAAM,CAAC;AACX,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAqE;IACvG,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;QACjD,UAAU,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,EAAE,GAAG,CAAC;QAC7C,QAAQ,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,GAAG,CAAC;QACzC,YAAY,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,EAAE,GAAG,CAAC;QACjD,OAAO,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,GAAG,CAAC;QACvC,IAAI,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,GAAG,CAAC;QACjC,cAAc,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,EAAE,GAAG,CAAC;QACrD,MAAM,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,GAAG,CAAC;QACrC,YAAY,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,EAAE,GAAG,CAAC;QACjD,kBAAkB,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,kBAAkB,EAAE,GAAG,CAAC;QAC7D,aAAa,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC;QACtD,SAAS,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,EAAE,EAAE,CAAC;QAC1C,WAAW,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,EAAE,EAAE,CAAC;QAC9C,SAAS,EAAE,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,EAAE,EAAE,CAAC;KAC1C,CAAC,EAf+C,CAe/C,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,wCAAwC,CACvD,KAA+C;;IAE/C,IAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACpD,IAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB;QAC/C,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,KAAK,IAAI;QAC1C,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,YAAY,MAAK,IAAI,CAAC;IAC/C,IAAM,YAAY,GAAG,CAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,YAAY,MAAK,IAAI;WAC/D,CAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,YAAY,MAAK,IAAI;WAC3C,CAAA,MAAA,KAAK,CAAC,qBAAqB,0CAAE,YAAY,MAAK,IAAI;WAClD,CAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAE,MAAM,MAAK,QAAQ,CAAC;IAClD,IAAM,oBAAoB,GAAG,CAAC,MAAA,MAAA,MAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,mBAAmB,mCAAI,MAAA,KAAK,CAAC,iBAAiB,0CAAE,oBAAoB,mCAAI,MAAA,KAAK,CAAC,cAAc,0CAAE,oBAAoB,mCAAI,MAAA,KAAK,CAAC,kBAAkB,0CAAE,oBAAoB,CAAC,KAAK,IAAI,CAAC;IACtO,IAAM,qBAAqB,GAAG,CAAC,MAAA,MAAA,MAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,oBAAoB,mCAAI,MAAA,KAAK,CAAC,iBAAiB,0CAAE,qBAAqB,mCAAI,MAAA,KAAK,CAAC,cAAc,0CAAE,qBAAqB,mCAAI,MAAA,KAAK,CAAC,kBAAkB,0CAAE,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAC3O,IAAM,mBAAmB,GAAG,CAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,mBAAmB,MAAK,IAAI;WAC7E,CAAA,MAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,WAAW,0CAAE,kBAAkB,MAAK,IAAI;WAC9D,CAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAE,MAAM,MAAK,QAAQ,CAAC;IAClD,IAAM,yBAAyB,GAAG,2BAA2B,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACrF,IAAM,4BAA4B,GAAG,mBAAmB,IAAI,yBAAyB,GAAG,CAAC,IAAI,CAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,WAAW,MAAK,IAAI,CAAC;IAC3I,IAAM,gBAAgB,GAAG,SAAS,CAAC,MAAA,KAAK,CAAC,kBAAkB,0CAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACzE,IAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO;QACnE,CAAC,CAAC,IAAA,iEAAsC,EAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC;QACrH,CAAC,CAAC;YACD,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAc;SACvB,CAAC;IACH,IAAM,SAAS,GAAG,gBAAgB,KAAK,gBAAgB;QACtD,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,gBAAgB,KAAK,UAAU;YAChC,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,4BAA4B,IAAI,CAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,OAAO,MAAK,KAAK;gBAC3E,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,YAAY,IAAI,mBAAmB;oBACpC,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,OAAO,CAAC;IACd,IAAM,OAAO,GAAG,gBAAgB,IAAI,CAAC,4BAA4B,IAAI,SAAS,KAAK,gBAAgB,CAAC;IACpG,IAAM,iBAAiB,GAAG,4BAA4B,IAAI,CAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,OAAO,MAAK,KAAK;QACnG,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,cAAc,CAAC;IAClB,IAAM,KAAK,GAAG,SAAS,CACtB,4BAA4B;QAC3B,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,eAAe,MAAI,MAAA,KAAK,CAAC,cAAc,0CAAE,KAAK,CAAA,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,EACtH,GAAG,CACH,CAAC;IACF,IAAM,MAAM,GAAG,SAAS,CACvB,4BAA4B;QAC3B,CAAC,CAAC,2HAA2H;QAC7H,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,MAAM,MAAI,MAAA,KAAK,CAAC,cAAc,0CAAE,aAAa,CAAA,KAAI,MAAA,KAAK,CAAC,YAAY,0CAAE,SAAS,CAAA,KAAI,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAA,IAAI,wCAAwC,EAChL,IAAI,CACJ,CAAC;IACF,IAAM,yBAAyB,GAAG,CAAA,MAAA,KAAK,CAAC,iBAAiB,0CAAE,yBAAyB,MAAK,IAAI;WACzF,CAAA,OAAA,KAAK,CAAC,cAAc,4CAAE,yBAAyB,MAAK,IAAI;WACxD,SAAS,CAAC,OAAA,KAAK,CAAC,kBAAkB,4CAAE,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/E,IAAM,aAAa,GAAG,SAAS,CAC9B,CAAA,OAAA,OAAA,OAAA,KAAK,CAAC,cAAc,4CAAE,WAAW,4CAAE,aAAa,4CAAE,MAAM;QACvD,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa;QAChD,CAAC,CAAC,OAAA,KAAK,CAAC,kBAAkB,4CAAE,iBAAiB,EAC9C,EAAE,EACF,GAAG,CACH,CAAC;IACF,OAAO;QACN,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,EAAE,GAAG,CAAC;QACnD,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;QAClC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;QAClC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,KAAI,OAAA,KAAK,CAAC,kBAAkB,4CAAE,MAAM,CAAA,EAAE,EAAE,CAAC;QACvE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,KAAI,OAAA,KAAK,CAAC,iBAAiB,4CAAE,KAAK,CAAA,EAAE,EAAE,CAAC;QACnE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,KAAI,OAAA,KAAK,CAAC,iBAAiB,4CAAE,IAAI,CAAA,KAAI,OAAA,KAAK,CAAC,kBAAkB,4CAAE,IAAI,CAAA,KAAI,OAAA,KAAK,CAAC,OAAO,4CAAE,IAAI,CAAA,EAAE,GAAG,CAAC;QAC1H,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,KAAI,OAAA,KAAK,CAAC,iBAAiB,4CAAE,QAAQ,CAAA,KAAI,OAAA,KAAK,CAAC,kBAAkB,4CAAE,QAAQ,CAAA,KAAI,OAAA,KAAK,CAAC,OAAO,4CAAE,QAAQ,CAAA,EAAE,GAAG,CAAC;QAC9I,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;QACtC,iBAAiB,EAAE;YAClB,MAAM,EAAE,iBAAiB;YACzB,KAAK,OAAA;YACL,MAAM,QAAA;YACN,MAAM,EAAE,SAAS,CAAC;gBACjB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,SAAA;gBACP,YAAY,cAAA;gBACZ,oBAAoB,sBAAA;gBACpB,qBAAqB,uBAAA;aACrB,CAAC;YACF,OAAO,SAAA;YACP,YAAY,EAAE,OAAO,IAAI,CAAA,OAAA,KAAK,CAAC,cAAc,4CAAE,YAAY,MAAK,KAAK;YACrE,cAAc,EAAE,uBAAuB,CAAC,iBAAiB,EAAE,YAAY,CAAC;YACxE,mBAAmB,qBAAA;YACnB,mBAAmB,EAAE,OAAO,IAAI,oBAAoB;YACpD,oBAAoB,EAAE,OAAO,IAAI,qBAAqB;YACtD,yBAAyB,2BAAA;YACzB,cAAc,gBAAA;SACd;QACD,SAAS,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,gBAAgB;YACjE,MAAM,QAAA;YACN,YAAY,EAAE,SAAS,CAAC,OAAA,KAAK,CAAC,OAAO,4CAAE,YAAY,EAAE,GAAG,CAAC;YACzD,OAAO,EAAE,SAAS,CAAC,CAAA,OAAA,KAAK,CAAC,OAAO,4CAAE,OAAO,MAAI,OAAA,KAAK,CAAC,OAAO,4CAAE,OAAO,CAAA,EAAE,IAAI,CAAC;YAC1E,kBAAkB,EAAE,SAAS,CAAC,CAAA,OAAA,KAAK,CAAC,OAAO,4CAAE,kBAAkB,MAAI,OAAA,KAAK,CAAC,kBAAkB,4CAAE,kBAAkB,CAAA,EAAE,GAAG,CAAC;YACrH,YAAY,EAAE,SAAS,CAAC,CAAA,OAAA,KAAK,CAAC,OAAO,4CAAE,YAAY,MAAI,OAAA,KAAK,CAAC,kBAAkB,4CAAE,YAAY,CAAA,EAAE,GAAG,CAAC;YACnG,gBAAgB,EAAE,kBAAkB,CAAC,QAAQ,KAAK,IAAI;YACtD,gBAAgB,EAAE,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC5D,eAAe,EAAE,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC;YAC/D,yBAAyB,2BAAA;YACzB,4BAA4B,8BAAA;YAC5B,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;YACvC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;YAC7C,QAAQ,EAAE,WAAW,CAAC,OAAA,KAAK,CAAC,kBAAkB,4CAAE,QAAQ,CAAC;YACzD,qBAAqB,EAAE,WAAW,CAAC,OAAA,KAAK,CAAC,kBAAkB,4CAAE,qBAAqB,CAAC;YACnF,yBAAyB,2BAAA;YACzB,aAAa,eAAA;SACb;QACD,QAAQ,EAAE;YACT,YAAY,EAAE,SAAS,CAAC,CAAA,OAAA,KAAK,CAAC,kBAAkB,4CAAE,YAAY,MAAI,OAAA,KAAK,CAAC,cAAc,4CAAE,YAAY,CAAA,EAAE,GAAG,CAAC;YAC1G,aAAa,EAAE,SAAS,CAAC,CAAA,OAAA,KAAK,CAAC,kBAAkB,4CAAE,aAAa,MAAI,OAAA,KAAK,CAAC,cAAc,4CAAE,aAAa,CAAA,KAAI,OAAA,KAAK,CAAC,YAAY,4CAAE,aAAa,CAAA,EAAE,GAAG,CAAC;YAClJ,cAAc,gBAAA;YACd,gBAAgB,kBAAA;YAChB,YAAY,cAAA;YACZ,oBAAoB,sBAAA;YACpB,qBAAqB,uBAAA;YACrB,iBAAiB,EAAE,SAAS,CAAC,CAAA,OAAA,OAAA,KAAK,CAAC,iBAAiB,4CAAE,iBAAiB,4CAAE,MAAM,EAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAA,KAAK,CAAC,cAAc,4CAAE,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC;YAC/K,YAAY,EAAE,SAAS,CAAC,CAAA,OAAA,OAAA,KAAK,CAAC,iBAAiB,4CAAE,YAAY,4CAAE,MAAM,EAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,OAAA,KAAK,CAAC,cAAc,4CAAE,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC;YAC3J,eAAe,EAAE,SAAS,CAAC,CAAA,OAAA,OAAA,KAAK,CAAC,iBAAiB,4CAAE,eAAe,4CAAE,MAAM,EAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,OAAA,KAAK,CAAC,cAAc,4CAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC;YACvK,gBAAgB,EAAE,SAAS,CAAC,CAAA,OAAA,OAAA,KAAK,CAAC,iBAAiB,4CAAE,gBAAgB,4CAAE,MAAM,EAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAA,OAAA,KAAK,CAAC,cAAc,4CAAE,WAAW,4CAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC;SAChL;QACD,gBAAgB,EAAE,yBAAyB,CAAC,KAAK,CAAC,uBAAuB,CAAC;QAC1E,IAAI,EAAE;YACL,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrC,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACrD,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;YAC3C,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,oBAAoB,IAAI,iGAAiG,EAAE,GAAG,CAAC;SACjK;QACD,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;KAClC,CAAC;AACH,CAAC","file":"ai-runner-manager-autopilot.js","sourcesContent":["import {\n\tassessResolveIOAIManagerEvidenceChange,\n\tResolveIOAIManagerFailureRecord,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOAIManagerAutopilotSafetyLevel = 'low' | 'medium' | 'high' | 'blocked';\n\nexport interface ResolveIOAIManagerAutopilotRecommendedAction {\n\taction: string;\n\tlabel: string;\n\treason: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\tenabled: boolean;\n\tautoRunnable: boolean;\n\texpectedResult: string;\n\trequiresNewEvidence: boolean;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tcanResetLoopAfterEvidence: boolean;\n\tdispatchAction?: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotLoopGuard {\n\tstate: 'clear' | 'collecting_evidence' | 'parked' | 'manual_handoff' | 'complete';\n\tblocked: boolean;\n\treason: string;\n\tfailureClass: string;\n\tblocker: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tmaterialEvidence: boolean;\n\tevidenceStrength: string;\n\tevidenceSignals: string[];\n\tsameEvidenceDispatchCount: number;\n\tsameEvidenceAlreadyAttempted: boolean;\n\tloopCount: number;\n\tmaxLoopCount: number;\n\tattempts: number;\n\tmaxAttemptsBeforePark: number;\n\tcanResetLoopAfterEvidence: boolean;\n\tresetRequires: string[];\n}\n\nexport interface ResolveIOAIManagerAutopilotRecentDispatch {\n\tdispatchId: string;\n\tactionId: string;\n\tcheckpointId: string;\n\tprobeId: string;\n\tmode: string;\n\tdispatchAction: string;\n\tstatus: string;\n\treason: string;\n\tevidenceHash: string;\n\tblockerFingerprint: string;\n\tartifactPaths: string[];\n\tstartedAt: string;\n\tcompletedAt: string;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshot {\n\tsurface: string;\n\trunId: string;\n\ttitle: string;\n\tstatus: string;\n\tphase: string;\n\tlane: string;\n\tstepType: string;\n\trunKind: string;\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tloopGuard: ResolveIOAIManagerAutopilotLoopGuard;\n\trecovery: {\n\t\tcheckpointId: string;\n\t\trecoveryClass: string;\n\t\tdispatchAction: string;\n\t\tdirectiveAllowed: boolean;\n\t\tevidenceOnly: boolean;\n\t\tproductRepairAllowed: boolean;\n\t\texpensiveModelAllowed: boolean;\n\t\trequiredArtifacts: string[];\n\t\tnextCommands: string[];\n\t\tsuccessCriteria: string[];\n\t\tforbiddenActions: string[];\n\t};\n\trecentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];\n\tcost: {\n\t\tcurrentRunUsd: number;\n\t\ttotalUsd: number;\n\t\tcurrentRunTokens: number;\n\t\ttotalTokens: number;\n\t\tuntrackedWarning: string;\n\t};\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshotInput {\n\tsurface: string;\n\trunId?: string;\n\ttitle?: string;\n\tstatus?: string;\n\tphase?: string;\n\tlane?: string;\n\tstepType?: string;\n\trunKind?: string;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\trecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\trecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n\trecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tloopCount?: number;\n\tmaxLoopCount?: number;\n\tcurrentRunUsd?: number;\n\ttotalUsd?: number;\n\tcurrentRunTokens?: number;\n\ttotalTokens?: number;\n\tuntrackedCostWarning?: string;\n\tupdatedAt?: Date | string;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanList(value: any, limit = 20, max = 500): string[] {\n\tconst raw = Array.isArray(value) ? value : [];\n\tconst output: string[] = [];\n\tfor (const entry of raw) {\n\t\tconst cleaned = cleanText(entry, max);\n\t\tif (cleaned && !output.includes(cleaned)) {\n\t\t\toutput.push(cleaned);\n\t\t}\n\t\tif (output.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn output;\n}\n\nfunction cleanNumber(value: any): number {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : 0;\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tconst parsed = value ? new Date(value) : new Date();\n\treturn Number.isFinite(parsed.getTime()) ? parsed.toISOString() : new Date().toISOString();\n}\n\nfunction defaultLabelForAction(action: string): string {\n\tswitch (action) {\n\t\tcase 'run_evidence_probe':\n\t\t\treturn 'Collect New Evidence';\n\t\tcase 'run_read_only_diagnosis':\n\t\t\treturn 'Run Diagnosis';\n\t\tcase 'run_infra_repair':\n\t\t\treturn 'Repair Infra';\n\t\tcase 'run_compile_repair':\n\t\t\treturn 'Repair Compile';\n\t\tcase 'run_journey_contract_repair':\n\t\t\treturn 'Repair Journey';\n\t\tcase 'run_business_assertion_repair':\n\t\t\treturn 'Repair Business Proof';\n\t\tcase 'run_release_repair':\n\t\t\treturn 'Repair Release';\n\t\tcase 'run_targeted_product_repair':\n\t\t\treturn 'Run Targeted Repair';\n\t\tcase 'advance':\n\t\t\treturn 'Advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'Continue Gate';\n\t\tcase 'park_manual':\n\t\t\treturn 'Attach New Evidence';\n\t\tdefault:\n\t\t\treturn action ? cleanText(action.replace(/_/g, ' '), 120) : 'Review Manager State';\n\t}\n}\n\nfunction expectedResultForAction(action: string, evidenceOnly: boolean): string {\n\tif (action === 'park_manual') {\n\t\treturn 'Runner stays parked until new evidence, operator approval, or a changed blocker is recorded.';\n\t}\n\tif (evidenceOnly || action === 'run_evidence_probe' || action === 'run_read_only_diagnosis') {\n\t\treturn 'Runner records a new artifact path or changed evidence hash before any more product repair.';\n\t}\n\tif (action === 'run_infra_repair' || action === 'run_compile_repair' || action === 'run_release_repair') {\n\t\treturn 'Runner repairs only the named deterministic gate and reruns that gate.';\n\t}\n\tif (action === 'run_targeted_product_repair') {\n\t\treturn 'Runner performs one bounded owner-scope repair and then returns to deterministic proof.';\n\t}\n\treturn 'Runner advances only after the current gate has proof.';\n}\n\nfunction safetyFor(input: {\n\taction: string;\n\tenabled: boolean;\n\tevidenceOnly: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n}): ResolveIOAIManagerAutopilotSafetyLevel {\n\tif (!input.enabled || input.action === 'park_manual') {\n\t\treturn 'blocked';\n\t}\n\tif (input.evidenceOnly || input.action === 'run_evidence_probe' || input.action === 'run_read_only_diagnosis') {\n\t\treturn 'low';\n\t}\n\tif (input.expensiveModelAllowed || input.action === 'run_targeted_product_repair') {\n\t\treturn 'high';\n\t}\n\tif (input.productRepairAllowed) {\n\t\treturn 'medium';\n\t}\n\treturn 'medium';\n}\n\nfunction resolveDispatchAction(input: ResolveIOAIManagerAutopilotSnapshotInput): string {\n\tconst directiveAction = cleanText(input.recoveryDirective?.dispatchAction, 120);\n\tif (directiveAction) {\n\t\treturn directiveAction;\n\t}\n\tconst actionMode = cleanText(input.recoveryAction?.mode, 120);\n\tswitch (actionMode) {\n\t\tcase 'collect_evidence':\n\t\t\treturn 'run_evidence_probe';\n\t\tcase 'read_only_diagnosis':\n\t\t\treturn 'run_read_only_diagnosis';\n\t\tcase 'repair_infra':\n\t\t\treturn 'run_infra_repair';\n\t\tcase 'repair_compile':\n\t\t\treturn 'run_compile_repair';\n\t\tcase 'repair_journey_contract':\n\t\t\treturn 'run_journey_contract_repair';\n\t\tcase 'repair_business_assertion':\n\t\t\treturn 'run_business_assertion_repair';\n\t\tcase 'repair_release':\n\t\t\treturn 'run_release_repair';\n\t\tcase 'targeted_product_repair':\n\t\t\treturn 'run_targeted_product_repair';\n\t\tcase 'advance':\n\t\t\treturn 'advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'continue_gate';\n\t\tcase 'manual_review':\n\t\t\treturn 'park_manual';\n\t\tdefault:\n\t\t\treturn input.recoveryCheckpoint?.status === 'parked' ? 'run_evidence_probe' : 'continue_gate';\n\t}\n}\n\nfunction countSameEvidenceDispatches(input: ResolveIOAIManagerAutopilotSnapshotInput, dispatchAction: string): number {\n\tconst checkpointId = cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160);\n\tconst actionId = cleanText(input.recoveryAction?.actionId, 160);\n\tconst evidenceHash = cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160);\n\tconst blockerFingerprint = cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160);\n\tconst history = Array.isArray(input.recoveryDispatchHistory) ? input.recoveryDispatchHistory : [];\n\treturn history.filter((entry) => {\n\t\tconst sameCheckpoint = checkpointId && cleanText(entry?.checkpointId, 160) === checkpointId;\n\t\tconst sameAction = actionId && cleanText(entry?.actionId, 160) === actionId;\n\t\tconst sameEvidence = !evidenceHash || cleanText(entry?.evidenceHash, 160) === evidenceHash;\n\t\tconst sameBlocker = !blockerFingerprint || cleanText(entry?.blockerFingerprint, 160) === blockerFingerprint;\n\t\tconst sameDispatchAction = !dispatchAction\n\t\t\t|| dispatchAction === 'park_manual'\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === dispatchAction\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === 'park_manual';\n\t\treturn (sameCheckpoint || sameAction) && sameEvidence && sameBlocker && sameDispatchAction;\n\t}).length;\n}\n\nfunction normalizeRecentDispatches(history: ResolveIOAIManagerRecoveryActionDispatchRecord[] | undefined): ResolveIOAIManagerAutopilotRecentDispatch[] {\n\tconst source = Array.isArray(history) ? history.filter(Boolean) : [];\n\treturn source.slice(-5).reverse().map((entry) => ({\n\t\tdispatchId: cleanText(entry?.dispatchId, 160),\n\t\tactionId: cleanText(entry?.actionId, 160),\n\t\tcheckpointId: cleanText(entry?.checkpointId, 160),\n\t\tprobeId: cleanText(entry?.probeId, 160),\n\t\tmode: cleanText(entry?.mode, 120),\n\t\tdispatchAction: cleanText(entry?.dispatchAction, 120),\n\t\tstatus: cleanText(entry?.status, 80),\n\t\treason: cleanText(entry?.reason, 500),\n\t\tevidenceHash: cleanText(entry?.evidenceHash, 160),\n\t\tblockerFingerprint: cleanText(entry?.blockerFingerprint, 160),\n\t\tartifactPaths: cleanList(entry?.artifactPaths, 8, 500),\n\t\tstartedAt: cleanText(entry?.startedAt, 80),\n\t\tcompletedAt: cleanText(entry?.completedAt, 80),\n\t\tcreatedAt: cleanText(entry?.createdAt, 80)\n\t}));\n}\n\nexport function buildResolveIOAIManagerAutopilotSnapshot(\n\tinput: ResolveIOAIManagerAutopilotSnapshotInput\n): ResolveIOAIManagerAutopilotSnapshot {\n\tconst dispatchAction = resolveDispatchAction(input);\n\tconst directiveAllowed = input.recoveryDirective\n\t\t? input.recoveryDirective.allowed === true\n\t\t: input.recoveryAction?.autoRunnable === true;\n\tconst evidenceOnly = input.recoveryDirective?.evidenceOnly === true\n\t\t|| input.recoveryAction?.evidenceOnly === true\n\t\t|| input.recoveryEvidenceProbe?.evidenceOnly === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst productRepairAllowed = (input.recoveryDirective?.canRunProductRepair ?? input.recoveryDirective?.productRepairAllowed ?? input.recoveryAction?.productRepairAllowed ?? input.recoveryCheckpoint?.productRepairAllowed) === true;\n\tconst expensiveModelAllowed = (input.recoveryDirective?.canRunExpensiveModel ?? input.recoveryDirective?.expensiveModelAllowed ?? input.recoveryAction?.expensiveModelAllowed ?? input.recoveryCheckpoint?.expensiveModelAllowed) === true;\n\tconst requiresNewEvidence = input.recoveryDirective?.requiresNewEvidence === true\n\t\t|| input.recoveryAction?.retryPolicy?.requireNewEvidence === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst sameEvidenceDispatchCount = countSameEvidenceDispatches(input, dispatchAction);\n\tconst sameEvidenceAlreadyAttempted = requiresNewEvidence && sameEvidenceDispatchCount > 0 && input.recoveryDirective?.newEvidence !== true;\n\tconst checkpointStatus = cleanText(input.recoveryCheckpoint?.status, 80);\n\tconst evidenceAssessment = input.recoveryCheckpoint && input.current\n\t\t? assessResolveIOAIManagerEvidenceChange(input.recoveryCheckpoint, input.current, input.recoveryCheckpoint.objective)\n\t\t: {\n\t\t\tchanged: false,\n\t\t\tmaterial: false,\n\t\t\tstrength: 'none',\n\t\t\tsignals: [] as string[]\n\t\t};\n\tconst loopState = checkpointStatus === 'manual_handoff'\n\t\t? 'manual_handoff'\n\t\t: checkpointStatus === 'complete'\n\t\t\t? 'complete'\n\t\t\t: sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t\t\t? 'parked'\n\t\t\t\t: evidenceOnly && requiresNewEvidence\n\t\t\t\t\t? 'collecting_evidence'\n\t\t\t\t\t: 'clear';\n\tconst enabled = directiveAllowed && !sameEvidenceAlreadyAttempted && loopState !== 'manual_handoff';\n\tconst recommendedAction = sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t? 'park_manual'\n\t\t: dispatchAction;\n\tconst label = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'Attach New Evidence'\n\t\t\t: input.recoveryDirective?.nextActionLabel || input.recoveryAction?.label || defaultLabelForAction(recommendedAction),\n\t\t140\n\t);\n\tconst reason = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'The same recovery action already ran against the same evidence; a new artifact path or changed evidence hash is required.'\n\t\t\t: input.recoveryDirective?.reason || input.recoveryAction?.blockedReason || input.recoveryPlan?.objective || input.current?.blocker || 'Manager can continue the current gate.',\n\t\t1000\n\t);\n\tconst canResetLoopAfterEvidence = input.recoveryDirective?.canResetLoopAfterEvidence === true\n\t\t|| input.recoveryAction?.canResetLoopAfterEvidence === true\n\t\t|| cleanList(input.recoveryCheckpoint?.loopResetEvidence, 20, 500).length > 0;\n\tconst resetRequires = cleanList(\n\t\tinput.recoveryAction?.retryPolicy?.resetLoopWhen?.length\n\t\t\t? input.recoveryAction.retryPolicy.resetLoopWhen\n\t\t\t: input.recoveryCheckpoint?.loopResetEvidence,\n\t\t20,\n\t\t500\n\t);\n\treturn {\n\t\tsurface: cleanText(input.surface || 'unknown', 120),\n\t\trunId: cleanText(input.runId, 160),\n\t\ttitle: cleanText(input.title, 240),\n\t\tstatus: cleanText(input.status || input.recoveryCheckpoint?.status, 80),\n\t\tphase: cleanText(input.phase || input.recoveryDirective?.phase, 80),\n\t\tlane: cleanText(input.lane || input.recoveryDirective?.lane || input.recoveryCheckpoint?.lane || input.current?.lane, 120),\n\t\tstepType: cleanText(input.stepType || input.recoveryDirective?.stepType || input.recoveryCheckpoint?.stepType || input.current?.stepType, 120),\n\t\trunKind: cleanText(input.runKind, 120),\n\t\trecommendedAction: {\n\t\t\taction: recommendedAction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tsafety: safetyFor({\n\t\t\t\taction: recommendedAction,\n\t\t\t\tenabled,\n\t\t\t\tevidenceOnly,\n\t\t\t\tproductRepairAllowed,\n\t\t\t\texpensiveModelAllowed\n\t\t\t}),\n\t\t\tenabled,\n\t\t\tautoRunnable: enabled && input.recoveryAction?.autoRunnable !== false,\n\t\t\texpectedResult: expectedResultForAction(recommendedAction, evidenceOnly),\n\t\t\trequiresNewEvidence,\n\t\t\tcanRunProductRepair: enabled && productRepairAllowed,\n\t\t\tcanRunExpensiveModel: enabled && expensiveModelAllowed,\n\t\t\tcanResetLoopAfterEvidence,\n\t\t\tdispatchAction\n\t\t},\n\t\tloopGuard: {\n\t\t\tstate: loopState,\n\t\t\tblocked: loopState === 'parked' || loopState === 'manual_handoff',\n\t\t\treason,\n\t\t\tfailureClass: cleanText(input.current?.failureClass, 120),\n\t\t\tblocker: cleanText(input.current?.blocker || input.current?.summary, 1000),\n\t\t\tblockerFingerprint: cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160),\n\t\t\tevidenceHash: cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160),\n\t\t\tmaterialEvidence: evidenceAssessment.material === true,\n\t\t\tevidenceStrength: cleanText(evidenceAssessment.strength, 40),\n\t\t\tevidenceSignals: cleanList(evidenceAssessment.signals, 12, 120),\n\t\t\tsameEvidenceDispatchCount,\n\t\t\tsameEvidenceAlreadyAttempted,\n\t\t\tloopCount: cleanNumber(input.loopCount),\n\t\t\tmaxLoopCount: cleanNumber(input.maxLoopCount),\n\t\t\tattempts: cleanNumber(input.recoveryCheckpoint?.attempts),\n\t\t\tmaxAttemptsBeforePark: cleanNumber(input.recoveryCheckpoint?.maxAttemptsBeforePark),\n\t\t\tcanResetLoopAfterEvidence,\n\t\t\tresetRequires\n\t\t},\n\t\trecovery: {\n\t\t\tcheckpointId: cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160),\n\t\t\trecoveryClass: cleanText(input.recoveryCheckpoint?.recoveryClass || input.recoveryAction?.recoveryClass || input.recoveryPlan?.recoveryClass, 120),\n\t\t\tdispatchAction,\n\t\t\tdirectiveAllowed,\n\t\t\tevidenceOnly,\n\t\t\tproductRepairAllowed,\n\t\t\texpensiveModelAllowed,\n\t\t\trequiredArtifacts: cleanList(input.recoveryDirective?.requiredArtifacts?.length ? input.recoveryDirective.requiredArtifacts : input.recoveryAction?.requiredArtifacts, 20, 500),\n\t\t\tnextCommands: cleanList(input.recoveryDirective?.nextCommands?.length ? input.recoveryDirective.nextCommands : input.recoveryAction?.nextCommands, 20, 500),\n\t\t\tsuccessCriteria: cleanList(input.recoveryDirective?.successCriteria?.length ? input.recoveryDirective.successCriteria : input.recoveryAction?.successCriteria, 20, 500),\n\t\t\tforbiddenActions: cleanList(input.recoveryDirective?.forbiddenActions?.length ? input.recoveryDirective.forbiddenActions : input.recoveryAction?.retryPolicy?.stopWhen, 20, 500)\n\t\t},\n\t\trecentDispatches: normalizeRecentDispatches(input.recoveryDispatchHistory),\n\t\tcost: {\n\t\t\tcurrentRunUsd: cleanNumber(input.currentRunUsd),\n\t\t\ttotalUsd: cleanNumber(input.totalUsd),\n\t\t\tcurrentRunTokens: cleanNumber(input.currentRunTokens),\n\t\t\ttotalTokens: cleanNumber(input.totalTokens),\n\t\t\tuntrackedWarning: cleanText(input.untrackedCostWarning || 'Manual Codex sessions outside this runner are not included unless recorded in the usage ledger.', 500)\n\t\t},\n\t\tupdatedAt: isoNow(input.updatedAt)\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../../src/util/ai-runner-manager-autopilot.ts"],"names":[],"mappings":"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","file":"ai-runner-manager-autopilot.js","sourcesContent":["import {\n\tassessResolveIOAIManagerEvidenceChange,\n\tdecideResolveIOAIManagerAutonomyPolicy,\n\tResolveIOAIManagerAutonomyPolicyDecision,\n\tResolveIOAIManagerAutonomyPolicyInput,\n\tResolveIOAIManagerFailureRecord,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOAIManagerAutopilotSafetyLevel = 'low' | 'medium' | 'high' | 'blocked';\n\nexport interface ResolveIOAIManagerAutopilotRecommendedAction {\n\taction: string;\n\tlabel: string;\n\treason: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\tenabled: boolean;\n\tautoRunnable: boolean;\n\texpectedResult: string;\n\trequiresNewEvidence: boolean;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tcanResetLoopAfterEvidence: boolean;\n\tsingleActionOnly: boolean;\n\tallowedDispatchAction: string;\n\tcostCeilingUsd: number;\n\trequiredStateTransition: string;\n\tproofRequiredBeforeContinuation: boolean;\n\tautonomyMode: string;\n\tautonomyCanAutoDispatch: boolean;\n\tautonomyBlocked: boolean;\n\texpectedValueScore: number;\n\texpectedValueSource: string;\n\texpectedValuePositive: boolean;\n\tevidenceBacked: boolean;\n\tevidenceStrength: string;\n\tdispatchAction?: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotControlAction {\n\taction: string;\n\tlabel: string;\n\tgroup: 'primary' | 'policy' | 'evidence' | 'release' | 'danger';\n\tenabled: boolean;\n\tautoRunnable: boolean;\n\trequiresConfirmation: boolean;\n\tconfirmationReason: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\treason: string;\n\tnextCommand: string;\n\texpectedResult: string;\n\tcostCeilingUsd: number;\n}\n\nexport interface ResolveIOAIManagerAutopilotControlGroup {\n\tgroupId: 'policy' | 'evidence' | 'release' | 'danger';\n\tlabel: string;\n\tactions: ResolveIOAIManagerAutopilotControlAction[];\n}\n\nexport interface ResolveIOAIManagerAutopilotControlPolicy {\n\tmode: string;\n\tmodeLabel: string;\n\tmodeDescription: string;\n\tonePrimaryActionOnly: true;\n\tblocked: boolean;\n\tblockedReason: string;\n\tcanAutoDispatch: boolean;\n\trequiresHumanDecision: boolean;\n\tprimaryAction: ResolveIOAIManagerAutopilotControlAction;\n\tsecondaryActionGroups: ResolveIOAIManagerAutopilotControlGroup[];\n\tbudget: {\n\t\tcurrentRunUsd: number;\n\t\ttotalUsd: number;\n\t\tprojectedActionCostUsd: number;\n\t\tprojectedSpendUsd: number;\n\t\tbudgetSoftUsd: number;\n\t\tbudgetHardUsd: number;\n\t\tsoftBudgetExceeded: boolean;\n\t\thardBudgetExceeded: boolean;\n\t\tuntrackedWarning: string;\n\t};\n}\n\nexport interface ResolveIOAIManagerHumanDecisionChoice {\n\tchoiceId: string;\n\tlabel: string;\n\taction: string;\n\tdescription: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\trequiresConfirmation: boolean;\n\tnextCommand: string;\n\texpectedResult: string;\n}\n\nexport interface ResolveIOAIManagerHumanDecisionRequest {\n\trequestId: string;\n\trequired: boolean;\n\tstatus: 'not_required' | 'waiting_for_operator';\n\treason: string;\n\tquestion: string;\n\tpreferredChoiceId: string;\n\tevidence: {\n\t\tfailureClass: string;\n\t\tblocker: string;\n\t\tblockerFingerprint: string;\n\t\tevidenceHash: string;\n\t\tcheckpointId: string;\n\t\trecoveryClass: string;\n\t\tdispatchAction: string;\n\t\trequiredArtifacts: string[];\n\t\tforbiddenActions: string[];\n\t\trecentArtifactPaths: string[];\n\t};\n\tchoices: ResolveIOAIManagerHumanDecisionChoice[];\n\tblockedUntil: string[];\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotLoopGuard {\n\tstate: 'clear' | 'collecting_evidence' | 'parked' | 'manual_handoff' | 'complete';\n\tblocked: boolean;\n\treason: string;\n\tfailureClass: string;\n\tblocker: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tmaterialEvidence: boolean;\n\tevidenceStrength: string;\n\tevidenceSignals: string[];\n\tsameEvidenceDispatchCount: number;\n\tsameEvidenceAlreadyAttempted: boolean;\n\tloopCount: number;\n\tmaxLoopCount: number;\n\tattempts: number;\n\tmaxAttemptsBeforePark: number;\n\tcanResetLoopAfterEvidence: boolean;\n\tresetRequires: string[];\n}\n\nexport interface ResolveIOAIManagerAutopilotRecentDispatch {\n\tdispatchId: string;\n\tactionId: string;\n\tcheckpointId: string;\n\tprobeId: string;\n\tmode: string;\n\tdispatchAction: string;\n\tstatus: string;\n\treason: string;\n\tevidenceHash: string;\n\tblockerFingerprint: string;\n\tartifactPaths: string[];\n\tstartedAt: string;\n\tcompletedAt: string;\n\tcreatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshot {\n\tsurface: string;\n\trunId: string;\n\ttitle: string;\n\tstatus: string;\n\tphase: string;\n\tlane: string;\n\tstepType: string;\n\trunKind: string;\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tcontrolPolicy: ResolveIOAIManagerAutopilotControlPolicy;\n\tloopGuard: ResolveIOAIManagerAutopilotLoopGuard;\n\trecovery: {\n\t\tcheckpointId: string;\n\t\trecoveryClass: string;\n\t\tdispatchAction: string;\n\t\tsingleActionOnly: boolean;\n\t\tallowedDispatchAction: string;\n\t\tdirectiveAllowed: boolean;\n\t\tevidenceOnly: boolean;\n\t\tproductRepairAllowed: boolean;\n\t\texpensiveModelAllowed: boolean;\n\t\tcostCeilingUsd: number;\n\t\trequiredStateTransition: string;\n\t\tproofRequiredBeforeContinuation: boolean;\n\t\trequiredArtifacts: string[];\n\t\tnextCommands: string[];\n\t\tsuccessCriteria: string[];\n\t\texitCriteria: string[];\n\t\tforbiddenActions: string[];\n\t};\n\tautonomyPolicy: ResolveIOAIManagerAutonomyPolicyDecision;\n\trecentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];\n\thumanDecision: ResolveIOAIManagerHumanDecisionRequest;\n\tcost: {\n\t\tcurrentRunUsd: number;\n\t\ttotalUsd: number;\n\t\tcurrentRunTokens: number;\n\t\ttotalTokens: number;\n\t\tuntrackedWarning: string;\n\t};\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshotInput {\n\tsurface: string;\n\trunId?: string;\n\ttitle?: string;\n\tstatus?: string;\n\tphase?: string;\n\tlane?: string;\n\tstepType?: string;\n\trunKind?: string;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\trecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\trecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n\trecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tloopCount?: number;\n\tmaxLoopCount?: number;\n\tcurrentRunUsd?: number;\n\ttotalUsd?: number;\n\tcurrentRunTokens?: number;\n\ttotalTokens?: number;\n\tuntrackedCostWarning?: string;\n\tautonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;\n\tupdatedAt?: Date | string;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanList(value: any, limit = 20, max = 500): string[] {\n\tconst raw = Array.isArray(value) ? value : [];\n\tconst output: string[] = [];\n\tfor (const entry of raw) {\n\t\tconst cleaned = cleanText(entry, max);\n\t\tif (cleaned && !output.includes(cleaned)) {\n\t\t\toutput.push(cleaned);\n\t\t}\n\t\tif (output.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn output;\n}\n\nfunction cleanNumber(value: any): number {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : 0;\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tconst parsed = value ? new Date(value) : new Date();\n\treturn Number.isFinite(parsed.getTime()) ? parsed.toISOString() : new Date().toISOString();\n}\n\nfunction stableHash(prefix: string, value: any): string {\n\tconst normalized = typeof value === 'string'\n\t\t? cleanText(value, 12000)\n\t\t: JSON.stringify(value || {});\n\tlet hash = 0;\n\tfor (let index = 0; index < normalized.length; index += 1) {\n\t\thash = ((hash << 5) - hash + normalized.charCodeAt(index)) | 0;\n\t}\n\treturn `${prefix}-${Math.abs(hash).toString(36) || '0'}`;\n}\n\nfunction defaultLabelForAction(action: string): string {\n\tswitch (action) {\n\t\tcase 'run_evidence_probe':\n\t\t\treturn 'Collect New Evidence';\n\t\tcase 'run_read_only_diagnosis':\n\t\t\treturn 'Run Diagnosis';\n\t\tcase 'run_infra_repair':\n\t\t\treturn 'Repair Infra';\n\t\tcase 'run_compile_repair':\n\t\t\treturn 'Repair Compile';\n\t\tcase 'run_journey_contract_repair':\n\t\t\treturn 'Repair Journey';\n\t\tcase 'run_business_assertion_repair':\n\t\t\treturn 'Repair Business Proof';\n\t\tcase 'run_release_repair':\n\t\t\treturn 'Repair Release';\n\t\tcase 'run_targeted_product_repair':\n\t\t\treturn 'Run Targeted Repair';\n\t\tcase 'advance':\n\t\t\treturn 'Advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'Continue Gate';\n\t\tcase 'park_manual':\n\t\t\treturn 'Attach New Evidence';\n\t\tdefault:\n\t\t\treturn action ? cleanText(action.replace(/_/g, ' '), 120) : 'Review Manager State';\n\t}\n}\n\nfunction expectedResultForAction(action: string, evidenceOnly: boolean): string {\n\tif (action === 'park_manual') {\n\t\treturn 'Runner stays parked until new evidence, operator approval, or a changed blocker is recorded.';\n\t}\n\tif (evidenceOnly || action === 'run_evidence_probe' || action === 'run_read_only_diagnosis') {\n\t\treturn 'Runner records a new artifact path or changed evidence hash before any more product repair.';\n\t}\n\tif (action === 'run_infra_repair' || action === 'run_compile_repair' || action === 'run_release_repair') {\n\t\treturn 'Runner repairs only the named deterministic gate and reruns that gate.';\n\t}\n\tif (action === 'run_targeted_product_repair') {\n\t\treturn 'Runner performs one bounded owner-scope repair and then returns to deterministic proof.';\n\t}\n\treturn 'Runner advances only after the current gate has proof.';\n}\n\nfunction autonomyModeLabel(mode: string): string {\n\tswitch (mode) {\n\t\tcase 'monitor_only':\n\t\t\treturn 'Monitor Only';\n\t\tcase 'auto_retry_within_budget':\n\t\t\treturn 'Auto Retry Within Budget';\n\t\tcase 'manual_only':\n\t\tdefault:\n\t\t\treturn 'Manual Only';\n\t}\n}\n\nfunction autonomyModeDescription(mode: string): string {\n\tswitch (mode) {\n\t\tcase 'monitor_only':\n\t\t\treturn 'Watch the runner and record evidence, but do not dispatch recovery, repair, QA, release, or customer actions.';\n\t\tcase 'auto_retry_within_budget':\n\t\t\treturn 'Auto-dispatch only evidence-backed actions with positive expected value inside the configured budget.';\n\t\tcase 'manual_only':\n\t\tdefault:\n\t\t\treturn 'Show the safest next action, but require an operator to dispatch it.';\n\t}\n}\n\nfunction controlAction(input: {\n\taction: string;\n\tlabel?: string;\n\tgroup: ResolveIOAIManagerAutopilotControlAction['group'];\n\tenabled?: boolean;\n\tautoRunnable?: boolean;\n\trequiresConfirmation?: boolean;\n\tconfirmationReason?: string;\n\tsafety?: ResolveIOAIManagerAutopilotSafetyLevel;\n\treason?: string;\n\tnextCommand?: string;\n\texpectedResult?: string;\n\tcostCeilingUsd?: number;\n}): ResolveIOAIManagerAutopilotControlAction {\n\tconst action = cleanText(input.action, 120) || 'review';\n\treturn {\n\t\taction,\n\t\tlabel: cleanText(input.label, 160) || defaultLabelForAction(action),\n\t\tgroup: input.group,\n\t\tenabled: input.enabled !== false,\n\t\tautoRunnable: input.autoRunnable === true,\n\t\trequiresConfirmation: input.requiresConfirmation === true,\n\t\tconfirmationReason: cleanText(input.confirmationReason, 500),\n\t\tsafety: input.safety || 'medium',\n\t\treason: cleanText(input.reason, 1000),\n\t\tnextCommand: cleanText(input.nextCommand || action, 160),\n\t\texpectedResult: cleanText(input.expectedResult || expectedResultForAction(action, false), 500),\n\t\tcostCeilingUsd: cleanNumber(input.costCeilingUsd)\n\t};\n}\n\nfunction safetyFor(input: {\n\taction: string;\n\tenabled: boolean;\n\tevidenceOnly: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n}): ResolveIOAIManagerAutopilotSafetyLevel {\n\tif (!input.enabled || input.action === 'park_manual') {\n\t\treturn 'blocked';\n\t}\n\tif (input.evidenceOnly || input.action === 'run_evidence_probe' || input.action === 'run_read_only_diagnosis') {\n\t\treturn 'low';\n\t}\n\tif (input.expensiveModelAllowed || input.action === 'run_targeted_product_repair') {\n\t\treturn 'high';\n\t}\n\tif (input.productRepairAllowed) {\n\t\treturn 'medium';\n\t}\n\treturn 'medium';\n}\n\nfunction buildControlPolicy(input: {\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tautonomyPolicy: ResolveIOAIManagerAutonomyPolicyDecision;\n\thumanDecision: ResolveIOAIManagerHumanDecisionRequest;\n\trecoveryRequiredArtifacts: string[];\n\trecoveryForbiddenActions: string[];\n\tcurrentRunUsd: number;\n\ttotalUsd: number;\n\tuntrackedWarning: string;\n}): ResolveIOAIManagerAutopilotControlPolicy {\n\tconst recommended = input.recommendedAction;\n\tconst autonomy = input.autonomyPolicy;\n\tconst blocked = recommended.enabled === false || autonomy.blocked === true || recommended.action === 'park_manual';\n\tconst primaryAction = controlAction({\n\t\taction: recommended.action,\n\t\tlabel: recommended.label,\n\t\tgroup: 'primary',\n\t\tenabled: recommended.enabled,\n\t\tautoRunnable: recommended.autoRunnable,\n\t\trequiresConfirmation: recommended.safety === 'high'\n\t\t\t|| recommended.canRunExpensiveModel\n\t\t\t|| recommended.action === 'run_targeted_product_repair'\n\t\t\t|| recommended.action === 'run_release_repair',\n\t\tconfirmationReason: recommended.safety === 'high'\n\t\t\t? 'This can spend model tokens or modify product code; confirm the diagnosis/proof gate is current.'\n\t\t\t: recommended.action === 'run_release_repair'\n\t\t\t\t? 'This can affect release state; confirm hotfix/release evidence first.'\n\t\t\t\t: '',\n\t\tsafety: recommended.safety,\n\t\treason: recommended.reason,\n\t\tnextCommand: recommended.allowedDispatchAction || recommended.dispatchAction || recommended.action,\n\t\texpectedResult: recommended.expectedResult,\n\t\tcostCeilingUsd: recommended.costCeilingUsd\n\t});\n\tconst policyActions = (['manual_only', 'monitor_only', 'auto_retry_within_budget'] as const).map((mode) => controlAction({\n\t\taction: `set_mode:${mode}`,\n\t\tlabel: autonomyModeLabel(mode),\n\t\tgroup: 'policy',\n\t\tenabled: autonomy.mode !== mode,\n\t\tautoRunnable: false,\n\t\trequiresConfirmation: mode === 'auto_retry_within_budget',\n\t\tconfirmationReason: mode === 'auto_retry_within_budget'\n\t\t\t? 'Auto retry will dispatch only evidence-backed actions inside budget, but can still spend runner tokens.'\n\t\t\t: '',\n\t\tsafety: mode === 'auto_retry_within_budget' ? 'medium' : 'low',\n\t\treason: mode === autonomy.mode ? 'Current manager mode.' : autonomyModeDescription(mode),\n\t\tnextCommand: `set_manager_mode_${mode}`,\n\t\texpectedResult: mode === autonomy.mode ? 'Mode is unchanged.' : `Manager switches to ${autonomyModeLabel(mode)}.`,\n\t\tcostCeilingUsd: 0\n\t}));\n\tconst choiceActions = (input.humanDecision.choices || [])\n\t\t.filter((choice) => choice.action !== recommended.action)\n\t\t.map((choice) => controlAction({\n\t\t\taction: choice.action,\n\t\t\tlabel: choice.label,\n\t\t\tgroup: choice.action === 'record_hotfix_evidence' ? 'release' : (choice.action === 'park_manual' ? 'danger' : 'evidence'),\n\t\t\tenabled: true,\n\t\t\tautoRunnable: false,\n\t\t\trequiresConfirmation: choice.requiresConfirmation || choice.action === 'park_manual',\n\t\t\tconfirmationReason: choice.requiresConfirmation\n\t\t\t\t? choice.description\n\t\t\t\t: choice.action === 'park_manual'\n\t\t\t\t\t? 'Parking stops automated progress until new evidence or operator policy changes.'\n\t\t\t\t\t: '',\n\t\t\tsafety: choice.safety,\n\t\t\treason: choice.description,\n\t\t\tnextCommand: choice.nextCommand,\n\t\t\texpectedResult: choice.expectedResult,\n\t\t\tcostCeilingUsd: 0\n\t\t}));\n\tif (recommended.requiresNewEvidence && !choiceActions.some((action) => action.action === 'run_evidence_probe')) {\n\t\tchoiceActions.unshift(controlAction({\n\t\t\taction: 'run_evidence_probe',\n\t\t\tlabel: 'Collect New Evidence',\n\t\t\tgroup: 'evidence',\n\t\t\tenabled: true,\n\t\t\tautoRunnable: false,\n\t\t\trequiresConfirmation: false,\n\t\t\tsafety: 'low',\n\t\t\treason: 'Collect deterministic evidence before another repair loop.',\n\t\t\tnextCommand: 'run_evidence_probe',\n\t\t\texpectedResult: 'A new artifact path or changed evidence hash is recorded.',\n\t\t\tcostCeilingUsd: 0.25\n\t\t}));\n\t}\n\tconst grouped = ([\n\t\t{ groupId: 'policy', label: 'Mode', actions: policyActions },\n\t\t{ groupId: 'evidence', label: 'Evidence', actions: choiceActions.filter((action) => action.group === 'evidence') },\n\t\t{ groupId: 'release', label: 'Release', actions: choiceActions.filter((action) => action.group === 'release') },\n\t\t{ groupId: 'danger', label: 'Danger Zone', actions: choiceActions.filter((action) => action.group === 'danger') }\n\t] as ResolveIOAIManagerAutopilotControlGroup[]).filter((group) => group.actions.length > 0);\n\treturn {\n\t\tmode: autonomy.mode,\n\t\tmodeLabel: autonomyModeLabel(autonomy.mode),\n\t\tmodeDescription: autonomyModeDescription(autonomy.mode),\n\t\tonePrimaryActionOnly: true,\n\t\tblocked,\n\t\tblockedReason: blocked ? cleanText(autonomy.reason || recommended.reason, 1000) : '',\n\t\tcanAutoDispatch: recommended.autoRunnable === true && autonomy.canAutoDispatch === true,\n\t\trequiresHumanDecision: input.humanDecision.required === true || recommended.autoRunnable !== true,\n\t\tprimaryAction,\n\t\tsecondaryActionGroups: grouped,\n\t\tbudget: {\n\t\t\tcurrentRunUsd: input.currentRunUsd,\n\t\t\ttotalUsd: input.totalUsd,\n\t\t\tprojectedActionCostUsd: autonomy.projectedActionCostUsd,\n\t\t\tprojectedSpendUsd: autonomy.projectedSpendUsd,\n\t\t\tbudgetSoftUsd: autonomy.budgetSoftUsd,\n\t\t\tbudgetHardUsd: autonomy.budgetHardUsd,\n\t\t\tsoftBudgetExceeded: autonomy.softBudgetExceeded,\n\t\t\thardBudgetExceeded: autonomy.hardBudgetExceeded,\n\t\t\tuntrackedWarning: input.untrackedWarning\n\t\t}\n\t};\n}\n\nfunction resolveDispatchAction(input: ResolveIOAIManagerAutopilotSnapshotInput): string {\n\tconst directiveAction = cleanText(input.recoveryDirective?.dispatchAction, 120);\n\tif (directiveAction) {\n\t\treturn directiveAction;\n\t}\n\tconst actionMode = cleanText(input.recoveryAction?.mode, 120);\n\tswitch (actionMode) {\n\t\tcase 'collect_evidence':\n\t\t\treturn 'run_evidence_probe';\n\t\tcase 'read_only_diagnosis':\n\t\t\treturn 'run_read_only_diagnosis';\n\t\tcase 'repair_infra':\n\t\t\treturn 'run_infra_repair';\n\t\tcase 'repair_compile':\n\t\t\treturn 'run_compile_repair';\n\t\tcase 'repair_journey_contract':\n\t\t\treturn 'run_journey_contract_repair';\n\t\tcase 'repair_business_assertion':\n\t\t\treturn 'run_business_assertion_repair';\n\t\tcase 'repair_release':\n\t\t\treturn 'run_release_repair';\n\t\tcase 'targeted_product_repair':\n\t\t\treturn 'run_targeted_product_repair';\n\t\tcase 'advance':\n\t\t\treturn 'advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'continue_gate';\n\t\tcase 'manual_review':\n\t\t\treturn 'park_manual';\n\t\tdefault:\n\t\t\treturn input.recoveryCheckpoint?.status === 'parked' ? 'run_evidence_probe' : 'continue_gate';\n\t}\n}\n\nfunction countSameEvidenceDispatches(input: ResolveIOAIManagerAutopilotSnapshotInput, dispatchAction: string): number {\n\tconst checkpointId = cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160);\n\tconst actionId = cleanText(input.recoveryAction?.actionId, 160);\n\tconst evidenceHash = cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160);\n\tconst blockerFingerprint = cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160);\n\tconst history = Array.isArray(input.recoveryDispatchHistory) ? input.recoveryDispatchHistory : [];\n\treturn history.filter((entry) => {\n\t\tconst sameCheckpoint = checkpointId && cleanText(entry?.checkpointId, 160) === checkpointId;\n\t\tconst sameAction = actionId && cleanText(entry?.actionId, 160) === actionId;\n\t\tconst sameEvidence = !evidenceHash || cleanText(entry?.evidenceHash, 160) === evidenceHash;\n\t\tconst sameBlocker = !blockerFingerprint || cleanText(entry?.blockerFingerprint, 160) === blockerFingerprint;\n\t\tconst sameDispatchAction = !dispatchAction\n\t\t\t|| dispatchAction === 'park_manual'\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === dispatchAction\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === 'park_manual';\n\t\treturn (sameCheckpoint || sameAction) && sameEvidence && sameBlocker && sameDispatchAction;\n\t}).length;\n}\n\nfunction normalizeRecentDispatches(history: ResolveIOAIManagerRecoveryActionDispatchRecord[] | undefined): ResolveIOAIManagerAutopilotRecentDispatch[] {\n\tconst source = Array.isArray(history) ? history.filter(Boolean) : [];\n\treturn source.slice(-5).reverse().map((entry) => ({\n\t\tdispatchId: cleanText(entry?.dispatchId, 160),\n\t\tactionId: cleanText(entry?.actionId, 160),\n\t\tcheckpointId: cleanText(entry?.checkpointId, 160),\n\t\tprobeId: cleanText(entry?.probeId, 160),\n\t\tmode: cleanText(entry?.mode, 120),\n\t\tdispatchAction: cleanText(entry?.dispatchAction, 120),\n\t\tstatus: cleanText(entry?.status, 80),\n\t\treason: cleanText(entry?.reason, 500),\n\t\tevidenceHash: cleanText(entry?.evidenceHash, 160),\n\t\tblockerFingerprint: cleanText(entry?.blockerFingerprint, 160),\n\t\tartifactPaths: cleanList(entry?.artifactPaths, 8, 500),\n\t\tstartedAt: cleanText(entry?.startedAt, 80),\n\t\tcompletedAt: cleanText(entry?.completedAt, 80),\n\t\tcreatedAt: cleanText(entry?.createdAt, 80)\n\t}));\n}\n\nfunction humanDecisionChoice(\n\tchoiceId: string,\n\tlabel: string,\n\taction: string,\n\tdescription: string,\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel,\n\tnextCommand: string,\n\texpectedResult: string,\n\trequiresConfirmation = false\n): ResolveIOAIManagerHumanDecisionChoice {\n\treturn {\n\t\tchoiceId,\n\t\tlabel,\n\t\taction,\n\t\tdescription: cleanText(description, 500),\n\t\tsafety,\n\t\trequiresConfirmation,\n\t\tnextCommand,\n\t\texpectedResult: cleanText(expectedResult, 500)\n\t};\n}\n\nfunction buildHumanDecisionRequest(input: {\n\tsnapshot: ResolveIOAIManagerAutopilotSnapshotInput;\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tloopState: ResolveIOAIManagerAutopilotLoopGuard['state'];\n\treason: string;\n\tdispatchAction: string;\n\tsameEvidenceAlreadyAttempted: boolean;\n\trequiresNewEvidence: boolean;\n\trequiredArtifacts: string[];\n\tforbiddenActions: string[];\n\trecentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];\n\tupdatedAt?: Date | string;\n}): ResolveIOAIManagerHumanDecisionRequest {\n\tconst checkpoint = input.snapshot.recoveryCheckpoint;\n\tconst current = input.snapshot.current || {};\n\tconst recoveryClass = cleanText(checkpoint?.recoveryClass || input.snapshot.recoveryAction?.recoveryClass || input.snapshot.recoveryPlan?.recoveryClass, 120);\n\tconst failureClass = cleanText(current.failureClass, 120);\n\tconst blocker = cleanText(current.blocker || current.summary || input.reason, 1000);\n\tconst evidenceHash = cleanText(current.evidenceHash || checkpoint?.evidenceHash, 160);\n\tconst blockerFingerprint = cleanText(current.blockerFingerprint || checkpoint?.blockerFingerprint, 160);\n\tconst checkpointId = cleanText(checkpoint?.checkpointId || input.snapshot.recoveryAction?.checkpointId, 160);\n\tconst recentArtifactPaths = cleanList(\n\t\tcurrent.artifactPaths?.length\n\t\t\t? current.artifactPaths\n\t\t\t: input.recentDispatches.flatMap((entry) => entry.artifactPaths || []),\n\t\t12,\n\t\t500\n\t);\n\tconst required = input.sameEvidenceAlreadyAttempted\n\t\t|| input.loopState === 'parked'\n\t\t|| input.loopState === 'manual_handoff'\n\t\t|| input.recommendedAction.enabled === false\n\t\t|| input.recommendedAction.action === 'park_manual';\n\tconst baseEvidence = {\n\t\tfailureClass,\n\t\tblocker,\n\t\tblockerFingerprint,\n\t\tevidenceHash,\n\t\tcheckpointId,\n\t\trecoveryClass,\n\t\tdispatchAction: input.dispatchAction,\n\t\trequiredArtifacts: input.requiredArtifacts,\n\t\tforbiddenActions: input.forbiddenActions,\n\t\trecentArtifactPaths\n\t};\n\tconst blockedUntil = input.requiresNewEvidence\n\t\t? Array.from(new Set([\n\t\t\t'new material evidence changes the evidenceHash or blockerFingerprint',\n\t\t\t'new artifact path is recorded from the failed deterministic gate',\n\t\t\t'operator updates scope, diagnosis, budget, or retry policy'\n\t\t]))\n\t\t: [];\n\tif (!required) {\n\t\treturn {\n\t\t\trequestId: stableHash('mgr-human', {\n\t\t\t\tcheckpointId,\n\t\t\t\tevidenceHash,\n\t\t\t\tblockerFingerprint,\n\t\t\t\trequired: false\n\t\t\t}),\n\t\t\trequired: false,\n\t\t\tstatus: 'not_required',\n\t\t\treason: 'No human decision is required for the current bounded next action.',\n\t\t\tquestion: '',\n\t\t\tpreferredChoiceId: '',\n\t\t\tevidence: baseEvidence,\n\t\t\tchoices: [],\n\t\t\tblockedUntil: [],\n\t\t\tcreatedAt: isoNow(input.updatedAt)\n\t\t};\n\t}\n\tconst choices: ResolveIOAIManagerHumanDecisionChoice[] = [];\n\tif (input.requiresNewEvidence || input.sameEvidenceAlreadyAttempted || input.loopState === 'parked') {\n\t\tchoices.push(humanDecisionChoice(\n\t\t\t'attach_new_evidence',\n\t\t\t'Attach New Evidence',\n\t\t\t'run_evidence_probe',\n\t\t\t'Collect a new deterministic artifact before allowing another model/code loop.',\n\t\t\t'low',\n\t\t\t'run_evidence_probe',\n\t\t\t'The runner records a new artifact path or changed evidence hash, then re-evaluates the same gate.'\n\t\t));\n\t}\n\tif (/diagnosis|owner|scope|product_code|business|unknown/i.test(`${recoveryClass} ${failureClass}`)) {\n\t\tchoices.push(humanDecisionChoice(\n\t\t\t'revise_diagnosis',\n\t\t\t'Revise Diagnosis',\n\t\t\t'run_read_only_diagnosis',\n\t\t\t'Run a read-only diagnosis revision to change owner files or proof plan with evidence.',\n\t\t\t'low',\n\t\t\t'run_read_only_diagnosis',\n\t\t\t'The diagnosis gate is updated before any product-code repair is allowed.'\n\t\t));\n\t}\n\tif (/infra|compile/i.test(`${recoveryClass} ${failureClass}`)) {\n\t\tchoices.push(humanDecisionChoice(\n\t\t\t'repair_named_gate',\n\t\t\t/compile/i.test(`${recoveryClass} ${failureClass}`) ? 'Repair Compile Gate' : 'Repair Infra Gate',\n\t\t\t/compile/i.test(`${recoveryClass} ${failureClass}`) ? 'run_compile_repair' : 'run_infra_repair',\n\t\t\t'Repair only the deterministic gate that failed; do not count this as product-code failure.',\n\t\t\t'medium',\n\t\t\t/compile/i.test(`${recoveryClass} ${failureClass}`) ? 'run_compile_repair' : 'run_infra_repair',\n\t\t\t'The named infra/compile gate passes or returns a new blocker hash.',\n\t\t\ttrue\n\t\t));\n\t}\n\tif (/release/i.test(`${recoveryClass} ${failureClass}`)) {\n\t\tchoices.push(humanDecisionChoice(\n\t\t\t'record_hotfix_evidence',\n\t\t\t'Record Hotfix Evidence',\n\t\t\t'record_hotfix_evidence',\n\t\t\t'Record commit, checksum, restart, health, and self-test proof before continuing release repair.',\n\t\t\t'low',\n\t\t\t'record_hotfix_evidence',\n\t\t\t'Hotfix evidence validates and the runner reruns the smallest release gate.'\n\t\t));\n\t}\n\tchoices.push(humanDecisionChoice(\n\t\t'keep_parked',\n\t\t'Keep Parked',\n\t\t'park_manual',\n\t\t'Leave the run parked until a human changes the evidence, scope, budget, or retry policy.',\n\t\t'blocked',\n\t\t'park_manual',\n\t\t'No additional model, QA, repair, publish, or deploy work is queued.'\n\t));\n\tconst dedupedChoices = choices.filter((choice, index, source) => {\n\t\treturn source.findIndex((candidate) => candidate.choiceId === choice.choiceId) === index;\n\t}).slice(0, 4);\n\treturn {\n\t\trequestId: stableHash('mgr-human', {\n\t\t\tcheckpointId,\n\t\t\tevidenceHash,\n\t\t\tblockerFingerprint,\n\t\t\tchoices: dedupedChoices.map((choice) => choice.choiceId)\n\t\t}),\n\t\trequired: true,\n\t\tstatus: 'waiting_for_operator',\n\t\treason: cleanText(input.reason || input.recommendedAction.reason, 1000),\n\t\tquestion: 'Choose the one evidence-backed action that should unblock this runner.',\n\t\tpreferredChoiceId: dedupedChoices[0]?.choiceId || 'keep_parked',\n\t\tevidence: baseEvidence,\n\t\tchoices: dedupedChoices,\n\t\tblockedUntil,\n\t\tcreatedAt: isoNow(input.updatedAt)\n\t};\n}\n\nexport function buildResolveIOAIManagerAutopilotSnapshot(\n\tinput: ResolveIOAIManagerAutopilotSnapshotInput\n): ResolveIOAIManagerAutopilotSnapshot {\n\tconst dispatchAction = resolveDispatchAction(input);\n\tconst directiveAllowed = input.recoveryDirective\n\t\t? input.recoveryDirective.allowed === true\n\t\t: input.recoveryAction?.autoRunnable === true;\n\tconst evidenceOnly = input.recoveryDirective?.evidenceOnly === true\n\t\t|| input.recoveryAction?.evidenceOnly === true\n\t\t|| input.recoveryEvidenceProbe?.evidenceOnly === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst productRepairAllowed = (input.recoveryDirective?.canRunProductRepair ?? input.recoveryDirective?.productRepairAllowed ?? input.recoveryAction?.productRepairAllowed ?? input.recoveryCheckpoint?.productRepairAllowed) === true;\n\tconst expensiveModelAllowed = (input.recoveryDirective?.canRunExpensiveModel ?? input.recoveryDirective?.expensiveModelAllowed ?? input.recoveryAction?.expensiveModelAllowed ?? input.recoveryCheckpoint?.expensiveModelAllowed) === true;\n\tconst requiresNewEvidence = input.recoveryDirective?.requiresNewEvidence === true\n\t\t|| input.recoveryAction?.retryPolicy?.requireNewEvidence === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst sameEvidenceDispatchCount = countSameEvidenceDispatches(input, dispatchAction);\n\tconst sameEvidenceAlreadyAttempted = requiresNewEvidence && sameEvidenceDispatchCount > 0 && input.recoveryDirective?.newEvidence !== true;\n\tconst checkpointStatus = cleanText(input.recoveryCheckpoint?.status, 80);\n\tconst evidenceAssessment = input.recoveryCheckpoint && input.current\n\t\t? assessResolveIOAIManagerEvidenceChange(input.recoveryCheckpoint, input.current, input.recoveryCheckpoint.objective)\n\t\t: {\n\t\t\tchanged: false,\n\t\t\tmaterial: false,\n\t\t\tstrength: 'none',\n\t\t\tsignals: [] as string[]\n\t\t};\n\tconst loopState = checkpointStatus === 'manual_handoff'\n\t\t? 'manual_handoff'\n\t\t: checkpointStatus === 'complete'\n\t\t\t? 'complete'\n\t\t\t: sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t\t\t? 'parked'\n\t\t\t\t: evidenceOnly && requiresNewEvidence\n\t\t\t\t\t? 'collecting_evidence'\n\t\t\t\t\t: 'clear';\n\tconst enabled = directiveAllowed && !sameEvidenceAlreadyAttempted && loopState !== 'manual_handoff';\n\tconst recommendedAction = sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t? 'park_manual'\n\t\t: dispatchAction;\n\tconst label = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'Attach New Evidence'\n\t\t\t: input.recoveryDirective?.nextActionLabel || input.recoveryAction?.label || defaultLabelForAction(recommendedAction),\n\t\t140\n\t);\n\tconst reason = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'The same recovery action already ran against the same evidence; a new artifact path or changed evidence hash is required.'\n\t\t\t: input.recoveryDirective?.reason || input.recoveryAction?.blockedReason || input.recoveryPlan?.objective || input.current?.blocker || 'Manager can continue the current gate.',\n\t\t1000\n\t);\n\tconst canResetLoopAfterEvidence = input.recoveryDirective?.canResetLoopAfterEvidence === true\n\t\t|| input.recoveryAction?.canResetLoopAfterEvidence === true\n\t\t|| cleanList(input.recoveryCheckpoint?.loopResetEvidence, 20, 500).length > 0;\n\tconst resetRequires = cleanList(\n\t\tinput.recoveryAction?.retryPolicy?.resetLoopWhen?.length\n\t\t\t? input.recoveryAction.retryPolicy.resetLoopWhen\n\t\t\t: input.recoveryCheckpoint?.loopResetEvidence,\n\t\t20,\n\t\t500\n\t);\n\tconst recoveryRequiredArtifacts = cleanList(input.recoveryDirective?.requiredArtifacts?.length ? input.recoveryDirective.requiredArtifacts : input.recoveryAction?.requiredArtifacts, 20, 500);\n\tconst recoveryForbiddenActions = cleanList(input.recoveryDirective?.forbiddenActions?.length ? input.recoveryDirective.forbiddenActions : input.recoveryAction?.retryPolicy?.stopWhen, 20, 500);\n\tconst singleActionOnly = input.recoveryDirective?.singleActionOnly !== false && input.recoveryAction?.singleActionOnly !== false;\n\tconst allowedDispatchAction = cleanText(input.recoveryDirective?.allowedDispatchAction || input.recoveryAction?.allowedDispatchAction || dispatchAction, 120);\n\tconst costCeilingUsd = cleanNumber(input.recoveryDirective?.costCeilingUsd || input.recoveryAction?.costCeilingUsd);\n\tconst requiredStateTransition = cleanText(input.recoveryDirective?.requiredStateTransition || input.recoveryAction?.requiredStateTransition, 500);\n\tconst proofRequiredBeforeContinuation = input.recoveryDirective?.proofRequiredBeforeContinuation === true || input.recoveryAction?.proofRequiredBeforeContinuation === true;\n\tconst exitCriteria = cleanList(input.recoveryDirective?.exitCriteria?.length ? input.recoveryDirective.exitCriteria : input.recoveryAction?.exitCriteria, 30, 500);\n\tconst currentRunUsd = cleanNumber(input.currentRunUsd);\n\tconst totalUsd = cleanNumber(input.totalUsd);\n\tconst autonomyPolicy = decideResolveIOAIManagerAutonomyPolicy({\n\t\t...(input.autonomyPolicy || {}),\n\t\tcurrentSpendUsd: input.autonomyPolicy?.currentSpendUsd ?? totalUsd,\n\t\tprojectedActionCostUsd: input.autonomyPolicy?.projectedActionCostUsd ?? costCeilingUsd,\n\t\tdispatchAction,\n\t\tnewEvidence: input.autonomyPolicy?.newEvidence ?? evidenceAssessment.changed,\n\t\tmaterialEvidence: input.autonomyPolicy?.materialEvidence ?? evidenceAssessment.material,\n\t\tevidenceStrength: input.autonomyPolicy?.evidenceStrength ?? evidenceAssessment.strength,\n\t\tevidenceSignals: input.autonomyPolicy?.evidenceSignals ?? evidenceAssessment.signals,\n\t\tsameEvidenceAlreadyAttempted: input.autonomyPolicy?.sameEvidenceAlreadyAttempted ?? sameEvidenceAlreadyAttempted\n\t});\n\tconst recentDispatches = normalizeRecentDispatches(input.recoveryDispatchHistory);\n\tconst recommendedActionPacket: ResolveIOAIManagerAutopilotRecommendedAction = {\n\t\taction: recommendedAction,\n\t\tlabel,\n\t\treason,\n\t\tsafety: safetyFor({\n\t\t\taction: recommendedAction,\n\t\t\tenabled,\n\t\t\tevidenceOnly,\n\t\t\tproductRepairAllowed,\n\t\t\texpensiveModelAllowed\n\t\t}),\n\t\tenabled,\n\t\tautoRunnable: enabled && input.recoveryAction?.autoRunnable !== false && autonomyPolicy.canAutoDispatch === true,\n\t\texpectedResult: expectedResultForAction(recommendedAction, evidenceOnly),\n\t\trequiresNewEvidence,\n\t\tcanRunProductRepair: enabled && productRepairAllowed,\n\t\tcanRunExpensiveModel: enabled && expensiveModelAllowed,\n\t\tcanResetLoopAfterEvidence,\n\t\tsingleActionOnly,\n\t\tallowedDispatchAction,\n\t\tcostCeilingUsd,\n\t\trequiredStateTransition,\n\t\tproofRequiredBeforeContinuation,\n\t\tautonomyMode: autonomyPolicy.mode,\n\t\tautonomyCanAutoDispatch: autonomyPolicy.canAutoDispatch,\n\t\tautonomyBlocked: autonomyPolicy.blocked,\n\t\texpectedValueScore: autonomyPolicy.expectedValueScore,\n\t\texpectedValueSource: autonomyPolicy.expectedValueSource,\n\t\texpectedValuePositive: autonomyPolicy.expectedValuePositive,\n\t\tevidenceBacked: autonomyPolicy.evidenceBacked,\n\t\tevidenceStrength: autonomyPolicy.evidenceStrength,\n\t\tdispatchAction\n\t};\n\tconst humanDecision = buildHumanDecisionRequest({\n\t\tsnapshot: input,\n\t\trecommendedAction: recommendedActionPacket,\n\t\tloopState,\n\t\treason,\n\t\tdispatchAction,\n\t\tsameEvidenceAlreadyAttempted,\n\t\trequiresNewEvidence,\n\t\trequiredArtifacts: recoveryRequiredArtifacts,\n\t\tforbiddenActions: recoveryForbiddenActions,\n\t\trecentDispatches,\n\t\tupdatedAt: input.updatedAt\n\t});\n\tconst untrackedWarning = cleanText(input.untrackedCostWarning || 'Manual Codex sessions outside this runner are not included unless recorded in the usage ledger.', 500);\n\tconst controlPolicy = buildControlPolicy({\n\t\trecommendedAction: recommendedActionPacket,\n\t\tautonomyPolicy,\n\t\thumanDecision,\n\t\trecoveryRequiredArtifacts,\n\t\trecoveryForbiddenActions,\n\t\tcurrentRunUsd,\n\t\ttotalUsd,\n\t\tuntrackedWarning\n\t});\n\treturn {\n\t\tsurface: cleanText(input.surface || 'unknown', 120),\n\t\trunId: cleanText(input.runId, 160),\n\t\ttitle: cleanText(input.title, 240),\n\t\tstatus: cleanText(input.status || input.recoveryCheckpoint?.status, 80),\n\t\tphase: cleanText(input.phase || input.recoveryDirective?.phase, 80),\n\t\tlane: cleanText(input.lane || input.recoveryDirective?.lane || input.recoveryCheckpoint?.lane || input.current?.lane, 120),\n\t\tstepType: cleanText(input.stepType || input.recoveryDirective?.stepType || input.recoveryCheckpoint?.stepType || input.current?.stepType, 120),\n\t\trunKind: cleanText(input.runKind, 120),\n\t\trecommendedAction: recommendedActionPacket,\n\t\tcontrolPolicy,\n\t\tloopGuard: {\n\t\t\tstate: loopState,\n\t\t\tblocked: loopState === 'parked' || loopState === 'manual_handoff',\n\t\t\treason,\n\t\t\tfailureClass: cleanText(input.current?.failureClass, 120),\n\t\t\tblocker: cleanText(input.current?.blocker || input.current?.summary, 1000),\n\t\t\tblockerFingerprint: cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160),\n\t\t\tevidenceHash: cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160),\n\t\t\tmaterialEvidence: evidenceAssessment.material === true,\n\t\t\tevidenceStrength: cleanText(evidenceAssessment.strength, 40),\n\t\t\tevidenceSignals: cleanList(evidenceAssessment.signals, 12, 120),\n\t\t\tsameEvidenceDispatchCount,\n\t\t\tsameEvidenceAlreadyAttempted,\n\t\t\tloopCount: cleanNumber(input.loopCount),\n\t\t\tmaxLoopCount: cleanNumber(input.maxLoopCount),\n\t\t\tattempts: cleanNumber(input.recoveryCheckpoint?.attempts),\n\t\t\tmaxAttemptsBeforePark: cleanNumber(input.recoveryCheckpoint?.maxAttemptsBeforePark),\n\t\t\tcanResetLoopAfterEvidence,\n\t\t\tresetRequires\n\t\t},\n\t\trecovery: {\n\t\t\tcheckpointId: cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160),\n\t\t\trecoveryClass: cleanText(input.recoveryCheckpoint?.recoveryClass || input.recoveryAction?.recoveryClass || input.recoveryPlan?.recoveryClass, 120),\n\t\t\tdispatchAction,\n\t\t\tsingleActionOnly,\n\t\t\tallowedDispatchAction,\n\t\t\tdirectiveAllowed,\n\t\t\tevidenceOnly,\n\t\t\tproductRepairAllowed,\n\t\t\texpensiveModelAllowed,\n\t\t\tcostCeilingUsd,\n\t\t\trequiredStateTransition,\n\t\t\tproofRequiredBeforeContinuation,\n\t\t\trequiredArtifacts: recoveryRequiredArtifacts,\n\t\t\tnextCommands: cleanList(input.recoveryDirective?.nextCommands?.length ? input.recoveryDirective.nextCommands : input.recoveryAction?.nextCommands, 20, 500),\n\t\t\tsuccessCriteria: cleanList(input.recoveryDirective?.successCriteria?.length ? input.recoveryDirective.successCriteria : input.recoveryAction?.successCriteria, 20, 500),\n\t\t\texitCriteria,\n\t\t\tforbiddenActions: recoveryForbiddenActions\n\t\t},\n\t\tautonomyPolicy,\n\t\trecentDispatches,\n\t\thumanDecision,\n\t\tcost: {\n\t\t\tcurrentRunUsd,\n\t\t\ttotalUsd,\n\t\t\tcurrentRunTokens: cleanNumber(input.currentRunTokens),\n\t\t\ttotalTokens: cleanNumber(input.totalTokens),\n\t\t\tuntrackedWarning\n\t\t},\n\t\tupdatedAt: isoNow(input.updatedAt)\n\t};\n}\n"]}
@@ -200,6 +200,11 @@ export interface ResolveIOAIManagerHotfixEvidence {
200
200
  serviceRestartEvidence?: string;
201
201
  releaseArtifactFingerprint?: string;
202
202
  lastReleaseArtifactFingerprint?: string;
203
+ sourceCommitSha?: string;
204
+ githubCommitUrl?: string;
205
+ gitCommitStatus?: string;
206
+ gitPushStatus?: string;
207
+ committedAt?: Date | string;
203
208
  forceDeployReason?: string;
204
209
  hotfixCannotResolveReason?: string;
205
210
  fullDeployRequested?: boolean;
@@ -217,9 +222,26 @@ export interface ResolveIOAIManagerHotfixEvidenceValidation {
217
222
  requiredEvidence: string[];
218
223
  successEvidence: string[];
219
224
  normalized?: ResolveIOAIManagerHotfixEvidence;
225
+ githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
220
226
  policy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
221
227
  nextAction: 'record_hotfix_evidence' | 'rerun_release_gate' | 'request_force_deploy_reason' | 'allow_one_full_deploy' | 'park_manual';
222
228
  }
229
+ export type ResolveIOAIManagerHotfixGitProofStatus = 'not_required' | 'missing' | 'invalid' | 'passed';
230
+ export interface ResolveIOAIManagerHotfixGitProof {
231
+ required: boolean;
232
+ status: ResolveIOAIManagerHotfixGitProofStatus;
233
+ passed: boolean;
234
+ managerMustCommitBeforeHotfix: boolean;
235
+ channel: ResolveIOAIManagerHotfixChannel | '';
236
+ sourceCommitSha: string;
237
+ githubCommitUrl: string;
238
+ githubCommitSha: string;
239
+ gitCommitStatus: string;
240
+ gitPushStatus: string;
241
+ blockers: string[];
242
+ nextCommands: string[];
243
+ requiredEvidence: string[];
244
+ }
223
245
  export type ResolveIOAIManagerHotfixContinuationAction = 'record_hotfix_evidence' | 'rerun_release_gate' | 'continue_runner' | 'request_force_deploy_reason' | 'allow_one_full_deploy' | 'park_manual';
224
246
  export interface ResolveIOAIManagerHotfixContinuationInput {
225
247
  evidence?: any;
@@ -244,15 +266,68 @@ export interface ResolveIOAIManagerHotfixContinuationDecision {
244
266
  nextCommands: string[];
245
267
  failureClass: string;
246
268
  blockerFingerprint: string;
269
+ githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
247
270
  validation: ResolveIOAIManagerHotfixEvidenceValidation;
248
271
  recordedAt: string;
249
272
  }
273
+ export interface ResolveIOAIManagerHotfixCommitGuardDecision {
274
+ active: boolean;
275
+ blocked: boolean;
276
+ reason: string;
277
+ nextAction: 'record_hotfix_evidence' | 'continue';
278
+ channel: ResolveIOAIManagerHotfixChannel | '';
279
+ blockers: string[];
280
+ nextCommands: string[];
281
+ requiredEvidence: string[];
282
+ githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
283
+ validation: ResolveIOAIManagerHotfixEvidenceValidation;
284
+ }
285
+ export type ResolveIOAIManagerHotfixEvidenceRecordSource = 'manual' | 'manager' | 'runner_console' | 'hotfix_script' | 'deploy_script' | 'unknown';
286
+ export interface ResolveIOAIManagerHotfixEvidenceRecordInput extends Partial<ResolveIOAIManagerHotfixEvidence> {
287
+ evidence?: any;
288
+ policy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
289
+ recordId?: string;
290
+ reason?: string;
291
+ recordedBy?: string;
292
+ source?: ResolveIOAIManagerHotfixEvidenceRecordSource | string;
293
+ now?: Date | string;
294
+ }
295
+ export interface ResolveIOAIManagerHotfixEvidenceRecord {
296
+ recordId: string;
297
+ recordedAt: string;
298
+ recordedBy: string;
299
+ source: ResolveIOAIManagerHotfixEvidenceRecordSource | string;
300
+ reason: string;
301
+ channel: ResolveIOAIManagerHotfixChannel | '';
302
+ status: ResolveIOAIManagerHotfixEvidenceStatus;
303
+ nextAction: ResolveIOAIManagerHotfixEvidenceValidation['nextAction'];
304
+ valid: boolean;
305
+ hotfixSatisfied: boolean;
306
+ fullDeployAllowed: boolean;
307
+ fullDeployBlocked: boolean;
308
+ requiredFields: string[];
309
+ missingFields: string[];
310
+ evidence: ResolveIOAIManagerHotfixEvidence | undefined;
311
+ validation: ResolveIOAIManagerHotfixEvidenceValidation;
312
+ sourceCommitSha: string;
313
+ githubCommitUrl: string;
314
+ gitPushStatus: string;
315
+ githubCommitRequired: boolean;
316
+ githubCommitProofPassed: boolean;
317
+ commitProofStatus: 'not_required' | 'missing' | 'invalid' | 'passed';
318
+ managerMustCommitBeforeHotfix: boolean;
319
+ githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
320
+ readyForReleaseGate: boolean;
321
+ readyForContinuation: boolean;
322
+ }
250
323
  export interface ResolveIOAIManagerRecoveryActionPacket {
251
324
  actionId: string;
252
325
  checkpointId: string;
253
326
  probeId: string;
254
327
  recoveryClass: ResolveIOAIManagerRecoveryClass;
255
328
  mode: ResolveIOAIManagerRecoveryAutomationMode;
329
+ singleActionOnly: boolean;
330
+ allowedDispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;
256
331
  label: string;
257
332
  lane: string;
258
333
  stepType: string;
@@ -262,11 +337,15 @@ export interface ResolveIOAIManagerRecoveryActionPacket {
262
337
  autoRunnable: boolean;
263
338
  productRepairAllowed: boolean;
264
339
  expensiveModelAllowed: boolean;
340
+ costCeilingUsd: number;
341
+ requiredStateTransition: string;
342
+ proofRequiredBeforeContinuation: boolean;
265
343
  canResetLoopAfterEvidence: boolean;
266
344
  maxAttemptsBeforePark: number;
267
345
  requiredArtifacts: string[];
268
346
  nextCommands: string[];
269
347
  successCriteria: string[];
348
+ exitCriteria: string[];
270
349
  retryPolicy: ResolveIOAIManagerRecoveryActionRetryPolicy;
271
350
  releasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
272
351
  blockedReason?: string;
@@ -305,6 +384,7 @@ export interface ResolveIOAIManagerRecoveryActionDispatchInput {
305
384
  action?: ResolveIOAIManagerRecoveryActionPacket;
306
385
  history?: ResolveIOAIManagerRecoveryActionDispatchRecord[];
307
386
  current?: ResolveIOAIManagerFailureRecord;
387
+ autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;
308
388
  operatorApproved?: boolean;
309
389
  now?: Date | string;
310
390
  }
@@ -318,13 +398,84 @@ export interface ResolveIOAIManagerRecoveryActionDispatchDecision {
318
398
  shouldRecordDispatch: boolean;
319
399
  requiresNewEvidence: boolean;
320
400
  newEvidence: boolean;
401
+ autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyDecision;
321
402
  dispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;
322
403
  }
404
+ export type ResolveIOAIManagerAutonomyMode = 'manual_only' | 'monitor_only' | 'auto_retry_within_budget';
405
+ export interface ResolveIOAIManagerAutonomyPolicyInput {
406
+ mode?: ResolveIOAIManagerAutonomyMode | string;
407
+ currentSpendUsd?: number;
408
+ budgetSoftUsd?: number;
409
+ budgetHardUsd?: number;
410
+ projectedActionCostUsd?: number;
411
+ dispatchAction?: ResolveIOAIManagerRecoveryActionDispatchAction | string;
412
+ expectedValueScore?: number;
413
+ minExpectedValueScore?: number;
414
+ evidenceStrength?: ResolveIOAIManagerEvidenceStrength | string;
415
+ materialEvidence?: boolean;
416
+ newEvidence?: boolean;
417
+ evidenceSignals?: string[];
418
+ sameEvidenceAlreadyAttempted?: boolean;
419
+ allowEvidenceProbeWithoutExpectedValue?: boolean;
420
+ operatorApproved?: boolean;
421
+ }
422
+ export interface ResolveIOAIManagerRetryExpectedValueInput {
423
+ dispatchAction?: ResolveIOAIManagerRecoveryActionDispatchAction | string;
424
+ projectedActionCostUsd?: number;
425
+ currentSpendUsd?: number;
426
+ budgetHardUsd?: number;
427
+ failureClass?: string;
428
+ recoveryClass?: ResolveIOAIManagerRecoveryClass | string;
429
+ evidenceStrength?: ResolveIOAIManagerEvidenceStrength | string;
430
+ materialEvidence?: boolean;
431
+ newEvidence?: boolean;
432
+ evidenceSignals?: string[];
433
+ sameEvidenceAlreadyAttempted?: boolean;
434
+ }
435
+ export interface ResolveIOAIManagerRetryExpectedValueEstimate {
436
+ score: number;
437
+ minScore: number;
438
+ positive: boolean;
439
+ source: 'estimated';
440
+ confidence: 'low' | 'medium' | 'high';
441
+ reason: string;
442
+ signals: string[];
443
+ }
444
+ export interface ResolveIOAIManagerAutonomyPolicyDecision {
445
+ mode: ResolveIOAIManagerAutonomyMode;
446
+ canAutoDispatch: boolean;
447
+ canManualDispatch: boolean;
448
+ blocked: boolean;
449
+ requiresHumanApproval: boolean;
450
+ reason: string;
451
+ currentSpendUsd: number;
452
+ projectedActionCostUsd: number;
453
+ projectedSpendUsd: number;
454
+ budgetSoftUsd: number;
455
+ budgetHardUsd: number;
456
+ softBudgetExceeded: boolean;
457
+ hardBudgetExceeded: boolean;
458
+ dispatchAction: string;
459
+ expectedValueScore: number;
460
+ minExpectedValueScore: number;
461
+ expectedValueKnown: boolean;
462
+ expectedValueSource: 'provided' | 'estimated';
463
+ expectedValuePositive: boolean;
464
+ evidenceStrength: ResolveIOAIManagerEvidenceStrength;
465
+ materialEvidence: boolean;
466
+ newEvidence: boolean;
467
+ evidenceBacked: boolean;
468
+ evidenceSignals: string[];
469
+ recommendedControl: 'manual_only' | 'monitor_only' | 'auto_retry_within_budget' | 'increase_budget_or_manual';
470
+ forbiddenActions: string[];
471
+ requiredEvidence: string[];
472
+ }
323
473
  export type ResolveIOAIManagerRecoveryExecutionPhase = 'evidence' | 'diagnosis' | 'infra' | 'compile' | 'journey' | 'business_proof' | 'release' | 'product_repair' | 'advance' | 'manual';
324
474
  export interface ResolveIOAIManagerRecoveryExecutionDirectiveInput {
325
475
  action?: ResolveIOAIManagerRecoveryActionPacket;
326
476
  dispatchDecision?: ResolveIOAIManagerRecoveryActionDispatchDecision;
327
477
  current?: ResolveIOAIManagerFailureRecord;
478
+ autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;
328
479
  surface?: string;
329
480
  now?: Date | string;
330
481
  }
@@ -336,6 +487,8 @@ export interface ResolveIOAIManagerRecoveryExecutionDirective {
336
487
  allowed: boolean;
337
488
  status: ResolveIOAIManagerRecoveryActionDispatchStatus;
338
489
  reason: string;
490
+ singleActionOnly: boolean;
491
+ allowedDispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;
339
492
  lane: string;
340
493
  stepType: string;
341
494
  nextActionLabel: string;
@@ -344,15 +497,20 @@ export interface ResolveIOAIManagerRecoveryExecutionDirective {
344
497
  autoRunnable: boolean;
345
498
  productRepairAllowed: boolean;
346
499
  expensiveModelAllowed: boolean;
500
+ costCeilingUsd: number;
501
+ requiredStateTransition: string;
502
+ proofRequiredBeforeContinuation: boolean;
347
503
  canRunProductRepair: boolean;
348
504
  canRunExpensiveModel: boolean;
349
505
  canResetLoopAfterEvidence: boolean;
350
506
  requiresNewEvidence: boolean;
351
507
  newEvidence: boolean;
508
+ autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyDecision;
352
509
  maxAttemptsBeforePark: number;
353
510
  requiredArtifacts: string[];
354
511
  nextCommands: string[];
355
512
  successCriteria: string[];
513
+ exitCriteria: string[];
356
514
  forbiddenActions: string[];
357
515
  dispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;
358
516
  releasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
@@ -467,11 +625,16 @@ export interface ResolveIOAIManagerRecoveryReplayCase {
467
625
  fullDeployAllowed?: boolean;
468
626
  details?: Record<string, any>;
469
627
  }
628
+ export declare function estimateResolveIOAIManagerRetryExpectedValue(input?: ResolveIOAIManagerRetryExpectedValueInput): ResolveIOAIManagerRetryExpectedValueEstimate;
629
+ export declare function decideResolveIOAIManagerAutonomyPolicy(input?: ResolveIOAIManagerAutonomyPolicyInput): ResolveIOAIManagerAutonomyPolicyDecision;
470
630
  export declare function normalizeResolveIOAIManagerHotfixEvidence(value: any, policy?: ResolveIOAIManagerHotfixFirstReleasePolicy): ResolveIOAIManagerHotfixEvidence | undefined;
631
+ export declare function evaluateResolveIOAIManagerHotfixGitProof(value: any, channelHint?: ResolveIOAIManagerHotfixChannel | ''): ResolveIOAIManagerHotfixGitProof;
471
632
  export declare function validateResolveIOAIManagerHotfixEvidence(value: any, options?: {
472
633
  policy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
473
634
  }): ResolveIOAIManagerHotfixEvidenceValidation;
635
+ export declare function buildResolveIOAIManagerHotfixEvidenceRecord(input?: ResolveIOAIManagerHotfixEvidenceRecordInput): ResolveIOAIManagerHotfixEvidenceRecord;
474
636
  export declare function decideResolveIOAIManagerHotfixContinuation(input?: ResolveIOAIManagerHotfixContinuationInput): ResolveIOAIManagerHotfixContinuationDecision;
637
+ export declare function decideResolveIOAIManagerHotfixCommitGuard(input?: ResolveIOAIManagerHotfixContinuationInput): ResolveIOAIManagerHotfixCommitGuardDecision;
475
638
  export declare function buildResolveIOAIManagerHotfixFirstReleasePolicy(input?: ResolveIOAIManagerHotfixFirstReleasePolicyInput): ResolveIOAIManagerHotfixFirstReleasePolicy;
476
639
  export declare function isResolveIOAIManagerSafeAutoDispatch(input: ResolveIOAIManagerAutoDispatchPolicyInput | ResolveIOAIManagerRecoveryActionDispatchAction | string | undefined): boolean;
477
640
  export declare function normalizeResolveIOAIManagerFailureClass(value: any): string;