xiaotime 0.5.1 → 0.5.4

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.
Files changed (50) hide show
  1. package/dist/__tests__/ansi_tags.test.d.ts +9 -0
  2. package/dist/__tests__/ansi_tags.test.d.ts.map +1 -0
  3. package/dist/__tests__/ansi_tags.test.js +58 -0
  4. package/dist/__tests__/ansi_tags.test.js.map +1 -0
  5. package/dist/__tests__/paste_transform_submit.test.d.ts +2 -0
  6. package/dist/__tests__/paste_transform_submit.test.d.ts.map +1 -0
  7. package/dist/__tests__/paste_transform_submit.test.js +74 -0
  8. package/dist/__tests__/paste_transform_submit.test.js.map +1 -0
  9. package/dist/__tests__/session_match.test.d.ts +10 -0
  10. package/dist/__tests__/session_match.test.d.ts.map +1 -0
  11. package/dist/__tests__/session_match.test.js +55 -0
  12. package/dist/__tests__/session_match.test.js.map +1 -0
  13. package/dist/ansi_tags.d.ts +20 -0
  14. package/dist/ansi_tags.d.ts.map +1 -0
  15. package/dist/ansi_tags.js +38 -0
  16. package/dist/ansi_tags.js.map +1 -0
  17. package/dist/config.d.ts +1 -1
  18. package/dist/config.js +1 -1
  19. package/dist/display.d.ts +53 -22
  20. package/dist/display.d.ts.map +1 -1
  21. package/dist/display.js +750 -47
  22. package/dist/display.js.map +1 -1
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +34 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/session.d.ts.map +1 -1
  28. package/dist/session.js +5 -2
  29. package/dist/session.js.map +1 -1
  30. package/dist/session_match.d.ts +19 -0
  31. package/dist/session_match.d.ts.map +1 -0
  32. package/dist/session_match.js +9 -0
  33. package/dist/session_match.js.map +1 -0
  34. package/dist/sidebar.d.ts +84 -0
  35. package/dist/sidebar.d.ts.map +1 -0
  36. package/dist/sidebar.js +310 -0
  37. package/dist/sidebar.js.map +1 -0
  38. package/dist/tools.d.ts +4 -0
  39. package/dist/tools.d.ts.map +1 -1
  40. package/dist/tools.js +25 -66
  41. package/dist/tools.js.map +1 -1
  42. package/dist/ui_state.d.ts +41 -96
  43. package/dist/ui_state.d.ts.map +1 -1
  44. package/dist/ui_state.js +226 -213
  45. package/dist/ui_state.js.map +1 -1
  46. package/dist/ws.d.ts +10 -14
  47. package/dist/ws.d.ts.map +1 -1
  48. package/dist/ws.js +240 -119
  49. package/dist/ws.js.map +1 -1
  50. package/package.json +10 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../src/sidebar.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AAEH,sDAA8B;AAC9B,kDAA0B;AAC1B,mCAAkC;AAClC,iDAAmD;AAEnD,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,aAAa,GAAG,IAAI,CAAC;AAgB3B,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,MAAa,aAAa;IAChB,MAAM,CAA0B;IAChC,OAAO,CAAuB;IAC9B,WAAW,CAAuB;IAClC,SAAS,CAA8B;IAEvC,cAAc,GAAG,IAAI,CAAC;IACtB,QAAQ,GAAuB;QACrC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO;QAC1E,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,IAAI;KACf,CAAC;IAEM,aAAa,GAAa,EAAE,CAAC;IAC7B,eAAe,GAA0C,IAAI,CAAC;IAC9D,YAAY,GAAG,CAAC,CAAC;IACjB,cAAc,GAAG,KAAK,CAAC;IACvB,SAAS,GAAG,KAAK,CAAC;IAE1B,4DAA4D;IAC5C,UAAU,CAAW;IAErC;QACE,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAQ,CAAC;YAC7B,KAAK,CAAC,KAAsB,EAAE,IAAoB,EAAE,EAAc;gBAChE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjC,EAAE,EAAE,CAAC;YACP,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,iBAAO,CAAC,MAAM,CAAC;YAC3B,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAe,CAAC;QACtC,IAAI,CAAC,GAAG,qBAAqB;YAAE,OAAO,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;IACvC,CAAC;IAEO,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAgB,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAI,IAAI,CAAC,MAAM,CAAC,KAAgB,GAAG,EAAE,CAAC;QAE9C,yBAAyB;QACzB,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,GAAG,CAAC;YACzB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI,GAAG,CAAC;YAChB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;YAChD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;SACxC,CAAC,CAAC;QAEH,gCAAgC;QAChC,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC,GAAG,CAAC;YAC7B,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI,GAAG,CAAC;YAChB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,KAAK,CAAC;YACxC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;YACvC,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;aACb;YACD,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QAEH,oCAAoC;QACpC,IAAI,CAAC,SAAS,GAAG,iBAAO,CAAC,GAAG,CAAC;YAC3B,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;SACxC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,2CAA2C;QAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,aAAa;IACb,8EAA8E;IAE9E,SAAS,CAAC,IAAY;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,gCAAiB,EAAC,IAAI,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,KAAoB;QAC9B,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,GAAG,gCAAgC,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACjH,CAAC;qBAAM,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAClC,IAAI,GAAG,gCAAgC,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACnI,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,gCAAgC,KAAK,CAAC,IAAI,KAAK,CAAC;gBACzD,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC5B,IAAI,GAAG,6CAA6C,CAAC;oBACrD,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,GAAG,eAAe,KAAK,CAAC,IAAI,KAAK,CAAC;gBACtC,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,KAAe;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,SAAkB;QAC7B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAe,CAAC;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAExB,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAClE,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW;YAC3B,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,KAAK;YACnC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;QAC/D,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,KAAK,WAAW,CAAC;QAChD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ;YACzB,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,KAAK;YAClC,CAAC,CAAC,sBAAsB,CAAC;QAC3B,MAAM,GAAG,GAAG,oBAAoB,CAAC;QACjC,MAAM,QAAQ,GAAG,8BAA8B,CAAC;QAEhD,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/J,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;QACjH,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAEO,oBAAoB;QAC1B,0EAA0E;QAC1E,yEAAyE;QACzE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAGD;;;OAGG;IACH,eAAe;QACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,qEAAqE;YACrE,6CAA6C;YAC7C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,qDAAqD;YACrD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,IACE,eAAK,CAAC,KAAK,KAAK,CAAC;YACjB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,SAAS;gBACrB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAC1B,CAAC;YACD,eAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,GAAW;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO;QACrC,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,8DAA8D;QAChE,CAAC;IACH,CAAC;CACF;AA3TD,sCA2TC"}
package/dist/tools.d.ts CHANGED
@@ -10,6 +10,10 @@
10
10
  *
11
11
  * Read-only tools (`read_file`, `list_directory`, `git_status`,
12
12
  * `git_diff`) never gate (ISC-6509-006).
13
+ *
14
+ * SPRINT-CLI-BLESSED-SIDEBAR-1:
15
+ * - write_file: uses printFileDiff (styled diff box) instead of raw chalk createPatch
16
+ * - shell_command, git_commit: uses printApprovalPrompt (yellow bordered box)
13
17
  */
14
18
  import type { SessionUI } from "./ui_state.js";
15
19
  export interface ToolCall {
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAS/C,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAiBD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACrF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,aAAa,EAAE,iBAAiB,EAiF5C,CAAC;AAIF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,QAExC;AA2ED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,UAAU,CAAC,CAwMrB"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAS/C,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAiBD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACrF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,aAAa,EAAE,iBAAiB,EAiF5C,CAAC;AAIF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,QAExC;AAsED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,UAAU,CAAC,CAkMrB"}
package/dist/tools.js CHANGED
@@ -11,6 +11,10 @@
11
11
  *
12
12
  * Read-only tools (`read_file`, `list_directory`, `git_status`,
13
13
  * `git_diff`) never gate (ISC-6509-006).
14
+ *
15
+ * SPRINT-CLI-BLESSED-SIDEBAR-1:
16
+ * - write_file: uses printFileDiff (styled diff box) instead of raw chalk createPatch
17
+ * - shell_command, git_commit: uses printApprovalPrompt (yellow bordered box)
14
18
  */
15
19
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
20
  if (k2 === undefined) k2 = k;
@@ -55,8 +59,8 @@ exports.executeTool = executeTool;
55
59
  const fs = __importStar(require("fs"));
56
60
  const path = __importStar(require("path"));
57
61
  const child_process = __importStar(require("child_process"));
58
- const diff_1 = require("diff");
59
62
  const chalk_1 = __importDefault(require("chalk"));
63
+ const display_js_1 = require("./display.js");
60
64
  const settings_js_1 = require("./settings.js");
61
65
  exports.TOOL_MANIFEST = [
62
66
  {
@@ -154,34 +158,26 @@ function resolvePath(p) {
154
158
  * SessionUI menu; if the user chose "Run and don't ask again",
155
159
  * persists the derived pattern.
156
160
  *
157
- * The header is printed in both paths (allowlist hit + menu prompt)
158
- * so the user always sees what's about to run. The `(auto-approved)`
159
- * indicator is appended to the caller's post-execute status line
160
- * not added by this helper so tool-specific status text
161
- * (`✓ Written` / `✓ Ran` / `✓ Committed`) stays where the tool
162
- * defines it.
161
+ * SPRINT-CLI-BLESSED-SIDEBAR-1: header is now a plain string passed
162
+ * to printApprovalPrompt() by each tool case _gateApproval no longer
163
+ * writes raw chalk output itself. The allowlist-hit path still writes
164
+ * via printApprovalPrompt so the styled yellow box appears in both paths.
163
165
  */
164
- async function _gateApproval(ui, tool, input, header) {
166
+ async function _gateApproval(ui, tool, input, title, body) {
165
167
  const allowlist = (0, settings_js_1.loadAllowlist)();
166
168
  const match = (0, settings_js_1.matchAllowlist)(tool, input, allowlist);
169
+ // Always show the styled approval box — auto-approved or not
170
+ (0, display_js_1.printApprovalPrompt)(title, body);
167
171
  if (match) {
168
- // Print the header so the user sees what's about to run, then
169
- // short-circuit the menu.
170
- process.stdout.write(header);
171
172
  return { approved: true, autoApproved: true };
172
173
  }
173
- const result = await ui.promptApprovalMenu(header);
174
+ const result = await ui.promptApprovalMenu("");
174
175
  if (!result.approved) {
175
176
  return { approved: false, rejectReason: result.rejectReason };
176
177
  }
177
178
  if (result.allowlistRequested) {
178
179
  const pattern = (0, settings_js_1.derivePattern)(tool, input);
179
180
  if (pattern !== null) {
180
- // #6538 CR-r1: wrap the persist call so a disk-full /
181
- // permission-denied / chmod failure doesn't abort the tool
182
- // run. The user already approved the action; the allowlist
183
- // write is a UX convenience, not a correctness gate. Log a
184
- // yellow warning to stderr so the failure isn't silent.
185
181
  try {
186
182
  (0, settings_js_1.appendAllowlist)({ tool, pattern });
187
183
  process.stdout.write(chalk_1.default.dim(` (allowlist updated: ${tool} → ${pattern})\n`));
@@ -218,22 +214,15 @@ async function executeTool(call, ui) {
218
214
  case "write_file": {
219
215
  const filePath = resolvePath(input.path);
220
216
  const newContent = input.content;
221
- let oldContent = "";
217
+ let oldContent = null;
222
218
  if (fs.existsSync(filePath)) {
223
219
  oldContent = fs.readFileSync(filePath, "utf-8");
224
220
  }
225
- const patch = (0, diff_1.createPatch)(filePath, oldContent, newContent);
226
- const lines = patch.split("\n").slice(4); // skip header
227
- const colored = lines.map((l) => {
228
- if (l.startsWith("+"))
229
- return chalk_1.default.green(l);
230
- if (l.startsWith("-"))
231
- return chalk_1.default.red(l);
232
- return chalk_1.default.dim(l);
233
- });
234
- const header = chalk_1.default.yellow(`\n[write_file] ${filePath}\n`) +
235
- colored.join("\n") + "\n";
236
- const gate = await _gateApproval(ui, "write_file", input, header);
221
+ // Show styled diff box before the approval gate
222
+ (0, display_js_1.printFileDiff)(filePath, oldContent, newContent);
223
+ const gate = await _gateApproval(ui, "write_file", input, `write_file ${filePath}`, oldContent === null
224
+ ? `New file — ${newContent.split("\n").length} lines`
225
+ : `Modifying existing file`);
237
226
  if (!gate.approved) {
238
227
  const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
239
228
  return {
@@ -244,7 +233,7 @@ async function executeTool(call, ui) {
244
233
  }
245
234
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
246
235
  fs.writeFileSync(filePath, newContent, "utf-8");
247
- console.log(chalk_1.default.green(` ✓ Written`) + _approvedSuffix(gate));
236
+ console.log(chalk_1.default.hex("#a6e3a1")(" ✓ Written") + _approvedSuffix(gate));
248
237
  return { tool_use_id, content: `File written: ${filePath}`, is_error: false };
249
238
  }
250
239
  case "list_directory": {
@@ -252,19 +241,11 @@ async function executeTool(call, ui) {
252
241
  const pattern = input.pattern;
253
242
  const recursive = input.recursive;
254
243
  // SPRINT-CLI-INPUT-AND-TOOL-HARDENING-1 (#7299) PR1 — bounded
255
- // result size. Pre-cap, calling on a 298k-entry directory built
256
- // a multi-MB tool result that the downstream POST rejected as a
257
- // bare `Error:` line with no actionable detail. The brain also
258
- // has no use for 300k filenames in its context window. Cap at
259
- // _listDirectoryMax() (default 500, override via env), append a
260
- // truncation marker the brain reads as "narrow your search."
244
+ // result size.
261
245
  const cap = _listDirectoryMax();
262
246
  let entries;
263
247
  let truncated = false;
264
248
  if (recursive) {
265
- // listRecursive early-exits at cap+1 so we walk at most one
266
- // extra entry to know "more exist" — avoids enumerating
267
- // 300k entries when we'll only ship 500.
268
249
  entries = listRecursive(dirPath, pattern, cap + 1);
269
250
  if (entries.length > cap) {
270
251
  entries = entries.slice(0, cap);
@@ -281,9 +262,6 @@ async function executeTool(call, ui) {
281
262
  const regex = globToRegex(pattern);
282
263
  raw = raw.filter((e) => regex.test(e));
283
264
  }
284
- // Cap AFTER the pattern filter so the user's `*.py` request
285
- // against a 300k-entry dir returns the first 500 matching
286
- // .py files, not "the first 500 entries, then filtered."
287
265
  if (raw.length > cap) {
288
266
  entries = raw.slice(0, cap);
289
267
  truncated = true;
@@ -302,9 +280,7 @@ async function executeTool(call, ui) {
302
280
  case "shell_command": {
303
281
  const command = input.command;
304
282
  const cwd = input.cwd ? resolvePath(input.cwd) : sessionCwd;
305
- const header = chalk_1.default.yellow(`\n[shell_command] ${command}\n`) +
306
- chalk_1.default.dim(` cwd: ${cwd}\n`);
307
- const gate = await _gateApproval(ui, "shell_command", input, header);
283
+ const gate = await _gateApproval(ui, "shell_command", input, `shell_command`, `${command}\ncwd: ${cwd}`);
308
284
  if (!gate.approved) {
309
285
  const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
310
286
  return {
@@ -319,7 +295,7 @@ async function executeTool(call, ui) {
319
295
  stdio: ["pipe", "pipe", "pipe"],
320
296
  timeout: 60000,
321
297
  });
322
- console.log(chalk_1.default.green(` ✓ Ran`) + _approvedSuffix(gate));
298
+ console.log(chalk_1.default.hex("#a6e3a1")(" ✓ Ran") + _approvedSuffix(gate));
323
299
  console.log(chalk_1.default.dim(result.slice(0, 500)));
324
300
  return { tool_use_id, content: result, is_error: false };
325
301
  }
@@ -345,15 +321,11 @@ async function executeTool(call, ui) {
345
321
  }
346
322
  case "git_commit": {
347
323
  const message = input.message;
348
- // Show what's staged
349
324
  const staged = child_process.execSync("git diff --staged --stat", {
350
325
  cwd: sessionCwd,
351
326
  encoding: "utf-8",
352
327
  });
353
- const header = chalk_1.default.yellow(`\n[git_commit]\n`) +
354
- chalk_1.default.dim(`Staged:\n${staged}\n`) +
355
- chalk_1.default.dim(`Message: ${message}\n`);
356
- const gate = await _gateApproval(ui, "git_commit", input, header);
328
+ const gate = await _gateApproval(ui, "git_commit", input, `git_commit`, `Message: ${message}\n\nStaged:\n${staged}`);
357
329
  if (!gate.approved) {
358
330
  const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
359
331
  return {
@@ -363,7 +335,7 @@ async function executeTool(call, ui) {
363
335
  };
364
336
  }
365
337
  const out = child_process.execSync(`git commit -m ${JSON.stringify(message)}`, { cwd: sessionCwd, encoding: "utf-8" });
366
- console.log(chalk_1.default.green(` ✓ Committed`) + _approvedSuffix(gate));
338
+ console.log(chalk_1.default.hex("#a6e3a1")(" ✓ Committed") + _approvedSuffix(gate));
367
339
  return { tool_use_id, content: out, is_error: false };
368
340
  }
369
341
  default:
@@ -380,11 +352,6 @@ async function executeTool(call, ui) {
380
352
  }
381
353
  }
382
354
  function listRecursive(dir, pattern, cap) {
383
- // SPRINT-CLI-INPUT-AND-TOOL-HARDENING-1 (#7299) PR1 — optional `cap`
384
- // early-exits the walk when `results.length >= cap`. The list_directory
385
- // tool passes `cap+1` (one more than its display cap) so the caller can
386
- // distinguish "exactly cap" from "more than cap exist" without walking
387
- // the rest of a 300k-entry tree.
388
355
  const results = [];
389
356
  const regex = pattern ? globToRegex(pattern) : null;
390
357
  function walk(current, rel) {
@@ -412,14 +379,6 @@ function listRecursive(dir, pattern, cap) {
412
379
  walk(dir, "");
413
380
  return results;
414
381
  }
415
- /**
416
- * Resolve the list_directory entry cap. Default 500. Override via
417
- * XIAOTIME_LIST_DIRECTORY_MAX env (positive integer). SPRINT-CLI-INPUT-
418
- * AND-TOOL-HARDENING-1 (#7299) PR1 — Decision D3: 500 covers 99% of
419
- * real directory inspections, leaves headroom in the tool-result
420
- * payload for the brain's context, and forces the brain to explicitly
421
- * narrow large trees rather than getting a 300k-entry flood.
422
- */
423
382
  function _listDirectoryMax() {
424
383
  const raw = process.env.XIAOTIME_LIST_DIRECTORY_MAX;
425
384
  if (raw) {
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -1,54 +1,39 @@
1
1
  /**
2
2
  * Session-UI state machine for the xiaotime dev CLI.
3
3
  *
4
- * SPRINT-CLI-STATE-MACHINE-1 (#6163 / closes #6127) shipped the original
5
- * state machine + raw-mode approval prompt. That fix eliminated the
6
- * defaults-to-N half of the "yy" double-echo bug but the visible-yy half
7
- * persisted because `readline.createInterface({ terminal: true })` attaches
8
- * its own keypress handler to stdin that echoes characters via its own
9
- * stdout writes; `rl.pause()` stops `line` events but does NOT detach that
10
- * echo path, and `setRawMode(true)` only suppresses kernel-level echo, not
11
- * readline's.
4
+ * SPRINT-CLI-STATE-MACHINE-1 (#6163 / closes #6127)
5
+ * SPRINT-CLI-APPROVAL-MENU-1 (#6509)
6
+ * SPRINT-CLI-INPUT-AND-TOOL-HARDENING-1 (#7299) PR2
7
+ * SPRINT-CLI-PASTE-MODE-4 push-based paste interception.
12
8
  *
13
- * SPRINT-CLI-APPROVAL-MENU-1 (#6509) replaces `promptApproval`'s `[y/N]`
14
- * one-shot prompt with `promptApprovalMenu` — a three-option numbered menu
15
- * (Run / Run + allowlist / Reject + feedback). The rl is explicitly
16
- * **closed and recreated** around the menu render so its keypress echo
17
- * physically can't fire (the rl object is gone for the duration of the
18
- * menu). Persistent close listeners survive the recreation via
19
- * `onRlClose()` — callers that need a stable close hook register through
20
- * that instead of `getRl().on("close", ...)`.
9
+ * Two strategies run together:
21
10
  *
22
- * SPRINT-CLI-INPUT-AND-TOOL-HARDENING-1 (#7299) PR2 closes a follow-up
23
- * leak in the above recreation path: Node's `rl.close()` doesn't reliably
24
- * detach the prior rl's keypress listener from stdin when raw mode was
25
- * toggled mid-cycle. Each surviving listener echoes keystrokes
26
- * independently, so N approval-menu cycles produced ~N+1 character
27
- * multiplication. `_makeRl` now strips leftover `keypress` listeners
28
- * before attaching a new rl — full rationale + rejected alternatives on
29
- * `_makeRl` below + in issue #7299 Decisions log (D4, D5).
11
+ * 1. Bracketed paste (ESC[200~ / ESC[201~) the clean path. When the
12
+ * terminal sends these markers the PasteTransform buffers everything
13
+ * between them, collapses newlines, and emits a single block. Readline
14
+ * never sees a raw newline, so it cannot auto-submit.
30
15
  *
31
- * The state machine has four states:
16
+ * 2. Rapid-chunk coalescing the fallback. When bracketed paste mode is
17
+ * not supported by the terminal (Termius, older SSH clients) chunks
18
+ * arriving with gaps < RAPID_PASTE_GAP_MS are held in a buffer.
19
+ * After RAPID_PASTE_IDLE_MS of silence the buffer is flushed as a
20
+ * single block with internal newlines collapsed.
32
21
  *
33
- * IDLE — at the `you:` prompt, awaiting user input.
34
- * GENERATING — model is streaming tokens (or about to). Spinner.
35
- * RUNNING_TOOL — a server-side tool is running. Spinner.
36
- * AWAITING_APPROVAL user must navigate the approval menu for a
37
- * client-side tool. Main rl is closed; raw stdin
38
- * captures keystrokes.
22
+ * Root-cause fix (PASTE-MODE-4): readline must NOT receive the
23
+ * PasteTransform stream directly as `input` with `terminal: true`.
24
+ * When readline sees a Transform as input in terminal mode it internally
25
+ * calls readline.emitKeypressEvents() on that stream, which installs its
26
+ * own `data` listener that fires keypress events — including \r/\n — before
27
+ * our _transform() can intercept them.
39
28
  *
40
- * The WS handler in `ws.ts` is the sole driver. Transitions:
41
- *
42
- * IDLE -- user line received -> GENERATING
43
- * GENERATING -- text_delta -> GENERATING (refresh)
44
- * GENERATING -- tool_call (server) -> RUNNING_TOOL
45
- * GENERATING -- tool_call (client+approval) -> AWAITING_APPROVAL
46
- * AWAITING_APPROVAL -- menu selection -> RUNNING_TOOL
47
- * RUNNING_TOOL -- tool_result sent -> GENERATING
48
- * GENERATING -- message_stop -> IDLE
49
- * ANY -- error -> IDLE
29
+ * Solution: push-based forwarding. PasteTransform processes chunks from
30
+ * stdin and pushes safe output into a PassThrough. Readline reads from the
31
+ * PassThrough. readline.emitKeypressEvents() is called on the PassThrough,
32
+ * which only ever sees already-safe data — newlines inside paste blocks have
33
+ * already been collapsed to spaces.
50
34
  */
51
35
  import * as readline from "readline";
36
+ import { Transform, PassThrough } from "stream";
52
37
  export type CliState = "idle" | "generating" | "running_tool" | "awaiting_approval";
53
38
  export type ApprovalMenuResult = {
54
39
  approved: true;
@@ -57,6 +42,19 @@ export type ApprovalMenuResult = {
57
42
  approved: false;
58
43
  rejectReason: string;
59
44
  };
45
+ export declare class PasteTransform extends Transform {
46
+ private _inBracketedPaste;
47
+ private _bracketedBuf;
48
+ private _rapidBuf;
49
+ private _lastChunkAt;
50
+ private _rapidTimer;
51
+ readonly sink: PassThrough;
52
+ constructor();
53
+ _transform(chunk: Buffer, _enc: string, cb: () => void): void;
54
+ private _scheduleRapidFlush;
55
+ private _flushRapidBuf;
56
+ _flush(cb: () => void): void;
57
+ }
60
58
  export declare class SessionUI {
61
59
  private state;
62
60
  private spinnerTimer;
@@ -66,67 +64,18 @@ export declare class SessionUI {
66
64
  private spinnerLineDirty;
67
65
  private rl;
68
66
  private lineListener;
69
- /**
70
- * Close-listener callbacks that should survive rl recreations. The
71
- * approval-menu path closes + recreates `rl` to physically detach
72
- * readline's keypress echo. ws.ts registers its "Session paused"
73
- * resume hint here so it stays attached across recreations.
74
- */
75
67
  private closeListeners;
68
+ private _pasteTransform;
76
69
  constructor();
77
- /** Hand the underlying readline to callers that need it for cleanup. */
78
70
  getRl(): readline.Interface;
79
- /**
80
- * Register a callback to fire when the rl reports a non-suppressed
81
- * `close` event (the only one users observe is Ctrl+C at the main
82
- * prompt — close-during-approval is suppressed via removeAllListeners
83
- * before `rl.close()`). Callbacks are re-attached on every rl
84
- * recreation so they outlive `promptApprovalMenu`.
85
- */
86
71
  onRlClose(listener: () => void): void;
87
- /** Set the explicit current state. Drives spinner start/stop. */
88
72
  setState(next: CliState): void;
89
73
  getState(): CliState;
90
- /** Wait for one line of user input on the main rl. */
91
74
  promptLine(): Promise<string>;
92
- /**
93
- * Three-option numbered approval menu. Replaces the pre-#6509
94
- * `[y/N]` one-shot prompt.
95
- *
96
- * Visual:
97
- * ❯ 1. Run
98
- * 2. Run and don't ask again
99
- * 3. Reject and tell Claude why
100
- * (1-3, ↑↓ Enter, Esc to reject)
101
- *
102
- * Controls:
103
- * - Number key 1/2/3 — one-shot select
104
- * - Arrow Up/Down — move focus
105
- * - Enter — select focused
106
- * - Esc — equivalent to option 3 (reject)
107
- * - Ctrl+C — reject + propagate SIGINT (cancels session)
108
- *
109
- * The rl is closed before the menu render and recreated after. This
110
- * physically removes readline's keypress echo from stdin for the
111
- * duration of the menu — the bug fix the #6163 patch attempted via
112
- * `rl.pause()` (which only stops `line` events, not the keypress
113
- * echo). Persistent close listeners are stashed in
114
- * `this.closeListeners` and re-attached on recreate; the close event
115
- * triggered by THIS close() is suppressed via removeAllListeners
116
- * before the call so it doesn't fire the "Session paused" hint.
117
- *
118
- * For option 3, after the menu resolves the recreated rl prompts
119
- * once for a free-form rejection reason (line-mode). Empty input is
120
- * allowed.
121
- *
122
- * The returned `allowlistRequested: true` (option 2) is a signal to
123
- * the caller — PR2 wires it to write the pattern to
124
- * `~/.xiaotime/settings.json`. PR1 callers may ignore it.
125
- */
126
75
  promptApprovalMenu(toolHeader?: string): Promise<ApprovalMenuResult>;
76
+ private _destroyPasteTransform;
127
77
  private _makeRl;
128
78
  private _renderMenuAndGetSelection;
129
- /** Total lines the menu occupies: one per option + one hint line. */
130
79
  private _menuLineCount;
131
80
  private _renderMenu;
132
81
  private _rerenderMenu;
@@ -134,10 +83,6 @@ export declare class SessionUI {
134
83
  private startSpinner;
135
84
  private renderSpinnerFrame;
136
85
  private stopSpinner;
137
- /** Called by the text_delta renderer the first time a real model
138
- * token arrives during a `generating` state. Clears the spinner so
139
- * the token prints cleanly, but leaves the state at `generating`
140
- * (token streaming continues without re-spinning). */
141
86
  onFirstToken(): void;
142
87
  }
143
88
  //# sourceMappingURL=ui_state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui_state.d.ts","sourceRoot":"","sources":["../src/ui_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,YAAY,GACZ,cAAc,GACd,mBAAmB,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAa9C,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAAM;IAK1B,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,YAAY,CAAyC;IAC7D;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAyB;;IAM/C,wEAAwE;IACxE,KAAK,IAAI,QAAQ,CAAC,SAAS;IAI3B;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKrC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAoB9B,QAAQ,IAAI,QAAQ;IAIpB,sDAAsD;IACtD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAe7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgD1E,OAAO,CAAC,OAAO;YAuDD,0BAA0B;IAmIxC,qEAAqE;IACrE,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,WAAW;IAYnB;;;0DAGsD;IACtD,YAAY,IAAI,IAAI;CAUrB"}
1
+ {"version":3,"file":"ui_state.d.ts","sourceRoot":"","sources":["../src/ui_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGhD,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,YAAY,GACZ,cAAc,GACd,mBAAmB,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AA0C9C,qBAAa,cAAe,SAAQ,SAAS;IAE3C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAM;IAG3B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAA+B;IAGlD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;;IAS3B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAkE7D,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,cAAc;IActB,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;CAW7B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,cAAc,CAAyB;IAE/C,OAAO,CAAC,eAAe,CAA+B;;IAUtD,KAAK,IAAI,QAAQ,CAAC,SAAS;IAI3B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAgB9B,QAAQ,IAAI,QAAQ;IAIpB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAcvB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoC1E,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,OAAO;YAqCD,0BAA0B;IA4ExC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,WAAW;IAYnB,YAAY,IAAI,IAAI;CAWrB"}