zames_pro 2.31.0 → 2.32.0
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/commands.js +9 -0
- package/dist/index.js +5 -0
- package/dist/input.js +18 -0
- package/package.json +1 -1
package/dist/commands.js
CHANGED
|
@@ -169,6 +169,15 @@ export function renderDoctor(d) {
|
|
|
169
169
|
row(!!d.clipboardTool, 'clipboard', d.clipboardTool || 'no tool found (image paste disabled)');
|
|
170
170
|
row(true, 'mcp', d.mcpServers + ' server(s), ' + d.mcpTools + ' tool(s)');
|
|
171
171
|
row(d.transcriptOk, 'transcript', d.transcriptOk ? 'on' : 'off');
|
|
172
|
+
if (typeof d.contextLimit === 'number' && d.contextLimit > 0) {
|
|
173
|
+
row(true, 'context', d.contextLimit.toLocaleString('en-US') + ' tokens');
|
|
174
|
+
}
|
|
175
|
+
if (d.gitOk && typeof d.hasOrigin === 'boolean') {
|
|
176
|
+
row(true, 'git remote', d.hasOrigin ? 'origin configured' : 'no origin');
|
|
177
|
+
}
|
|
178
|
+
if (typeof d.minSendIntervalMs === 'number') {
|
|
179
|
+
row(d.minSendIntervalMs > 0, 'send pause', Math.round(d.minSendIntervalMs / 1000) + 's between agent sends');
|
|
180
|
+
}
|
|
172
181
|
return 'Doctor:' + NL + rows.join(NL);
|
|
173
182
|
}
|
|
174
183
|
export function renderPermissions(p) {
|
package/dist/index.js
CHANGED
|
@@ -2461,6 +2461,11 @@ async function main() {
|
|
|
2461
2461
|
mcpTools: mcpStatus.toolCount,
|
|
2462
2462
|
transcriptOk: !!transcript.file,
|
|
2463
2463
|
authSaved: authMarkerExists(),
|
|
2464
|
+
contextLimit: config.ui.contextLimit,
|
|
2465
|
+
hasOrigin: gitOk
|
|
2466
|
+
? (await runGit('git remote', currentWorkdir, 5000)).includes('origin')
|
|
2467
|
+
: undefined,
|
|
2468
|
+
minSendIntervalMs: config.browser.minSendIntervalMs,
|
|
2464
2469
|
})));
|
|
2465
2470
|
continue;
|
|
2466
2471
|
}
|
package/dist/input.js
CHANGED
|
@@ -501,9 +501,25 @@ export class LineEditor {
|
|
|
501
501
|
// Redraw on terminal resize so the layout follows the new width instead
|
|
502
502
|
// of leaving artifacts from the old one.
|
|
503
503
|
process.stdout.on('resize', this._onResize);
|
|
504
|
+
// Pin the input block to the BOTTOM of the terminal. A fresh terminal
|
|
505
|
+
// starts the cursor at the top, so without this the input line sits at
|
|
506
|
+
// the top and only "descends" as output accumulates. Filling the viewport
|
|
507
|
+
// with newlines first makes the block start at the bottom, and every
|
|
508
|
+
// later printAbove() pushes content UP while the input stays put.
|
|
509
|
+
this._padToBottom();
|
|
504
510
|
this._writeBlock();
|
|
505
511
|
return true;
|
|
506
512
|
}
|
|
513
|
+
// Fill the current viewport with empty lines so the next _writeBlock()
|
|
514
|
+
// lands at the BOTTOM of the terminal. Used at start and after clearScreen.
|
|
515
|
+
// We deliberately emit real newlines (not a cursor-position escape) because
|
|
516
|
+
// the block height is not known yet and scrolling keeps the block's own
|
|
517
|
+
// cursor math (`cursorRowFromTop`) correct.
|
|
518
|
+
_padToBottom() {
|
|
519
|
+
const rows = process.stdout.rows || 24;
|
|
520
|
+
if (rows > 1)
|
|
521
|
+
process.stdout.write(NL.repeat(rows - 1));
|
|
522
|
+
}
|
|
507
523
|
dispose() {
|
|
508
524
|
const stdin = process.stdin;
|
|
509
525
|
stdin.removeListener('data', this._onData);
|
|
@@ -789,6 +805,8 @@ export class LineEditor {
|
|
|
789
805
|
process.stdout.write(ESC + '[2J' + ESC + '[H');
|
|
790
806
|
this.rendered = false;
|
|
791
807
|
this._lastStatusBlock = '';
|
|
808
|
+
// Re-pin the block to the bottom after the screen was cleared.
|
|
809
|
+
this._padToBottom();
|
|
792
810
|
this._writeBlock();
|
|
793
811
|
}
|
|
794
812
|
// Repaint ONLY the input rows, leaving the status/spinner block untouched.
|