pty-manager 1.2.17 → 1.2.18
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.d.mts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.js +28 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -10
- package/dist/index.mjs.map +1 -1
- package/dist/pty-worker.js +28 -10
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -286,6 +286,7 @@ var PTYSession = class extends EventEmitter {
|
|
|
286
286
|
messageCounter = 0;
|
|
287
287
|
logger;
|
|
288
288
|
sessionRules = [];
|
|
289
|
+
_firedOnceRules = /* @__PURE__ */ new Set();
|
|
289
290
|
_lastBlockingPromptHash = null;
|
|
290
291
|
// Stall detection
|
|
291
292
|
_stallTimer = null;
|
|
@@ -392,7 +393,7 @@ var PTYSession = class extends EventEmitter {
|
|
|
392
393
|
return;
|
|
393
394
|
}
|
|
394
395
|
const tail = this.outputBuffer.slice(-500);
|
|
395
|
-
const stripped = this.stripAnsiForStall(tail);
|
|
396
|
+
const stripped = this.stripAnsiForStall(tail).trim();
|
|
396
397
|
const hash = this.simpleHash(stripped);
|
|
397
398
|
if (hash === this._lastContentHash) {
|
|
398
399
|
return;
|
|
@@ -462,12 +463,19 @@ var PTYSession = class extends EventEmitter {
|
|
|
462
463
|
return hash.toString(36);
|
|
463
464
|
}
|
|
464
465
|
/**
|
|
465
|
-
* Strip ANSI codes
|
|
466
|
-
*
|
|
466
|
+
* Strip ANSI codes, cursor movement, box-drawing, and spinner characters.
|
|
467
|
+
* Used for stall detection hashing and auto-response pattern matching.
|
|
468
|
+
*
|
|
469
|
+
* Cursor movement codes are replaced with spaces (not removed) to preserve
|
|
470
|
+
* word boundaries — e.g. "Do\x1b[5Cyou" becomes "Do you", not "Doyou".
|
|
467
471
|
*/
|
|
468
472
|
stripAnsiForStall(str) {
|
|
469
|
-
|
|
470
|
-
|
|
473
|
+
let result = str.replace(/\x1b\[\d*[CDABG]/g, " ");
|
|
474
|
+
result = result.replace(/\x1b\[\d*(?:;\d+)?[Hf]/g, " ");
|
|
475
|
+
result = result.replace(/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g, "");
|
|
476
|
+
result = result.replace(/[│╭╰╮╯─═╌║╔╗╚╝╠╣╦╩╬┌┐└┘├┤┬┴┼●○❯❮▶◀⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏⣾⣽⣻⢿⡿⣟⣯⣷✻✶✳✢⏺←→↑↓]/g, " ");
|
|
477
|
+
result = result.replace(/ {2,}/g, " ");
|
|
478
|
+
return result;
|
|
471
479
|
}
|
|
472
480
|
/**
|
|
473
481
|
* Handle external stall classification result.
|
|
@@ -703,10 +711,14 @@ var PTYSession = class extends EventEmitter {
|
|
|
703
711
|
if (allRules.length === 0) {
|
|
704
712
|
return false;
|
|
705
713
|
}
|
|
706
|
-
|
|
707
|
-
stripped = stripped.replace(/[│╭╰╮╯─═╌║╔╗╚╝╠╣╦╩╬┌┐└┘├┤┬┴┼●○❯❮▶◀⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏⏺←→↑↓]/g, " ");
|
|
708
|
-
stripped = stripped.replace(/ {2,}/g, " ");
|
|
714
|
+
const stripped = this.stripAnsiForStall(this.outputBuffer);
|
|
709
715
|
for (const rule of allRules) {
|
|
716
|
+
if (rule.once) {
|
|
717
|
+
const ruleKey = `${rule.pattern.source}:${rule.pattern.flags}`;
|
|
718
|
+
if (this._firedOnceRules.has(ruleKey)) {
|
|
719
|
+
continue;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
710
722
|
if (rule.pattern.test(stripped)) {
|
|
711
723
|
const safe = rule.safe !== false;
|
|
712
724
|
const isSessionRule = this.sessionRules.includes(rule);
|
|
@@ -730,6 +742,10 @@ var PTYSession = class extends EventEmitter {
|
|
|
730
742
|
} else {
|
|
731
743
|
this.writeRaw(rule.response + "\r");
|
|
732
744
|
}
|
|
745
|
+
if (rule.once) {
|
|
746
|
+
const ruleKey = `${rule.pattern.source}:${rule.pattern.flags}`;
|
|
747
|
+
this._firedOnceRules.add(ruleKey);
|
|
748
|
+
}
|
|
733
749
|
this.outputBuffer = this.outputBuffer.replace(rule.pattern, "");
|
|
734
750
|
const promptInfo = {
|
|
735
751
|
type: rule.type,
|
|
@@ -1964,7 +1980,8 @@ var BunCompatiblePTYManager = class extends EventEmitter3 {
|
|
|
1964
1980
|
responseType: r.responseType,
|
|
1965
1981
|
keys: r.keys,
|
|
1966
1982
|
description: r.description,
|
|
1967
|
-
safe: r.safe
|
|
1983
|
+
safe: r.safe,
|
|
1984
|
+
once: r.once
|
|
1968
1985
|
}));
|
|
1969
1986
|
this.resolvePending(`getRules:${id}`, rules);
|
|
1970
1987
|
break;
|
|
@@ -2118,7 +2135,8 @@ var BunCompatiblePTYManager = class extends EventEmitter3 {
|
|
|
2118
2135
|
responseType: rule.responseType,
|
|
2119
2136
|
keys: rule.keys,
|
|
2120
2137
|
description: rule.description,
|
|
2121
|
-
safe: rule.safe
|
|
2138
|
+
safe: rule.safe,
|
|
2139
|
+
once: rule.once
|
|
2122
2140
|
};
|
|
2123
2141
|
}
|
|
2124
2142
|
/**
|