@resolveio/server-lib 22.3.158 → 22.3.160
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.
- package/methods/ai-terminal.d.ts +1 -0
- package/methods/ai-terminal.js +133 -3
- package/methods/ai-terminal.js.map +1 -1
- package/package.json +1 -1
- package/util/ai-run-evidence-adapters.d.ts +37 -0
- package/util/ai-run-evidence-adapters.js +988 -79
- package/util/ai-run-evidence-adapters.js.map +1 -1
- package/util/ai-run-evidence.d.ts +1 -1
- package/util/ai-run-evidence.js.map +1 -1
- package/util/ai-runner-manager-autopilot.d.ts +99 -1
- package/util/ai-runner-manager-autopilot.js +370 -41
- package/util/ai-runner-manager-autopilot.js.map +1 -1
- package/util/ai-runner-manager-policy.d.ts +159 -0
- package/util/ai-runner-manager-policy.js +782 -30
- package/util/ai-runner-manager-policy.js.map +1 -1
- package/util/aicoder-runner-v6.d.ts +93 -3
- package/util/aicoder-runner-v6.js +699 -27
- package/util/aicoder-runner-v6.js.map +1 -1
- package/util/support-runner-v5.d.ts +192 -2
- package/util/support-runner-v5.js +1140 -74
- package/util/support-runner-v5.js.map +1 -1
|
@@ -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;
|