@resolveio/server-lib 22.3.158 → 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"]}
@@ -203,6 +203,7 @@ export interface ResolveIOAIManagerHotfixEvidence {
203
203
  sourceCommitSha?: string;
204
204
  githubCommitUrl?: string;
205
205
  gitCommitStatus?: string;
206
+ gitPushStatus?: string;
206
207
  committedAt?: Date | string;
207
208
  forceDeployReason?: string;
208
209
  hotfixCannotResolveReason?: string;
@@ -221,9 +222,26 @@ export interface ResolveIOAIManagerHotfixEvidenceValidation {
221
222
  requiredEvidence: string[];
222
223
  successEvidence: string[];
223
224
  normalized?: ResolveIOAIManagerHotfixEvidence;
225
+ githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
224
226
  policy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
225
227
  nextAction: 'record_hotfix_evidence' | 'rerun_release_gate' | 'request_force_deploy_reason' | 'allow_one_full_deploy' | 'park_manual';
226
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
+ }
227
245
  export type ResolveIOAIManagerHotfixContinuationAction = 'record_hotfix_evidence' | 'rerun_release_gate' | 'continue_runner' | 'request_force_deploy_reason' | 'allow_one_full_deploy' | 'park_manual';
228
246
  export interface ResolveIOAIManagerHotfixContinuationInput {
229
247
  evidence?: any;
@@ -248,15 +266,68 @@ export interface ResolveIOAIManagerHotfixContinuationDecision {
248
266
  nextCommands: string[];
249
267
  failureClass: string;
250
268
  blockerFingerprint: string;
269
+ githubCommitGuard: ResolveIOAIManagerHotfixGitProof;
251
270
  validation: ResolveIOAIManagerHotfixEvidenceValidation;
252
271
  recordedAt: string;
253
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
+ }
254
323
  export interface ResolveIOAIManagerRecoveryActionPacket {
255
324
  actionId: string;
256
325
  checkpointId: string;
257
326
  probeId: string;
258
327
  recoveryClass: ResolveIOAIManagerRecoveryClass;
259
328
  mode: ResolveIOAIManagerRecoveryAutomationMode;
329
+ singleActionOnly: boolean;
330
+ allowedDispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;
260
331
  label: string;
261
332
  lane: string;
262
333
  stepType: string;
@@ -266,11 +337,15 @@ export interface ResolveIOAIManagerRecoveryActionPacket {
266
337
  autoRunnable: boolean;
267
338
  productRepairAllowed: boolean;
268
339
  expensiveModelAllowed: boolean;
340
+ costCeilingUsd: number;
341
+ requiredStateTransition: string;
342
+ proofRequiredBeforeContinuation: boolean;
269
343
  canResetLoopAfterEvidence: boolean;
270
344
  maxAttemptsBeforePark: number;
271
345
  requiredArtifacts: string[];
272
346
  nextCommands: string[];
273
347
  successCriteria: string[];
348
+ exitCriteria: string[];
274
349
  retryPolicy: ResolveIOAIManagerRecoveryActionRetryPolicy;
275
350
  releasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
276
351
  blockedReason?: string;
@@ -309,6 +384,7 @@ export interface ResolveIOAIManagerRecoveryActionDispatchInput {
309
384
  action?: ResolveIOAIManagerRecoveryActionPacket;
310
385
  history?: ResolveIOAIManagerRecoveryActionDispatchRecord[];
311
386
  current?: ResolveIOAIManagerFailureRecord;
387
+ autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;
312
388
  operatorApproved?: boolean;
313
389
  now?: Date | string;
314
390
  }
@@ -322,13 +398,84 @@ export interface ResolveIOAIManagerRecoveryActionDispatchDecision {
322
398
  shouldRecordDispatch: boolean;
323
399
  requiresNewEvidence: boolean;
324
400
  newEvidence: boolean;
401
+ autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyDecision;
325
402
  dispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;
326
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
+ }
327
473
  export type ResolveIOAIManagerRecoveryExecutionPhase = 'evidence' | 'diagnosis' | 'infra' | 'compile' | 'journey' | 'business_proof' | 'release' | 'product_repair' | 'advance' | 'manual';
328
474
  export interface ResolveIOAIManagerRecoveryExecutionDirectiveInput {
329
475
  action?: ResolveIOAIManagerRecoveryActionPacket;
330
476
  dispatchDecision?: ResolveIOAIManagerRecoveryActionDispatchDecision;
331
477
  current?: ResolveIOAIManagerFailureRecord;
478
+ autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;
332
479
  surface?: string;
333
480
  now?: Date | string;
334
481
  }
@@ -340,6 +487,8 @@ export interface ResolveIOAIManagerRecoveryExecutionDirective {
340
487
  allowed: boolean;
341
488
  status: ResolveIOAIManagerRecoveryActionDispatchStatus;
342
489
  reason: string;
490
+ singleActionOnly: boolean;
491
+ allowedDispatchAction: ResolveIOAIManagerRecoveryActionDispatchAction;
343
492
  lane: string;
344
493
  stepType: string;
345
494
  nextActionLabel: string;
@@ -348,15 +497,20 @@ export interface ResolveIOAIManagerRecoveryExecutionDirective {
348
497
  autoRunnable: boolean;
349
498
  productRepairAllowed: boolean;
350
499
  expensiveModelAllowed: boolean;
500
+ costCeilingUsd: number;
501
+ requiredStateTransition: string;
502
+ proofRequiredBeforeContinuation: boolean;
351
503
  canRunProductRepair: boolean;
352
504
  canRunExpensiveModel: boolean;
353
505
  canResetLoopAfterEvidence: boolean;
354
506
  requiresNewEvidence: boolean;
355
507
  newEvidence: boolean;
508
+ autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyDecision;
356
509
  maxAttemptsBeforePark: number;
357
510
  requiredArtifacts: string[];
358
511
  nextCommands: string[];
359
512
  successCriteria: string[];
513
+ exitCriteria: string[];
360
514
  forbiddenActions: string[];
361
515
  dispatchRecord?: ResolveIOAIManagerRecoveryActionDispatchRecord;
362
516
  releasePolicy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
@@ -471,11 +625,16 @@ export interface ResolveIOAIManagerRecoveryReplayCase {
471
625
  fullDeployAllowed?: boolean;
472
626
  details?: Record<string, any>;
473
627
  }
628
+ export declare function estimateResolveIOAIManagerRetryExpectedValue(input?: ResolveIOAIManagerRetryExpectedValueInput): ResolveIOAIManagerRetryExpectedValueEstimate;
629
+ export declare function decideResolveIOAIManagerAutonomyPolicy(input?: ResolveIOAIManagerAutonomyPolicyInput): ResolveIOAIManagerAutonomyPolicyDecision;
474
630
  export declare function normalizeResolveIOAIManagerHotfixEvidence(value: any, policy?: ResolveIOAIManagerHotfixFirstReleasePolicy): ResolveIOAIManagerHotfixEvidence | undefined;
631
+ export declare function evaluateResolveIOAIManagerHotfixGitProof(value: any, channelHint?: ResolveIOAIManagerHotfixChannel | ''): ResolveIOAIManagerHotfixGitProof;
475
632
  export declare function validateResolveIOAIManagerHotfixEvidence(value: any, options?: {
476
633
  policy?: ResolveIOAIManagerHotfixFirstReleasePolicy;
477
634
  }): ResolveIOAIManagerHotfixEvidenceValidation;
635
+ export declare function buildResolveIOAIManagerHotfixEvidenceRecord(input?: ResolveIOAIManagerHotfixEvidenceRecordInput): ResolveIOAIManagerHotfixEvidenceRecord;
478
636
  export declare function decideResolveIOAIManagerHotfixContinuation(input?: ResolveIOAIManagerHotfixContinuationInput): ResolveIOAIManagerHotfixContinuationDecision;
637
+ export declare function decideResolveIOAIManagerHotfixCommitGuard(input?: ResolveIOAIManagerHotfixContinuationInput): ResolveIOAIManagerHotfixCommitGuardDecision;
479
638
  export declare function buildResolveIOAIManagerHotfixFirstReleasePolicy(input?: ResolveIOAIManagerHotfixFirstReleasePolicyInput): ResolveIOAIManagerHotfixFirstReleasePolicy;
480
639
  export declare function isResolveIOAIManagerSafeAutoDispatch(input: ResolveIOAIManagerAutoDispatchPolicyInput | ResolveIOAIManagerRecoveryActionDispatchAction | string | undefined): boolean;
481
640
  export declare function normalizeResolveIOAIManagerFailureClass(value: any): string;