dsh-ssh-tui 0.6.1 → 0.6.3

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/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAiE,MAAM,wBAAwB,CAAA;AAG7H,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,qFAAqF;AACrF,SAAS,wBAAwB;IAC/B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAY,CAAA;QACtF,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5F,MAAM,OAAO,GAAI,MAAkC,CAAC,qBAAqB,CAAC,CAAA;QAC1E,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/E,CAAC,CAAC,OAAkC;YACpC,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AACD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,6EAA6E;AAC7E,0EAA0E;AAC1E,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAsB,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,gBAAgB,EAA0B,MAAM,mBAAmB,CAAA;AACvH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAGpD,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAA;AAE7B,6EAA6E;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAA;AAErD,gFAAgF;AAChF,+EAA+E;AAC/E,iDAAiD;AACjD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAqBzE;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAc;IAChD,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAA;IACtC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;IAChG,CAAC;IACD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAA;IACtD,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACvB,eAAe,CAAC,GAAG,CAAC,CAAA;IACpB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;QACd,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,MAA+B,CAAA;QACnC,IAAI,UAAqC,CAAA;QACzC,IAAI,mBAAuC,CAAA;QAC3C,IAAI,mBAAgD,CAAA;QACpD,IAAI,YAAY,GAAG,KAAK,CAAA;QAExB,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;YAChD,MAAM,IAAI,GAAG,mBAAmB,CAAA;YAChC,mBAAmB,GAAG,SAAS,CAAA;YAC/B,mBAAmB,GAAG,SAAS,CAAA;YAC/B,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACxD,CAAC,CAAA;QAED,MAAM,eAAe,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;YACjE,IAAI,mBAAmB,EAAE;gBAAE,OAAM;YACjC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE;gBACzD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG;gBAC3C,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,MAAM;gBACnB,gBAAgB,EAAE,OAAO;aAC1B,CAAC,CAAA;YACF,mBAAmB,GAAG,IAAI,CAAA;YAC1B,mBAAmB,GAAG,IAAI,CAAA;QAC5B,CAAC,CAAA;QAED,MAAM,SAAS,GAAG,KAAK,EAAE,KAA+B,EAAiB,EAAE;YACzE,MAAM,IAAI,GAAG,mBAAmB,CAAA;YAChC,MAAM,OAAO,GAAG,mBAAmB,CAAA;YACnC,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAM;YACvD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAA;YACrC,mBAAmB,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,0CAA0C;YAC5C,CAAC;QACH,CAAC,CAAA;QAED,IAAI,YAA4C,CAAA;QAChD,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;SAClC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,cAAc,CAAC;YAC9B,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE;gBACrD,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxC,CAAC;YACF,KAAK,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAA,CAAC,CAAC;YACrC,YAAY,EAAE,GAAG,EAAE,GAAG,YAAY,GAAG,oBAAoB,EAAE,CAAA,CAAC,CAAC;YAC7D,UAAU,EAAE,GAAG,EAAE;gBACf,MAAM,OAAO,GAAG,YAAY,CAAA;gBAC5B,YAAY,GAAG,SAAS,CAAA;gBACxB,OAAO,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YAC9B,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;gBACnC,IAAI,mBAAmB,EAAE;oBAAE,OAAO,SAAS,CAAA;gBAC3C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAA;gBAC7C,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAA;gBACxC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YACjE,CAAC;YACD,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACpD,kBAAkB,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;gBAClC,MAAM,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;YAChH,CAAC;YACD,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA,CAAC,CAAC;YAC3D,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;gBACR,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBACnE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBACnE,MAAM,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;aAC5E;YACD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG;SACzC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAA;QAC9C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAA;QAEhD,yEAAyE;QACzE,4EAA4E;QAC5E,IAAI,aAAyC,CAAA;QAE7C,iEAAiE;QACjE,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAU,EAAE;YAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAuB,CAAA;YACnE,MAAM,MAAM,GAAG,WAAW,CAAA;YAC1B,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;gBACxD,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,CAAA;gBACxE,CAAC;YACH,CAAC;YACD,OAAO,sDAAsD,SAAS,EAAE,CAAA;QAC1E,CAAC,CAAA;QAED,MAAM,KAAK,GAAG,KAAK,EAAE,SAAoB,EAAE,MAAe,EAAiB,EAAE;YAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;gBACnF,MAAM,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;gBAC1C,OAAM;YACR,CAAC;YACD,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;YACvF,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAA;YAChC,IAAI,QAAQ;gBAAE,OAAM;YACpB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAChC,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;YACvF,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;YACjD,MAAM,YAAY,GAAG,YAAY,EAAE,gBAAgB,EAAE,CAAA;YACrD,yEAAyE;YACzE,qEAAqE;YACrE,kEAAkE;YAClE,gEAAgE;YAChE,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAEzB,CAAA;YACb,MAAM,GAAG,GAAG,WAAW,EAAE,QAAQ,CAAA;YACjC,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAE,GAA+B,CAAC,qBAAqB,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAA;YACb,MAAM,WAAW,GAAG,wBAAwB,EAAE,CAAA;YAC9C,MAAM,aAAa,GAAG,CAAC,WAAW,IAAI,UAAU,CAEnC,CAAA;YACb,MAAM,cAAc,GAClB,aAAa,KAAK,SAAS;mBACtB,OAAO,aAAa,CAAC,QAAQ,KAAK,QAAQ;mBAC1C,OAAO,aAAa,CAAC,KAAK,KAAK,QAAQ;gBAC1C,CAAC,CAAC;oBACE,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,GAAG,CAAC,OAAO,aAAa,CAAC,eAAe,KAAK,QAAQ;wBACnD,CAAC,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;wBACvE,CAAC,CAAC,EAAE,CAAC;iBACR;gBACH,CAAC,CAAC,YAAY,CAAA;YAClB,MAAM,qBAAqB,GAAG,WAAW,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAAA;YACnF,MAAM,kBAAkB,GAAG,CAAC,qBAAqB;gBAC/C,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,CACnC,WAAkE,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAClG,CAAC;gBACJ,CAAC,CAAC,SAAS,CAAA;YAEb,yEAAyE;YACzE,4EAA4E;YAC5E,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ;mBACnC,MAAM,CAAC,QAAQ;mBACf,cAAc,EAAE,QAAQ;mBACxB,kBAAkB,EAAE,QAAQ;mBAC5B,mBAAmB,CAAA;YACxB,MAAM,KAAK,GAAG,aAAa,EAAE,KAAK;mBAC7B,MAAM,CAAC,KAAK;mBACZ,cAAc,EAAE,KAAK;mBACrB,kBAAkB,EAAE,KAAK;mBACzB,mBAAmB,CAAA;YAExB,sEAAsE;YACtE,0EAA0E;YAC1E,qCAAqC;YACrC,IAAI,eAAe,GAAG,aAAa,EAAE,eAAe,CAAA;YACpD,IAAI,eAAe,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBACjE,MAAM,cAAc,GAAG,CAAC,cAAc,IAAI,kBAAkB,CAAC,KAAK,SAAS;uBACtE,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,cAAc,IAAI,kBAAkB,CAAC,EAAE,QAAQ,CAAC;uBACvG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,IAAI,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAA;gBACnG,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,SAAS,GAAG,CAAC,cAAc,IAAI,kBAAkB,CAAC,EAAE,eAAe,CAAA;oBACzE,eAAe,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;gBAC9F,CAAC;YACH,CAAC;YACD,mEAAmE;YACnE,0EAA0E;YAC1E,wEAAwE;YACxE,iDAAiD;YACjD,IAAI,eAAe,KAAK,SAAS,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;gBACtE,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC1B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,eAAe,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;gBACtE,CAAC;YACH,CAAC;YAED,MAAM,kBAAkB,GAAmB;gBACzC,QAAQ;gBACR,KAAK;gBACL,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;aAC9D,CAAA;YACD,MAAM,YAAY,GAAsB;gBACtC,OAAO,EAAE,kBAAkB;gBAC3B,SAAS,EAAE,SAAS;aACrB,CAAA;YACD,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAC5C,MAAM,YAAY,GAAG;gBACnB,QAAQ;gBACR,KAAK;gBACL,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;aAC9D,CAAA;YACD,MAAM,KAAK,GAAG,KAAK,EAAE,QAAiB,EAAiB,EAAE;gBACvD,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;gBAC7C,MAAM,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;YACrC,CAAC,CAAA;YACD,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;YACxC,IAAI,eAAmC,CAAA;YACvC,IAAI,CAAC;gBACH,uEAAuE;gBACvE,uEAAuE;gBACvE,oEAAoE;gBACpE,oDAAoD;gBACpD,MAAM,cAAc,GAAG,CAAC,KAAc,EAAW,EAAE;oBACjD,MAAM,KAAK,GAAc,CAAC,KAAK,CAAC,CAAA;oBAChC,IAAI,OAAO,GAAG,KAAK,CAAA;oBACnB,OAAO,OAAO,YAAY,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC/D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAA;wBACvB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBACrB,CAAC;oBACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;gBACrF,CAAC,CAAA;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;oBACnF,CAAC;oBAAC,OAAO,KAAc,EAAE,CAAC;wBACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;4BAAE,MAAM,KAAK,CAAA;wBACvC,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;oBAChG,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;gBAChG,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;oBACjE,eAAe,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;wBAC3C,CAAC,CAAC,OAAO,CAAC,KAAK;wBACf,CAAC,CAAC,OAAO,CAAC,OAAO;4BACf,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;4BACxC,CAAC,CAAC,SAAS,CAAA;gBACjB,CAAC;YACH,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,eAAe,EAAE,CAAA;gBACvB,MAAM,KAAK,CAAA;YACb,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;gBACtB,MAAM,eAAe,EAAE,CAAA;gBACvB,OAAM;YACR,CAAC;YACD,MAAM,QAAQ,GAAG,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,SAAS,CAAA;YAC1F,IAAI,UAAU,GAAG,QAAQ,CAAA;YACzB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;oBACpD,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;wBAAE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAA;gBAC1D,CAAC;gBAAC,MAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;YACD,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE;gBACzB,GAAG,MAAM;gBACT,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,IAAI;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC5B,MAAM;gBACN,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;gBACxE,QAAQ;gBACR,KAAK;gBACL,YAAY;gBACZ,iBAAiB;gBACjB,QAAQ;gBACR,UAAU;gBACV,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,eAAe,EAAE,QAAQ;gBACzB,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC3B,aAAa,GAAG,IAAI,CAAA;gBACtB,CAAC;gBACD,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACnB,sEAAsE;oBACtE,0DAA0D;oBAC1D,YAAY,GAAG,IAAI,CAAA;oBACnB,MAAM,MAAM,GAAG,UAAU,EAAE,gBAAgB,EAAE,IAAI,OAAO,CAAA;oBACxD,MAAM,SAAS,CAAC;wBACd,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ;wBACzE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;wBACpE,GAAG,EAAE,SAAS;wBACd,gBAAgB,EAAE,MAAM;qBACzB,CAAC,CAAA;gBACJ,CAAC;gBACD,UAAU,EAAE,KAAK,IAAI,EAAE;oBACrB,YAAY,GAAG,KAAK,CAAA;oBACpB,MAAM,SAAS,CAAC;wBACd,KAAK,EAAE,UAAU;wBACjB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG;wBAC3C,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;qBACrE,CAAC,CAAA;gBACJ,CAAC;aACF,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;YACvD,IAAI,SAAS,IAAI,QAAQ;gBAAE,OAAM;YACjC,SAAS,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC;gBACH,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,UAAU,CAAC,OAAO,EAAE,CAAA;oBAC1B,UAAU,GAAG,SAAS,CAAA;gBACxB,CAAC;gBACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;oBACtB,MAAM,GAAG,SAAS,CAAA;gBACpB,CAAC;gBACD,MAAM,eAAe,EAAE,CAAA;gBACvB,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,MAAM,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACpG,YAAY,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;oBAAS,CAAC;gBACT,SAAS,GAAG,KAAK,CAAA;YACnB,CAAC;QACH,CAAC,CAAA;QAED,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAA;QACzC,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAA;QACvC,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;YACrC,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;gBACvF,IAAI,QAAQ;oBAAE,OAAM;gBACpB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,mEAAmE;oBACnE,sEAAsE;oBACtE,oEAAoE;oBACpE,oEAAoE;oBACpE,iDAAiD;oBACjD,kBAAkB,EAAE,CAAA;oBACpB,YAAY,CAAC,CAAC,CAAC,CAAA;oBACf,OAAM;gBACR,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAA;oBAC5B,MAAM,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;oBAC5C,OAAM;gBACR,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAA;oBAC5B,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;gBACzC,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,mEAAmE;oBACnE,sBAAsB;oBACtB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,EAAE;wBACvC,CAAC,CAAC,gBAAgB,UAAU,EAAE,EAAE;wBAChC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAA;oBACpB,gBAAgB,GAAG,SAAS,CAAA;oBAC5B,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAA;gBAC1C,CAAC;gBACD,OAAM;YACR,CAAC;YACD,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAA;QAClE,CAAC,CAAA;QAED,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB;gBAC5E,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,gBAAgB,uBAAuB,MAAM,IAAI,CAAC,CAAA;YAChG,YAAY,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,IAAmB,EAAE;YAC/B,IAAI,YAAY,EAAE,CAAC;gBACjB,qEAAqE;gBACrE,qEAAqE;gBACrE,uDAAuD;gBACvD,OAAM;YACR,CAAC;YACD,QAAQ,GAAG,IAAI,CAAA;YACf,WAAW,CAAC,KAAK,EAAE,CAAA;YACnB,MAAM,UAAU,EAAE,OAAO,EAAE,CAAA;YAC3B,MAAM,MAAM,EAAE,OAAO,EAAE,CAAA;YACvB,MAAM,eAAe,EAAE,CAAA;QACzB,CAAC,CAAA;IACH,CAAC,EAAE,SAAS,CAAC,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Agent-preset display names, and the profile row the terminal `/mode` needs.
3
+ *
4
+ * A shipped preset's name resolves through the id-keyed dictionary this module
5
+ * owns — the same rule `@deepseek-ai/dsh-agent-presets/display` applies on the
6
+ * browser surface — so `/language` reaches the picker, the banner, and
7
+ * `/status`. A user-authored preset keeps the name its own `preset.yml`
8
+ * published: that metadata is never translated.
9
+ *
10
+ * A terminal profile built on `dsh-base` composes no preset roster, and this
11
+ * plugin's own bundle patch may not mount one (DSH STORE accepts additive
12
+ * plugin-owned rows only), so the profile's user layer owns the row. When it is
13
+ * absent `/mode` reports the exact repair instead of a dead end.
14
+ * @module dsh-ssh-tui/preset-label
15
+ */
16
+ import { t } from './i18n/index.js';
17
+ /** i18n key carrying one shipped preset's name. */
18
+ const SHIPPED_PRESET_KEYS = {
19
+ standard: 'mode.preset.standard',
20
+ minimal: 'mode.preset.minimal',
21
+ ptc: 'mode.preset.ptc',
22
+ cordis: 'mode.preset.cordis',
23
+ };
24
+ /** Whether this id belongs to the shipped, translatable roster. */
25
+ export function isShippedPreset(id) {
26
+ return SHIPPED_PRESET_KEYS[id] !== undefined;
27
+ }
28
+ /**
29
+ * Resolve the name a picker, banner, or report renders for one preset.
30
+ *
31
+ * A published name equal to the id is the roster's own "no metadata" answer,
32
+ * not a name, so it falls through to the dictionary or back to the id.
33
+ * @param id - the preset id, also the last-resort label.
34
+ * @param name - display name the preset published, when it published one.
35
+ * @param trust - `user` keeps published metadata; anything else (including an
36
+ * unknown trust) resolves a shipped id through the dictionary.
37
+ * @returns the localized or published name, never empty.
38
+ */
39
+ export function presetLabel(id, name, trust) {
40
+ const published = name?.trim();
41
+ const own = published === undefined || published === '' || published === id ? undefined : published;
42
+ if (trust !== 'user') {
43
+ const key = SHIPPED_PRESET_KEYS[id];
44
+ if (key !== undefined)
45
+ return t(key);
46
+ }
47
+ return own ?? id;
48
+ }
49
+ /**
50
+ * The profile this process booted, from `--profile <name>` / `--profile=<name>`.
51
+ *
52
+ * The launcher passes the same arguments to the front end and to the Host it
53
+ * spawns (only `--resume`/`--new` are rewritten), so both report one profile.
54
+ * @param argv - the argument list to read.
55
+ * @returns the profile name, or the TUI's own default when none was named.
56
+ */
57
+ export function profileFromArgv(argv = process.argv) {
58
+ for (let index = 0; index < argv.length; index += 1) {
59
+ const arg = argv[index] ?? '';
60
+ if (arg === '--profile') {
61
+ const next = argv[index + 1];
62
+ if (next !== undefined && next !== '' && !next.startsWith('-'))
63
+ return next;
64
+ }
65
+ else if (arg.startsWith('--profile=')) {
66
+ const value = arg.slice('--profile='.length);
67
+ if (value !== '')
68
+ return value;
69
+ }
70
+ }
71
+ return 'tui';
72
+ }
73
+ //# sourceMappingURL=preset-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-label.js","sourceRoot":"","sources":["../src/preset-label.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAEnC,mDAAmD;AACnD,MAAM,mBAAmB,GAAqC;IAC5D,QAAQ,EAAE,sBAAsB;IAChC,OAAO,EAAE,qBAAqB;IAC9B,GAAG,EAAE,iBAAiB;IACtB,MAAM,EAAE,oBAAoB;CAC7B,CAAA;AAED,mEAAmE;AACnE,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,OAAO,mBAAmB,CAAC,EAAE,CAAC,KAAK,SAAS,CAAA;AAC9C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU,EAAE,IAAa,EAAE,KAAc;IACnE,MAAM,SAAS,GAAG,IAAI,EAAE,IAAI,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAG,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IACnG,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;QACnC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,GAAG,IAAI,EAAE,CAAA;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,OAA0B,OAAO,CAAC,IAAI;IACpE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC7B,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAA;QAC7E,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YAC5C,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAA;QAChC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * The profile patch that mounts the agent-preset roster `/mode` needs.
3
+ *
4
+ * A terminal profile built on `dsh-base` composes no preset roster (only the
5
+ * Web bundle does), and this plugin's own bundle patch may not mount one: DSH
6
+ * STORE accepts additive rows with plugin-owned ids and no `@deepseek-ai/*`
7
+ * module names. The profile's user layer is the supported home for the row, so
8
+ * both the install script and the running TUI write the same block here — the
9
+ * TUI needs it because `dsh plugin add dsh-ssh-tui@latest` (the in-app update
10
+ * path) never runs `scripts/`, which npm installs do not ship.
11
+ *
12
+ * The roster is not cosmetic: without it `/mode` cannot switch, and the tools
13
+ * the shipped presets own (`ask_user_question`, `present`, PTC's presentation)
14
+ * are absent from the agent's catalog.
15
+ * @module dsh-ssh-tui/preset-rows
16
+ */
17
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
18
+ import { dirname, join } from 'node:path';
19
+ /**
20
+ * The exact profile patch block that mounts the roster and the two host
21
+ * services the shipped presets need. `scripts/ensure-profile-rows.sh` carries
22
+ * the same text; a test compares the two so they cannot drift.
23
+ */
24
+ export const ROSTER_PATCH_BLOCK = `# dsh-ssh-tui /mode: the agent-preset roster (standard / minimal / PTC /
25
+ # cordis, plus every preset under $DSH_HOME/.agent-presets) and the two host
26
+ # services the shipped presets need. dsh-base composes no roster in a terminal
27
+ # profile, and a third-party bundle patch may not mount an @deepseek-ai row, so
28
+ # the profile's user layer owns them.
29
+ - insert:
30
+ - id: agent-presets
31
+ name: '@deepseek-ai/dsh-agent-presets'
32
+ config:
33
+ default: standard
34
+
35
+ - id: code-runtime
36
+ name: '@deepseek-ai/dsh-code-runtime-worker-thread'
37
+
38
+ - id: subagent-model-selection-settings
39
+ name: '@deepseek-ai/dsh-tool-subagent/model-selection-settings'
40
+ `;
41
+ /** The profile patch file the roster block belongs in. */
42
+ export function rosterPatchPath(home, profile) {
43
+ return join(home, 'profiles', profile, 'cordis.patch.yml');
44
+ }
45
+ /**
46
+ * The patch text with the roster block appended, or `undefined` when the file
47
+ * already names the roster row.
48
+ *
49
+ * A file that is exactly `[]` (the profile template) is replaced, so the result
50
+ * stays a valid top-level patch list; anything else keeps its content and the
51
+ * block is appended after a blank line.
52
+ * @param existing - the patch file's current text.
53
+ * @returns the new text, or `undefined` when nothing has to change.
54
+ */
55
+ export function rosterPatchText(existing) {
56
+ if (/name:\s*'@deepseek-ai\/dsh-agent-presets'/.test(existing))
57
+ return undefined;
58
+ if (/^\s*\[\s*\]\s*$/m.test(existing))
59
+ return existing.replace(/^\s*\[\s*\]\s*$/m, ROSTER_PATCH_BLOCK.trimEnd() + '\n');
60
+ return `${existing.endsWith('\n') ? existing : `${existing}\n`}\n${ROSTER_PATCH_BLOCK}`;
61
+ }
62
+ /** The template a missing profile patch starts from. */
63
+ const PATCH_TEMPLATE = `# Your patch layer for this dsh profile, applied after every bundle layer:
64
+ # a top-level YAML array of loader patch entries (id-targeted config
65
+ # overrides, disables, and insert lists; \`!!js\` expressions allowed).
66
+ []
67
+
68
+ `;
69
+ /**
70
+ * Mount the roster in one profile, unless it is already composed.
71
+ *
72
+ * Idempotent: a profile whose patch already names the roster row (one bundling
73
+ * `@deepseek-ai/dsh-web-app`, for example) is left untouched. The write is a
74
+ * plain whole-file replace because the file is small and read once at boot; a
75
+ * half-written patch would only be seen by the next launch.
76
+ * @param home - the harness home carrying `profiles/`.
77
+ * @param profile - the profile to patch.
78
+ * @returns `present` when the row already exists, else `written`.
79
+ */
80
+ export async function ensureRosterRows(home, profile) {
81
+ const path = rosterPatchPath(home, profile);
82
+ let existing = PATCH_TEMPLATE;
83
+ try {
84
+ existing = await readFile(path, 'utf8');
85
+ }
86
+ catch {
87
+ // Missing file: start from the template the launcher would have written.
88
+ }
89
+ const next = rosterPatchText(existing);
90
+ if (next === undefined)
91
+ return 'present';
92
+ await mkdir(dirname(path), { recursive: true });
93
+ await writeFile(path, next, 'utf8');
94
+ return 'written';
95
+ }
96
+ //# sourceMappingURL=preset-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-rows.js","sourceRoot":"","sources":["../src/preset-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;CAgBjC,CAAA;AAED,0DAA0D;AAC1D,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAe;IAC3D,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,2CAA2C,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAA;IAChF,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;IACvH,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,kBAAkB,EAAE,CAAA;AACzF,CAAC;AAED,wDAAwD;AACxD,MAAM,cAAc,GAAG;;;;;CAKtB,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAe;IAClE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,QAAQ,GAAG,cAAc,CAAA;IAC7B,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACxC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,OAAO,SAAS,CAAA;AAClB,CAAC"}
package/lib/reasoning.js CHANGED
@@ -2,11 +2,16 @@
2
2
  * Shared reasoning-effort defaults for the SSH TUI.
3
3
  *
4
4
  * OpenCode / third-party (llm-pi-ai) routes carry no adapter-level reasoning
5
- * default (unlike `llm-deepseek`, whose row declares `reasoningEffort: max`).
6
- * Without an explicit effort the model streams its thinking as plain `text`
7
- * chunks instead of `reasoning` blocks, so the TUI never receives the data
8
- * needed to render the collapsible `思考中` block. This helper picks a
5
+ * default. Without an explicit effort the model streams its thinking as plain
6
+ * `text` chunks instead of `reasoning` blocks, so the TUI never receives the
7
+ * data needed to render the collapsible `思考中` block. This helper picks a
9
8
  * supported default so the fold has data to show.
9
+ *
10
+ * `llm-deepseek` is not covered here: its adapter always reports a
11
+ * `defaultEffort`, which the LLM runtime materializes into the request on its
12
+ * own. Since the 0.5.1 STORE compliance trim dropped the bundle patch's
13
+ * `reasoningEffort: max` row override, that adapter default is `high` unless a
14
+ * deployment sets it (or `/effort` picks one, remembered per route).
10
15
  */
11
16
  /**
12
17
  * Pick a default reasoning effort for a provider/model when none is selected.
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning.js","sourceRoot":"","sources":["../src/reasoning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAe,EACf,QAAgB,EAChB,KAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE,CAAA;QAC9C,IAAI,IAAI,EAAE,SAAS,EAAE,aAAa,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAA;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;eACvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC;eAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC;eAC3C,MAAM,CAAC,CAAC,CAAC,CAAA;QACd,OAAO,SAAS,EAAE,EAAE,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"reasoning.js","sourceRoot":"","sources":["../src/reasoning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAe,EACf,QAAgB,EAChB,KAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE,CAAA;QAC9C,IAAI,IAAI,EAAE,SAAS,EAAE,aAAa,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAA;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;eACvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC;eAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC;eAC3C,MAAM,CAAC,CAAC,CAAC,CAAA;QACd,OAAO,SAAS,EAAE,EAAE,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Shared history-session listing for the SSH TUI: the launch picker and the
3
- * in-app `/resume` command use the same candidates, labels, and ordering, so
4
- * both surfaces offer the same sessions.
2
+ * Shared history-session listing for the SSH TUI: the launch picker's lazy
3
+ * pages and the eager `listResumableSessions` listing use the same candidates,
4
+ * labels, and ordering, so both surfaces offer the same sessions.
5
5
  */
6
6
  import { existsSync } from 'node:fs';
7
7
  import { rm } from 'node:fs/promises';
@@ -182,7 +182,7 @@ function inspectedFromIndex(entry) {
182
182
  * One pass over the store: the header sketch, the cached labels, the attachable
183
183
  * hosts, and an inspection cursor that advances page by page.
184
184
  *
185
- * The lazy pager, the progressive listing and the full `/resume` list all drive
185
+ * The lazy pager, the progressive listing and the eager full listing all drive
186
186
  * this, so the hardening lives in exactly one place: a failed or `detached`
187
187
  * read is never treated as a blank session, and a blank one is only pruned
188
188
  * after it was positively read.
@@ -477,7 +477,7 @@ class ResumableSessionSource {
477
477
  }
478
478
  /**
479
479
  * Persist the labels read so far. Flushed after every page: a picker the user
480
- * closed (or a `/resume` that ran while the Host booted) must not leave the
480
+ * closed (or a listing that ran while the Host booted) must not leave the
481
481
  * next listing without titles again.
482
482
  */
483
483
  async flushIndex() {
@@ -170,9 +170,9 @@ async function queryWindowsProcess(pid) {
170
170
  return undefined;
171
171
  }
172
172
  /**
173
- * Async on purpose: this runs on the TUI's render path (`/resume` lists every
174
- * lock), where a synchronous spawn would freeze painting and keystrokes for
175
- * the whole probe.
173
+ * Async on purpose: this runs on the history-listing path (the picker probes
174
+ * every lock), where a synchronous spawn would freeze painting and keystrokes
175
+ * for the whole probe.
176
176
  */
177
177
  function runPowerShell(exe, script) {
178
178
  return new Promise(resolve => {
@@ -266,8 +266,8 @@ export function windowsProcessMatchesLock(lock, identity, expectedName = hostIma
266
266
  * behavior is kept.
267
267
  *
268
268
  * Async because the Windows probe spawns PowerShell, and this runs on the
269
- * render path (`/resume` inspects every lock); a synchronous spawn would
270
- * freeze painting and keystrokes for the duration of the probe.
269
+ * history-listing path (the picker inspects every lock); a synchronous spawn
270
+ * would freeze painting and keystrokes for the duration of the probe.
271
271
  */
272
272
  export async function lockOwnerIsAlive(lock) {
273
273
  const pid = lock.pid;
package/lib/tui.js CHANGED
@@ -29,8 +29,10 @@ import { commandAcceptsAttachments, forEachSessionEventAsync, isAssistantStreamE
29
29
  import { classifyApprovalDetailed, commandForApprovalRequest, isApprovalStatusArg, parseAutoApprovalMode } from './auto-approval.js';
30
30
  import { buildReviewUserMessage, parseReviewOutput, reviewSystemPrompt } from './approval-reviewer.js';
31
31
  import { loadProviderCatalog, mergeProviderEntries } from './provider-catalog.js';
32
- import { formatFooterCwd, formatSessionTime, listResumableSessions } from './session-list.js';
32
+ import { formatFooterCwd } from './session-list.js';
33
33
  import { collectDiag, formatDiag } from './diag.js';
34
+ import { presetLabel, profileFromArgv } from './preset-label.js';
35
+ import { ensureRosterRows, rosterPatchPath } from './preset-rows.js';
34
36
  import { SessionStatsTracker, statsRowOf } from './stats.js';
35
37
  import { QUESTION_OPTION_KEYS, confirmAnswer, inspectClosesOn, moveQuestionCursor, optionsLength, questionSubmit, selectQuestionOptionByKey, } from './dialogs.js';
36
38
  import { commandSuggestions, localizedCommands } from './commands.js';
@@ -413,13 +415,11 @@ export class SshTui {
413
415
  providerName;
414
416
  selectionRef;
415
417
  subagentSelection;
416
- onSwitchSession;
417
418
  onSelectionChanged;
418
- resumePicker;
419
419
  disposers = [];
420
420
  userQuestionDisposer;
421
421
  presetId = 'standard';
422
- presetName = t('mode.standard');
422
+ presetName = t('mode.preset.standard');
423
423
  useAlternateScreen;
424
424
  agentGone = false;
425
425
  onboarding;
@@ -527,15 +527,13 @@ export class SshTui {
527
527
  this.providerName = config.provider ?? 'deepseek-official';
528
528
  this.selectionRef = config.selectionRef;
529
529
  this.subagentSelection = config.subagentSelection ?? { current: { model: DEFAULT_SUBAGENT_MODEL } };
530
- this.onSwitchSession = config.onSwitchSession;
531
530
  this.onSelectionChanged = config.onSelectionChanged;
532
531
  this.onHangup = config.onHangup;
533
532
  this.onReattach = config.onReattach;
534
533
  this.headlessDisplay = config.headlessDisplay === true;
535
534
  this.disconnectPolicy = config.disconnectPolicy ?? this.readDisconnectPolicy();
536
- this.resumePicker = config.resumePicker === true;
537
535
  this.presetId = config.presetId ?? 'standard';
538
- this.presetName = config.presetName ?? this.presetId;
536
+ this.presetName = presetLabel(this.presetId, config.presetName, config.presetTrust);
539
537
  this.useAlternateScreen = process.env.DSH_TUI_NO_ALT_SCREEN !== '1' && process.env.DSH_TUI_NO_ALT_SCREEN !== 'true';
540
538
  this.paintLink = detectSshSession() ? 'ssh' : 'local';
541
539
  this.paintIntervalMs = resolvePaintIntervalMs(config.paintIntervalMs, process.env, {
@@ -544,6 +542,13 @@ export class SshTui {
544
542
  this.pushRow({ kind: 'brand-logo' });
545
543
  this.pushRow({ kind: 'system', text: t('boot.banner') });
546
544
  this.pushRow({ kind: 'system', text: t('boot.help') });
545
+ // The roster is a profile-layer row, so an install that predates it (or an
546
+ // in-app update, which only runs `dsh plugin add`) boots without one. Say
547
+ // so at boot: the banner's localized default hides the missing service, and
548
+ // the loss is not only `/mode` — the preset-owned tools are absent too.
549
+ if (this.ctx.get('agentPresets') === undefined) {
550
+ this.pushRow({ kind: 'system', text: t('mode.bootMissing') });
551
+ }
547
552
  if (config.cwdNotice !== undefined && config.cwdNotice !== '') {
548
553
  this.pushRow({ kind: /进入|Entered/u.test(config.cwdNotice) ? 'system' : 'error', text: config.cwdNotice });
549
554
  }
@@ -578,9 +583,6 @@ export class SshTui {
578
583
  this.write(`${this.useAlternateScreen ? '\x1b[?1049h' : ''}\x1b[?1000h\x1b[?1006h\x1b[?2004h\x1b[?25l`);
579
584
  this.render();
580
585
  this.updateTerminalTitle();
581
- if (this.resumePicker) {
582
- void this.runResumeCommand('', true);
583
- }
584
586
  void this.calibratePaintInterval().finally(() => {
585
587
  if (this.disposed)
586
588
  return;
@@ -2426,6 +2428,13 @@ export class SshTui {
2426
2428
  addDialog(t('onboard.default', { value: template.defaultId }));
2427
2429
  addDialog(t('onboard.enterEsc'));
2428
2430
  break;
2431
+ case 'key':
2432
+ addDialog(t('onboard.providerLine', { label: providerLabel }));
2433
+ addDialog(t('onboard.keyPrompt'));
2434
+ if (ob.providerType === 'catalog')
2435
+ addDialog(t('onboard.keyCatalogHint'));
2436
+ addDialog(t('onboard.enterEsc'));
2437
+ break;
2429
2438
  case 'base-url':
2430
2439
  addDialog(t('onboard.providerLine', { label: providerLabel }));
2431
2440
  addDialog(t('onboard.basePrompt', {
@@ -5176,8 +5185,28 @@ export class SshTui {
5176
5185
  /** /mode: pick an agent preset (standard / minimal / ptc / cordis / routing-suite / ...). */
5177
5186
  async runModeCommand(arg = '') {
5178
5187
  const agentPresets = this.ctx.get('agentPresets');
5188
+ const direct = arg.trim().toLowerCase();
5189
+ if (direct === 'fix' || direct === 'repair') {
5190
+ await this.repairRoster();
5191
+ return;
5192
+ }
5179
5193
  if (agentPresets === undefined) {
5180
- this.pushRow({ kind: 'error', text: t('mode.missingService') });
5194
+ // A terminal profile built on dsh-base composes no roster, and the
5195
+ // plugin's bundle patch may not mount one; only the profile's user layer
5196
+ // can. Report the exact row and offer the in-app repair: the install
5197
+ // scripts are the checkout path, while an npm install and the in-app
5198
+ // `dsh plugin add` update never run them.
5199
+ const profile = profileFromArgv();
5200
+ this.pushRow({
5201
+ kind: 'error',
5202
+ text: [
5203
+ t('mode.missingService'),
5204
+ t('mode.missingServiceHint', {
5205
+ profile,
5206
+ patch: rosterPatchPath(resolveDshHome(), profile),
5207
+ }),
5208
+ ].join('\n'),
5209
+ });
5181
5210
  this.markDirty();
5182
5211
  return;
5183
5212
  }
@@ -5187,12 +5216,16 @@ export class SshTui {
5187
5216
  this.markDirty();
5188
5217
  return;
5189
5218
  }
5190
- const direct = arg.trim().toLowerCase();
5191
- let selected = direct === ''
5192
- ? undefined
5193
- : presets.find(preset => preset.id.toLowerCase() === direct
5194
- || (preset.name ?? '').toLowerCase() === direct);
5195
- if (selected === undefined && direct !== '') {
5219
+ // Shipped presets resolve through the TUI dictionary; a user-authored one
5220
+ // keeps the name its own preset.yml published.
5221
+ const labels = presets.map(preset => presetLabel(preset.id, preset.name, preset.trust));
5222
+ const matchesDirect = (preset, label) => preset.id.toLowerCase() === direct
5223
+ || (preset.name ?? '').trim().toLowerCase() === direct
5224
+ || label.toLowerCase() === direct;
5225
+ let index = direct === ''
5226
+ ? -1
5227
+ : presets.findIndex((preset, at) => matchesDirect(preset, labels[at] ?? preset.id));
5228
+ if (index < 0 && direct !== '') {
5196
5229
  this.pushRow({
5197
5230
  kind: 'error',
5198
5231
  text: t('mode.unknown', { id: arg.trim(), available: presets.map(preset => preset.id).join(', ') }),
@@ -5200,20 +5233,31 @@ export class SshTui {
5200
5233
  this.markDirty();
5201
5234
  return;
5202
5235
  }
5203
- if (selected === undefined) {
5236
+ if (index < 0 && direct === '') {
5204
5237
  const answer = await this.askQuestion({
5205
5238
  id: 'mode-pick',
5206
5239
  question: t('mode.pick'),
5207
- options: presets.map(preset => ({
5208
- label: preset.name ?? preset.id,
5209
- description: `${preset.id === this.presetId ? t('mode.currentPrefix') : ''}${preset.description ?? ''}`.trim(),
5240
+ options: presets.map((preset, at) => ({
5241
+ label: labels[at] ?? preset.id,
5242
+ description: `${preset.id === this.presetId ? t('mode.currentPrefix') : ''}${preset.broken === undefined ? preset.description ?? '' : t('mode.brokenSuffix', { reason: preset.broken })}`.trim(),
5210
5243
  })),
5211
5244
  });
5212
- selected = presets.find(preset => (preset.name ?? preset.id) === answer.selected[0]);
5245
+ index = labels.indexOf(answer.selected[0] ?? '');
5213
5246
  }
5247
+ if (index < 0)
5248
+ return;
5249
+ const selected = presets[index];
5214
5250
  if (selected === undefined)
5215
5251
  return;
5216
- const selectedName = selected.name ?? selected.id;
5252
+ if (selected.broken !== undefined) {
5253
+ this.pushRow({
5254
+ kind: 'error',
5255
+ text: t('mode.broken', { name: labels[index] ?? selected.id, reason: selected.broken }),
5256
+ });
5257
+ this.markDirty();
5258
+ return;
5259
+ }
5260
+ const selectedName = labels[index] ?? selected.id;
5217
5261
  const hasWork = sessionEvents(this.agent.session).some(event => event.type === 'turn/start');
5218
5262
  if (!hasWork) {
5219
5263
  await agentPresets.recompose(this.agent.ctx, selected.id);
@@ -5230,69 +5274,27 @@ export class SshTui {
5230
5274
  await this.ctx.get('settings')?.update(settingsNamespace('agent-presets'), { default: selected.id });
5231
5275
  this.markDirty();
5232
5276
  }
5233
- /** /resume: switch to a past session, or open a picker when no id is given. */
5234
- async runResumeCommand(arg, fromLaunch = false) {
5235
- const target = arg.trim();
5236
- if (!fromLaunch && this.agent.status === 'running') {
5237
- this.pushRow({ kind: 'error', text: t('resume.running') });
5238
- this.markDirty();
5239
- return;
5240
- }
5241
- if (target !== '') {
5242
- if (target === String(this.agent.id)) {
5243
- this.pushRow({ kind: 'system', text: t('resume.same') });
5244
- this.markDirty();
5245
- return;
5246
- }
5247
- if (this.onSwitchSession === undefined) {
5248
- this.pushRow({ kind: 'error', text: t('resume.noCallback') });
5249
- this.markDirty();
5250
- return;
5251
- }
5252
- this.pushRow({ kind: 'system', text: t('resume.switching', { id: target }) });
5253
- this.markDirty();
5254
- await this.onSwitchSession(target);
5255
- return;
5256
- }
5257
- const persistence = this.ctx.get('sessionPersistence');
5258
- if (persistence === undefined) {
5259
- this.pushRow({ kind: 'error', text: t('resume.noPersistence') });
5260
- this.markDirty();
5261
- return;
5262
- }
5263
- const inspected = await listResumableSessions(persistence, String(this.agent.id));
5264
- if (inspected.length === 0) {
5265
- this.pushRow({ kind: 'system', text: t('resume.none') });
5266
- this.markDirty();
5267
- return;
5268
- }
5269
- const labelCount = new Map();
5270
- for (const item of inspected) {
5271
- labelCount.set(item.label, (labelCount.get(item.label) ?? 0) + 1);
5277
+ /**
5278
+ * `/mode fix`: write the roster row into this profile's user patch layer.
5279
+ *
5280
+ * The write only takes effect on the next launch — the loader composes the
5281
+ * patch tree once at boot — so the report says so instead of pretending the
5282
+ * running session gained a roster.
5283
+ */
5284
+ async repairRoster() {
5285
+ const profile = profileFromArgv();
5286
+ const patch = rosterPatchPath(resolveDshHome(), profile);
5287
+ try {
5288
+ const result = await ensureRosterRows(resolveDshHome(), profile);
5289
+ this.pushRow({
5290
+ kind: 'system',
5291
+ text: result === 'present' ? t('mode.fixPresent', { patch }) : t('mode.fixWritten', { patch }),
5292
+ });
5272
5293
  }
5273
- const choices = inspected.map(item => ({
5274
- item,
5275
- label: (labelCount.get(item.label) ?? 0) > 1 ? `${item.label} · ${item.id}` : item.label,
5276
- description: `${item.unreadable === true ? t('resume.unreadable') : ''}${formatSessionTime(item.updatedAt)} · ${item.cwd}`,
5277
- }));
5278
- const answer = await this.askQuestion({
5279
- id: 'resume-pick',
5280
- question: inspected.length > PICKER_WINDOW
5281
- ? t('resume.pickMany', { count: inspected.length })
5282
- : t('resume.pick'),
5283
- options: choices.map(choice => ({ label: choice.label, description: choice.description })),
5284
- });
5285
- const picked = choices.find(choice => choice.label === answer.selected[0])?.item;
5286
- if (picked === undefined)
5287
- return;
5288
- if (this.onSwitchSession === undefined) {
5289
- this.pushRow({ kind: 'error', text: t('resume.noCallback') });
5290
- this.markDirty();
5291
- return;
5294
+ catch (error) {
5295
+ this.pushRow({ kind: 'error', text: t('mode.fixFailed', { patch, error: errorChain(error) }) });
5292
5296
  }
5293
- this.pushRow({ kind: 'system', text: t('resume.switching', { id: picked.id }) });
5294
5297
  this.markDirty();
5295
- await this.onSwitchSession(picked.id);
5296
5298
  }
5297
5299
  /** Current provider route selected for the running agent. */
5298
5300
  currentProvider() {
@@ -6916,17 +6918,6 @@ export class SshTui {
6916
6918
  }
6917
6919
  break;
6918
6920
  }
6919
- case 'resume':
6920
- void this.runResumeCommand(arg).catch((error) => {
6921
- if (error instanceof UserQuestionError) {
6922
- this.pushRow({ kind: 'system', text: t('resume.cancelled') });
6923
- }
6924
- else {
6925
- this.pushRow({ kind: 'error', text: t('cmd.failedNamed', { command: 'resume', error: errorChain(error) }) });
6926
- }
6927
- this.markDirty();
6928
- });
6929
- break;
6930
6921
  case 'approval': {
6931
6922
  const requested = arg.trim() === '' ? 'toggle' : arg.trim();
6932
6923
  if (isApprovalStatusArg(requested)) {