open-agents-ai 0.184.96 → 0.184.97
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/index.js +33 -10
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -53625,6 +53625,7 @@ var init_banner = __esm({
|
|
|
53625
53625
|
if (this.currentDesign.frames.length > 1) {
|
|
53626
53626
|
this.timer = setInterval(() => {
|
|
53627
53627
|
this.currentFrame = (this.currentFrame + 1) % this.currentDesign.frames.length;
|
|
53628
|
+
this.frameTick++;
|
|
53628
53629
|
this.renderCurrentFrame();
|
|
53629
53630
|
}, 200);
|
|
53630
53631
|
}
|
|
@@ -53683,8 +53684,10 @@ var init_banner = __esm({
|
|
|
53683
53684
|
}
|
|
53684
53685
|
}
|
|
53685
53686
|
if (this._focused) {
|
|
53687
|
+
const QUAD = ["\u2598", "\u259D", "\u2597", "\u2596"];
|
|
53686
53688
|
for (let r = 0; r < this.rows; r++) {
|
|
53687
|
-
|
|
53689
|
+
const ch = QUAD[(this.frameTick + r) % QUAD.length];
|
|
53690
|
+
buf += `\x1B[${r + 1};1H\x1B[38;5;178m\x1B[48;5;234m${ch}\x1B[0m`;
|
|
53688
53691
|
}
|
|
53689
53692
|
}
|
|
53690
53693
|
if (this._updateAvailable && this.currentDesign?.type === "default") {
|
|
@@ -60364,6 +60367,8 @@ var init_status_bar = __esm({
|
|
|
60364
60367
|
_focusedZone = "footer";
|
|
60365
60368
|
/** Callback to notify header (banner) of focus changes */
|
|
60366
60369
|
_headerFocusHandler = null;
|
|
60370
|
+
/** Focus indicator animation frame counter — driven by braille spinner timer */
|
|
60371
|
+
_focusFrame = 0;
|
|
60367
60372
|
/** Whether agent is actively processing (braille animation) */
|
|
60368
60373
|
_processing = false;
|
|
60369
60374
|
_brailleSpinner = new BrailleSpinner();
|
|
@@ -60942,11 +60947,35 @@ var init_status_bar = __esm({
|
|
|
60942
60947
|
setHeaderFocusHandler(handler) {
|
|
60943
60948
|
this._headerFocusHandler = handler;
|
|
60944
60949
|
}
|
|
60950
|
+
/**
|
|
60951
|
+
* Get the animated quadrant block character for the focus indicator.
|
|
60952
|
+
* The animation pattern varies by activity state:
|
|
60953
|
+
* - Idle: slow clockwise rotation (breathing)
|
|
60954
|
+
* - Processing: fast diagonal sweep (energetic)
|
|
60955
|
+
* - Streaming: rapid fill/unfill (pulsing)
|
|
60956
|
+
*/
|
|
60957
|
+
_getFocusQuadrant() {
|
|
60958
|
+
this._focusFrame++;
|
|
60959
|
+
const IDLE_CYCLE = ["\u2598", "\u259D", "\u2597", "\u2596"];
|
|
60960
|
+
const ACTIVE_CYCLE = ["\u2598", "\u259A", "\u2597", "\u259E"];
|
|
60961
|
+
const STREAM_CYCLE = ["\u2596", "\u259F", "\u259B", "\u2598", "\u259C", "\u2599"];
|
|
60962
|
+
const FULL = "\u2588";
|
|
60963
|
+
if (this._focusFrame < 3)
|
|
60964
|
+
return FULL;
|
|
60965
|
+
if (this._processing) {
|
|
60966
|
+
return STREAM_CYCLE[Math.floor(this._focusFrame / 2) % STREAM_CYCLE.length];
|
|
60967
|
+
}
|
|
60968
|
+
if (this.writeDepth > 0) {
|
|
60969
|
+
return ACTIVE_CYCLE[Math.floor(this._focusFrame / 3) % ACTIVE_CYCLE.length];
|
|
60970
|
+
}
|
|
60971
|
+
return IDLE_CYCLE[Math.floor(this._focusFrame / 6) % IDLE_CYCLE.length];
|
|
60972
|
+
}
|
|
60945
60973
|
/** Cycle focus: footer → header → content → footer */
|
|
60946
60974
|
cycleFocus() {
|
|
60947
60975
|
const order = ["footer", "header", "content"];
|
|
60948
60976
|
const idx = order.indexOf(this._focusedZone);
|
|
60949
60977
|
this._focusedZone = order[(idx + 1) % order.length];
|
|
60978
|
+
this._focusFrame = 0;
|
|
60950
60979
|
this._headerFocusHandler?.(this._focusedZone === "header");
|
|
60951
60980
|
if (this.active) {
|
|
60952
60981
|
this._bannerRefresh?.();
|
|
@@ -61595,13 +61624,6 @@ ${CONTENT_BG_SEQ}`);
|
|
|
61595
61624
|
const compactOrder = [];
|
|
61596
61625
|
let modelSectionIdx = -1;
|
|
61597
61626
|
let versionSectionIdx = -1;
|
|
61598
|
-
{
|
|
61599
|
-
const zoneLabels = { header: "hdr", content: "cnt", footer: "ftr" };
|
|
61600
|
-
const zoneLabel = zoneLabels[this._focusedZone];
|
|
61601
|
-
const focusStr = pastel2(TEXT_PRIMARY, `\u258E${zoneLabel}`);
|
|
61602
|
-
const focusW = 1 + zoneLabel.length;
|
|
61603
|
-
sections.push({ expanded: focusStr, compact: focusStr, expandedW: focusW, compactW: focusW, empty: false });
|
|
61604
|
-
}
|
|
61605
61627
|
if (this._cohereActive) {
|
|
61606
61628
|
const cohereExpanded = "\x1B[38;5;214m\u{1F310}\x1B[0m";
|
|
61607
61629
|
sections.push({ expanded: cohereExpanded, compact: cohereExpanded, expandedW: 2, compactW: 2, empty: false });
|
|
@@ -62038,10 +62060,11 @@ ${CONTENT_BG_SEQ}`);
|
|
|
62038
62060
|
}
|
|
62039
62061
|
buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildBufferContent(w)}${RESET}`;
|
|
62040
62062
|
buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET}`;
|
|
62063
|
+
const focusChar = this._getFocusQuadrant();
|
|
62041
62064
|
if (this._focusedZone === "footer") {
|
|
62042
|
-
buf += `\x1B[${pos.inputStartRow};1H\x1B[38;5;${TEXT_PRIMARY}m\x1B[48;5;${PANEL_BG}m\
|
|
62065
|
+
buf += `\x1B[${pos.inputStartRow};1H\x1B[38;5;${TEXT_PRIMARY}m\x1B[48;5;${PANEL_BG}m${focusChar}\x1B[0m`;
|
|
62043
62066
|
} else if (this._focusedZone === "content") {
|
|
62044
|
-
buf += `\x1B[${this.scrollRegionTop};1H\x1B[38;5;${TEXT_PRIMARY}m\x1B[48;5;${CONTENT_BG}m\
|
|
62067
|
+
buf += `\x1B[${this.scrollRegionTop};1H\x1B[38;5;${TEXT_PRIMARY}m\x1B[48;5;${CONTENT_BG}m${focusChar}\x1B[0m`;
|
|
62045
62068
|
}
|
|
62046
62069
|
buf += `\x1B[?7h\x1B[${cursorTermRow};${inputWrap.cursorCol}H\x1B[?25h`;
|
|
62047
62070
|
this.termWrite(buf);
|
package/package.json
CHANGED