erosolar-cli 2.1.247 → 2.1.249
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/dist/capabilities/orchestrationCapability.d.ts +175 -3
- package/dist/capabilities/orchestrationCapability.d.ts.map +1 -1
- package/dist/capabilities/orchestrationCapability.js +614 -85
- package/dist/capabilities/orchestrationCapability.js.map +1 -1
- package/dist/core/agentOrchestrator.d.ts.map +1 -1
- package/dist/core/agentOrchestrator.js +18 -1
- package/dist/core/agentOrchestrator.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +4 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +40 -19
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +16 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +74 -16
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/package.json +2 -2
|
@@ -95,6 +95,9 @@ export declare class UnifiedUIRenderer extends EventEmitter {
|
|
|
95
95
|
private pasteBurstWindowStart;
|
|
96
96
|
private pasteBurstCharCount;
|
|
97
97
|
private plainRecentChunks;
|
|
98
|
+
private pendingInsertBuffer;
|
|
99
|
+
private pendingInsertTimer;
|
|
100
|
+
private readonly pendingInsertDelayMs;
|
|
98
101
|
private lastRenderedEventKey;
|
|
99
102
|
private lastOutputEndedWithNewline;
|
|
100
103
|
private hasRenderedPrompt;
|
|
@@ -115,6 +118,19 @@ export declare class UnifiedUIRenderer extends EventEmitter {
|
|
|
115
118
|
private setupInputHandlers;
|
|
116
119
|
private emitInputChange;
|
|
117
120
|
private handleKeypress;
|
|
121
|
+
/**
|
|
122
|
+
* Queue characters for deferred insertion. This prevents visual "leak" of
|
|
123
|
+
* pasted content by holding characters until we're confident it's not a paste.
|
|
124
|
+
*/
|
|
125
|
+
private queuePendingInsert;
|
|
126
|
+
/**
|
|
127
|
+
* Commit pending characters as normal input (not a paste).
|
|
128
|
+
*/
|
|
129
|
+
private commitPendingInsert;
|
|
130
|
+
/**
|
|
131
|
+
* Consume pending insert buffer into paste detection (prevents visual leak).
|
|
132
|
+
*/
|
|
133
|
+
private consumePendingInsertForPaste;
|
|
118
134
|
private handleBracketedPaste;
|
|
119
135
|
private commitPasteBuffer;
|
|
120
136
|
private handlePlainPaste;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnifiedUIRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/UnifiedUIRenderer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"UnifiedUIRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/UnifiedUIRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAEnH,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,KAAK,GACL,QAAQ,GACR,OAAO,GACP,WAAW,GACX,WAAW,GACX,aAAa,CAAC;AAUlB,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAOD,UAAU,eAAe;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAwBD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAqB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IAEtC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,eAAe,CAAuB;IAE9C,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,WAAW,CAAqE;IACxF,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,cAAc,CAA+D;IAErF,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAAuB;IAG9C,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IAG1C,OAAO,CAAC,uBAAuB,CAAM;IACrC,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,wBAAwB,CAA+B;IAC/D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAwB;IAGhE,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkC;IAErE,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAEjC;IAEF,OAAO,CAAC,UAAU,CAcX;IACP,OAAO,CAAC,WAAW,CAKjB;IAIF,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe,CAA6C;IAEpE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IACzC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAM;IAC7C,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAK;IACjD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,iBAAiB,CAA2C;IAEpE,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAM;IAC3C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,0BAA0B,CAAQ;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,WAAW,CAAyD;IAC5E,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IACvC,OAAO,CAAC,YAAY,CAMJ;gBAGd,MAAM,GAAE,MAAM,CAAC,WAA4B,EAC3C,KAAK,GAAE,MAAM,CAAC,UAA0B,EACxC,QAAQ,CAAC,EAAE,wBAAwB;IA+BrC,UAAU,IAAI,IAAI;IA0BlB,OAAO,IAAI,IAAI;IAuCf,sBAAsB,IAAI,IAAI;IAI9B,qBAAqB,CAAC,MAAM,GAAE,OAAe,GAAG,IAAI;IASpD,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAqMtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,gBAAgB;IAyExB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,UAAU;IAiDlB,OAAO,CAAC,iBAAiB;IAkCzB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI;IAK7D,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,mBAAmB;IAgB3B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;YA8D1C,YAAY;IAwC1B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAuBlC;;;;OAIG;IACG,WAAW,CAAC,SAAS,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAiB3C,WAAW;IAwCzB,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,aAAa;IA6DrB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiCvB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAqC7B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAqDtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgC7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAqDtB;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IA2D3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAkB,GAAG,IAAI;IAgBjE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAyBzC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAOzC;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB,OAAO,IAAI,MAAM,GAAG,WAAW;IAI/B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI1C,kBAAkB,CAChB,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EACrF,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GACjC,IAAI;IAuCP,gBAAgB,CACd,IAAI,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,EACD,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GACjC,IAAI;IAUP,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAcxD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBrC,mBAAmB,IAAI,OAAO;IAI9B,gBAAgB,IAAI,IAAI;IAMxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,qBAAqB;IA+G7B,OAAO,CAAC,iBAAiB;IA4FzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA2C7B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,iBAAiB;IAezB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,eAAe;IA2EvB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,cAAc;IAwGtB,OAAO,CAAC,gBAAgB;IAwCxB,OAAO,CAAC,oBAAoB;IAU5B,YAAY,CAAC,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B5G,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;IA2CpB,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,MAAM;IAInB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IASjD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKrC,WAAW,IAAI,IAAI;IAWnB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI1C;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAe3C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAS5B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWzB,MAAM,IAAI,IAAI;IAId,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,kBAAkB;CAM3B"}
|
|
@@ -78,12 +78,9 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
78
78
|
activityStarFrames = ['✳', '✴', '✵', '✶', '✷', '✸'];
|
|
79
79
|
// Token count during streaming
|
|
80
80
|
streamingTokens = 0;
|
|
81
|
-
//
|
|
81
|
+
// User-friendly activity phrases (clean, professional)
|
|
82
82
|
funActivityPhrases = [
|
|
83
|
-
'
|
|
84
|
-
'Contemplating', 'Deliberating', 'Noodling', 'Percolating', 'Stewing',
|
|
85
|
-
'Brewing', 'Simmering', 'Churning', 'Puzzling', 'Meandering',
|
|
86
|
-
'Wandering', 'Musing', 'Daydreaming', 'Woolgathering', 'Chewing',
|
|
83
|
+
'Thinking', 'Processing', 'Analyzing', 'Working', 'Preparing',
|
|
87
84
|
];
|
|
88
85
|
statusMeta = {};
|
|
89
86
|
toggleState = {
|
|
@@ -118,6 +115,10 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
118
115
|
pasteBurstWindowStart = 0;
|
|
119
116
|
pasteBurstCharCount = 0;
|
|
120
117
|
plainRecentChunks = [];
|
|
118
|
+
// Pending insert buffer: holds characters during paste detection window to prevent visual leak
|
|
119
|
+
pendingInsertBuffer = '';
|
|
120
|
+
pendingInsertTimer = null;
|
|
121
|
+
pendingInsertDelayMs = 80; // Wait before committing chars as normal input
|
|
121
122
|
lastRenderedEventKey = null;
|
|
122
123
|
lastOutputEndedWithNewline = true;
|
|
123
124
|
hasRenderedPrompt = false;
|
|
@@ -419,9 +420,51 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
419
420
|
return;
|
|
420
421
|
}
|
|
421
422
|
if (str && !key.ctrl && !key.meta) {
|
|
422
|
-
|
|
423
|
+
// Defer insertion to allow paste detection window to catch rapid input
|
|
424
|
+
this.queuePendingInsert(str);
|
|
423
425
|
}
|
|
424
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* Queue characters for deferred insertion. This prevents visual "leak" of
|
|
429
|
+
* pasted content by holding characters until we're confident it's not a paste.
|
|
430
|
+
*/
|
|
431
|
+
queuePendingInsert(text) {
|
|
432
|
+
this.pendingInsertBuffer += text;
|
|
433
|
+
// Clear any existing timer
|
|
434
|
+
if (this.pendingInsertTimer) {
|
|
435
|
+
clearTimeout(this.pendingInsertTimer);
|
|
436
|
+
this.pendingInsertTimer = null;
|
|
437
|
+
}
|
|
438
|
+
// Schedule commit after delay - if paste detection triggers first, it will consume the buffer
|
|
439
|
+
this.pendingInsertTimer = setTimeout(() => {
|
|
440
|
+
this.commitPendingInsert();
|
|
441
|
+
}, this.pendingInsertDelayMs);
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Commit pending characters as normal input (not a paste).
|
|
445
|
+
*/
|
|
446
|
+
commitPendingInsert() {
|
|
447
|
+
if (this.pendingInsertTimer) {
|
|
448
|
+
clearTimeout(this.pendingInsertTimer);
|
|
449
|
+
this.pendingInsertTimer = null;
|
|
450
|
+
}
|
|
451
|
+
if (this.pendingInsertBuffer && !this.inPlainPaste && !this.inBracketedPaste) {
|
|
452
|
+
this.insertText(this.pendingInsertBuffer);
|
|
453
|
+
}
|
|
454
|
+
this.pendingInsertBuffer = '';
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Consume pending insert buffer into paste detection (prevents visual leak).
|
|
458
|
+
*/
|
|
459
|
+
consumePendingInsertForPaste() {
|
|
460
|
+
if (this.pendingInsertTimer) {
|
|
461
|
+
clearTimeout(this.pendingInsertTimer);
|
|
462
|
+
this.pendingInsertTimer = null;
|
|
463
|
+
}
|
|
464
|
+
const consumed = this.pendingInsertBuffer;
|
|
465
|
+
this.pendingInsertBuffer = '';
|
|
466
|
+
return consumed;
|
|
467
|
+
}
|
|
425
468
|
handleBracketedPaste(str, key) {
|
|
426
469
|
const sequence = key?.sequence || str;
|
|
427
470
|
if (sequence === ESC.ENABLE_BRACKETED_PASTE || sequence === ESC.DISABLE_BRACKETED_PASTE) {
|
|
@@ -429,7 +472,9 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
429
472
|
}
|
|
430
473
|
if (sequence === '\x1b[200~') {
|
|
431
474
|
this.inBracketedPaste = true;
|
|
432
|
-
|
|
475
|
+
// Consume any pending insert buffer to prevent leak
|
|
476
|
+
const pending = this.consumePendingInsertForPaste();
|
|
477
|
+
this.pasteBuffer = pending; // Include any chars that arrived before bracketed paste started
|
|
433
478
|
this.cancelPlainPasteCapture();
|
|
434
479
|
return true;
|
|
435
480
|
}
|
|
@@ -517,16 +562,23 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
517
562
|
let chunkAlreadyCaptured = false;
|
|
518
563
|
if (!this.inPlainPaste) {
|
|
519
564
|
this.inPlainPaste = true;
|
|
565
|
+
// Consume pending insert buffer first - this is the primary source now
|
|
566
|
+
const pending = this.consumePendingInsertForPaste();
|
|
520
567
|
const reclaimed = this.reclaimRecentPlainChunks();
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
568
|
+
// Combine pending buffer with any reclaimed chunks
|
|
569
|
+
const combined = pending + reclaimed;
|
|
570
|
+
if (combined.length > 0) {
|
|
571
|
+
// Remove any chars that leaked into buffer (legacy reclaim path)
|
|
572
|
+
if (reclaimed.length > 0) {
|
|
573
|
+
const removeCount = Math.min(this.buffer.length, reclaimed.length);
|
|
574
|
+
const suffix = this.buffer.slice(-removeCount);
|
|
575
|
+
if (removeCount > 0 && suffix === reclaimed.slice(-removeCount)) {
|
|
576
|
+
this.buffer = this.buffer.slice(0, this.buffer.length - removeCount);
|
|
577
|
+
this.cursor = Math.max(0, this.buffer.length);
|
|
578
|
+
}
|
|
527
579
|
}
|
|
528
|
-
this.plainPasteBuffer =
|
|
529
|
-
chunkAlreadyCaptured =
|
|
580
|
+
this.plainPasteBuffer = combined;
|
|
581
|
+
chunkAlreadyCaptured = combined.endsWith(chunk);
|
|
530
582
|
}
|
|
531
583
|
else {
|
|
532
584
|
this.plainPasteBuffer = '';
|
|
@@ -554,6 +606,12 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
554
606
|
clearTimeout(this.plainPasteTimer);
|
|
555
607
|
this.plainPasteTimer = null;
|
|
556
608
|
}
|
|
609
|
+
// Also cancel pending insert buffer
|
|
610
|
+
if (this.pendingInsertTimer) {
|
|
611
|
+
clearTimeout(this.pendingInsertTimer);
|
|
612
|
+
this.pendingInsertTimer = null;
|
|
613
|
+
}
|
|
614
|
+
this.pendingInsertBuffer = '';
|
|
557
615
|
this.inPlainPaste = false;
|
|
558
616
|
this.plainPasteBuffer = '';
|
|
559
617
|
this.plainRecentChunks = [];
|
|
@@ -1397,7 +1455,7 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
1397
1455
|
}
|
|
1398
1456
|
// Build the box
|
|
1399
1457
|
const result = [];
|
|
1400
|
-
const labelText = '
|
|
1458
|
+
const labelText = ' reasoning ';
|
|
1401
1459
|
const headerLine = `╭─${labelText}${'─'.repeat(Math.max(0, maxBoxWidth - labelText.length - 4))}─╮`;
|
|
1402
1460
|
result.push(thinkingStyle.border(headerLine));
|
|
1403
1461
|
for (const line of wrappedLines) {
|