@myagentroam/node 0.9.9 → 0.9.11
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.js +2 -92
- package/dist/claude-agent-sdk.js +2 -330
- package/dist/claude-channel.js +2 -44
- package/dist/codex-app-server.js +2 -503
- package/dist/config.js +2 -56
- package/dist/connector/node-connector-options.js +2 -1
- package/dist/connector/node-operation-router.js +2 -22
- package/dist/connector.js +2 -845
- package/dist/control-outbound-scheduler.js +2 -154
- package/dist/database.js +2 -1418
- package/dist/event-buffer.js +2 -19
- package/dist/fake-runner.js +2 -129
- package/dist/health.js +2 -3
- package/dist/main.js +2 -54
- package/dist/migrations/v001.js +3 -144
- package/dist/migrations/v002.js +2 -143
- package/dist/migrations/v003.js +2 -44
- package/dist/migrations/v004.js +34 -30
- package/dist/native-jsonl-reader.js +2 -186
- package/dist/native-session-history.js +2 -1119
- package/dist/opencode-runtime.js +2 -80
- package/dist/opencode-server.js +2 -263
- package/dist/operational.js +2 -122
- package/dist/process-tree.js +2 -18
- package/dist/rotating-log.js +2 -67
- package/dist/runner/abstract-runner.js +2 -232
- package/dist/runner/claude/managed-run-controller.js +2 -345
- package/dist/runner/claude-code-runner.js +2 -303
- package/dist/runner/codex/composer-image-markers.js +2 -0
- package/dist/runner/codex/conversation-parser.js +2 -861
- package/dist/runner/codex/managed-run-controller.js +2 -460
- package/dist/runner/codex-runner.js +2 -628
- package/dist/runner/fake-test-runner.js +2 -47
- package/dist/runner/opencode/conversation-parser.js +2 -221
- package/dist/runner/opencode/managed-run-controller.js +2 -537
- package/dist/runner/opencode-runner.js +2 -448
- package/dist/runner/runner-registry.js +2 -90
- package/dist/runner-command-engine.js +2 -70
- package/dist/runner-profiles.js +2 -215
- package/dist/runner-usage.js +2 -190
- package/dist/runtime-command-detector.js +2 -73
- package/dist/runtime-state.js +2 -982
- package/dist/service/attachment-domain-state.js +2 -7
- package/dist/service/conversation-history-service.js +2 -457
- package/dist/service/conversation-segment-service.js +2 -162
- package/dist/service/external-session-resume-service.js +2 -118
- package/dist/service/fake-managed-run-service.js +2 -60
- package/dist/service/managed-runner-session-service.js +2 -35
- package/dist/service/mcp-installation-verifier.js +2 -87
- package/dist/service/mcp-node-operation-service.js +2 -90
- package/dist/service/mcp-package-installer.js +2 -136
- package/dist/service/native-session-projection-service.js +2 -280
- package/dist/service/native-session-watch-service.js +2 -383
- package/dist/service/node-connection-lifecycle-service.js +2 -84
- package/dist/service/node-control-channel.js +2 -85
- package/dist/service/node-control-message-service.js +2 -107
- package/dist/service/node-request-service.js +2 -52
- package/dist/service/node-run-event-bridge.js +2 -83
- package/dist/service/node-terminal-channel.js +2 -182
- package/dist/service/node-upgrade-coordinator.js +2 -137
- package/dist/service/node-workspace-coordinator.js +2 -70
- package/dist/service/recent-run-projection-service.js +2 -78
- package/dist/service/run-attachment-service.js +2 -194
- package/dist/service/run-domain-state.js +2 -4
- package/dist/service/run-event-service.js +2 -193
- package/dist/service/run-workbench-service.js +2 -104
- package/dist/service/runner-channel-message-service.js +2 -20
- package/dist/service/runner-interaction-service.js +2 -243
- package/dist/service/runner-service.js +2 -71
- package/dist/service/session-catalog-service.js +2 -224
- package/dist/service/session-command-service.js +2 -76
- package/dist/service/session-context-service.js +2 -101
- package/dist/service/session-domain-state.js +2 -9
- package/dist/service/session-identity-service.js +2 -86
- package/dist/service/session-lifecycle-service.js +2 -240
- package/dist/service/session-message-service.js +2 -173
- package/dist/service/session-presentation-service.js +2 -43
- package/dist/service/session-query-service.js +2 -82
- package/dist/service/skill-directory-service.js +2 -238
- package/dist/service/skill-install-service.js +2 -434
- package/dist/service/skill-node-operation-service.js +2 -206
- package/dist/service/terminal-relay-state.js +2 -3
- package/dist/service/terminal-service.js +2 -52
- package/dist/service/workbench-event-service.js +2 -19
- package/dist/service/workbench-manifest-service.js +2 -69
- package/dist/service/workspace-change-service.js +2 -86
- package/dist/service/workspace-content-search-service.js +2 -477
- package/dist/service/workspace-domain-state.js +2 -41
- package/dist/service/workspace-file-service.js +2 -122
- package/dist/service/workspace-git-exclude-service.js +2 -119
- package/dist/service/workspace-queue-workbench-service.js +2 -304
- package/dist/service/workspace-service.js +2 -69
- package/dist/service/workspace-session-service.js +2 -139
- package/dist/service/workspace-upload-service.js +2 -262
- package/dist/service/workspace-watch-service.js +2 -146
- package/dist/service/workspace-workbench-service.js +2 -405
- package/dist/service.js +2 -38
- package/dist/storage.js +2 -32
- package/dist/supervisor.js +2 -136
- package/dist/terminal.js +2 -416
- package/dist/util/node-operation-parsers.js +2 -382
- package/dist/util/personal-instructions.js +2 -31
- package/dist/util/runner-error.js +2 -52
- package/dist/util/runner-native-session-parsers.js +2 -490
- package/dist/util/safe-error.js +2 -5
- package/dist/util/secret-environment.js +2 -25
- package/dist/workspace.js +2 -1519
- package/package.json +3 -3
- package/dist/capabilities.d.ts +0 -12
- package/dist/claude-agent-sdk.d.ts +0 -92
- package/dist/claude-channel.d.ts +0 -28
- package/dist/codex-app-server.d.ts +0 -133
- package/dist/config.d.ts +0 -18
- package/dist/connector/node-connector-options.d.ts +0 -27
- package/dist/connector/node-operation-router.d.ts +0 -9
- package/dist/connector.d.ts +0 -94
- package/dist/control-outbound-scheduler.d.ts +0 -29
- package/dist/database.d.ts +0 -305
- package/dist/event-buffer.d.ts +0 -9
- package/dist/fake-runner.d.ts +0 -42
- package/dist/health.d.ts +0 -4
- package/dist/main.d.ts +0 -2
- package/dist/migrations/v001.d.ts +0 -3
- package/dist/migrations/v002.d.ts +0 -4
- package/dist/migrations/v003.d.ts +0 -4
- package/dist/migrations/v004.d.ts +0 -4
- package/dist/native-jsonl-reader.d.ts +0 -35
- package/dist/native-session-history.d.ts +0 -126
- package/dist/opencode-runtime.d.ts +0 -33
- package/dist/opencode-server.d.ts +0 -49
- package/dist/operational.d.ts +0 -39
- package/dist/process-tree.d.ts +0 -9
- package/dist/rotating-log.d.ts +0 -17
- package/dist/runner/abstract-runner.d.ts +0 -172
- package/dist/runner/claude/managed-run-controller.d.ts +0 -51
- package/dist/runner/claude-code-runner.d.ts +0 -72
- package/dist/runner/codex/conversation-parser.d.ts +0 -59
- package/dist/runner/codex/managed-run-controller.d.ts +0 -90
- package/dist/runner/codex-runner.d.ts +0 -103
- package/dist/runner/fake-test-runner.d.ts +0 -26
- package/dist/runner/opencode/conversation-parser.d.ts +0 -31
- package/dist/runner/opencode/managed-run-controller.d.ts +0 -82
- package/dist/runner/opencode-runner.d.ts +0 -71
- package/dist/runner/runner-registry.d.ts +0 -19
- package/dist/runner-command-engine.d.ts +0 -28
- package/dist/runner-profiles.d.ts +0 -15
- package/dist/runner-usage.d.ts +0 -33
- package/dist/runtime-command-detector.d.ts +0 -3
- package/dist/runtime-state.d.ts +0 -171
- package/dist/service/attachment-domain-state.d.ts +0 -7
- package/dist/service/conversation-history-service.d.ts +0 -43
- package/dist/service/conversation-segment-service.d.ts +0 -20
- package/dist/service/external-session-resume-service.d.ts +0 -34
- package/dist/service/fake-managed-run-service.d.ts +0 -28
- package/dist/service/managed-runner-session-service.d.ts +0 -12
- package/dist/service/mcp-installation-verifier.d.ts +0 -9
- package/dist/service/mcp-node-operation-service.d.ts +0 -11
- package/dist/service/mcp-package-installer.d.ts +0 -8
- package/dist/service/native-session-projection-service.d.ts +0 -52
- package/dist/service/native-session-watch-service.d.ts +0 -62
- package/dist/service/node-connection-lifecycle-service.d.ts +0 -36
- package/dist/service/node-control-channel.d.ts +0 -32
- package/dist/service/node-control-message-service.d.ts +0 -27
- package/dist/service/node-request-service.d.ts +0 -14
- package/dist/service/node-run-event-bridge.d.ts +0 -40
- package/dist/service/node-terminal-channel.d.ts +0 -29
- package/dist/service/node-upgrade-coordinator.d.ts +0 -29
- package/dist/service/node-workspace-coordinator.d.ts +0 -29
- package/dist/service/recent-run-projection-service.d.ts +0 -14
- package/dist/service/run-attachment-service.d.ts +0 -38
- package/dist/service/run-domain-state.d.ts +0 -4
- package/dist/service/run-event-service.d.ts +0 -33
- package/dist/service/run-workbench-service.d.ts +0 -25
- package/dist/service/runner-channel-message-service.d.ts +0 -13
- package/dist/service/runner-interaction-service.d.ts +0 -39
- package/dist/service/runner-service.d.ts +0 -46
- package/dist/service/session-catalog-service.d.ts +0 -45
- package/dist/service/session-command-service.d.ts +0 -24
- package/dist/service/session-context-service.d.ts +0 -35
- package/dist/service/session-domain-state.d.ts +0 -9
- package/dist/service/session-identity-service.d.ts +0 -24
- package/dist/service/session-lifecycle-service.d.ts +0 -31
- package/dist/service/session-message-service.d.ts +0 -33
- package/dist/service/session-presentation-service.d.ts +0 -34
- package/dist/service/session-query-service.d.ts +0 -35
- package/dist/service/skill-directory-service.d.ts +0 -20
- package/dist/service/skill-install-service.d.ts +0 -21
- package/dist/service/skill-node-operation-service.d.ts +0 -44
- package/dist/service/terminal-relay-state.d.ts +0 -6
- package/dist/service/terminal-service.d.ts +0 -12
- package/dist/service/workbench-event-service.d.ts +0 -9
- package/dist/service/workbench-manifest-service.d.ts +0 -90
- package/dist/service/workspace-change-service.d.ts +0 -9
- package/dist/service/workspace-content-search-service.d.ts +0 -14
- package/dist/service/workspace-domain-state.d.ts +0 -79
- package/dist/service/workspace-file-service.d.ts +0 -18
- package/dist/service/workspace-git-exclude-service.d.ts +0 -4
- package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
- package/dist/service/workspace-service.d.ts +0 -15
- package/dist/service/workspace-session-service.d.ts +0 -23
- package/dist/service/workspace-upload-service.d.ts +0 -39
- package/dist/service/workspace-watch-service.d.ts +0 -23
- package/dist/service/workspace-workbench-service.d.ts +0 -58
- package/dist/service.d.ts +0 -4
- package/dist/storage.d.ts +0 -2
- package/dist/supervisor.d.ts +0 -1
- package/dist/terminal.d.ts +0 -133
- package/dist/util/node-operation-parsers.d.ts +0 -92
- package/dist/util/personal-instructions.d.ts +0 -2
- package/dist/util/runner-error.d.ts +0 -6
- package/dist/util/runner-native-session-parsers.d.ts +0 -74
- package/dist/util/safe-error.d.ts +0 -2
- package/dist/util/secret-environment.d.ts +0 -1
- package/dist/workspace.d.ts +0 -217
|
@@ -1,154 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
const MAX_FRAMES_PER_TURN =
|
|
3
|
-
const MAX_BYTES_PER_TURN = 256 * 1024;
|
|
4
|
-
const SOCKET_NORMAL_DIRECT_WATER_BYTES = 256 * 1024;
|
|
5
|
-
const SOCKET_HIGH_WATER_BYTES = 1024 * 1024;
|
|
6
|
-
const BACKPRESSURE_RETRY_MS = 5;
|
|
7
|
-
const OUTBOUND_QUEUE_TTL_MS = 30_000;
|
|
8
|
-
/** Keeps control responses responsive while reliable Workbench events are busy. */
|
|
9
|
-
export class ControlOutboundScheduler {
|
|
10
|
-
socket;
|
|
11
|
-
onExpired;
|
|
12
|
-
high = [];
|
|
13
|
-
normal = [];
|
|
14
|
-
scheduled = false;
|
|
15
|
-
retryTimer;
|
|
16
|
-
expiryTimer;
|
|
17
|
-
backpressureStartedAt;
|
|
18
|
-
backpressureLogged = false;
|
|
19
|
-
maximumHighDepth = 0;
|
|
20
|
-
maximumNormalDepth = 0;
|
|
21
|
-
constructor(socket, onExpired = () => undefined) {
|
|
22
|
-
this.socket = socket;
|
|
23
|
-
this.onExpired = onExpired;
|
|
24
|
-
}
|
|
25
|
-
enqueue(envelope, priority) {
|
|
26
|
-
const socket = this.socket();
|
|
27
|
-
const bufferedAmount = socket?.bufferedAmount ?? 0;
|
|
28
|
-
if (socket !== undefined &&
|
|
29
|
-
socket.readyState === 1 &&
|
|
30
|
-
this.high.length === 0 &&
|
|
31
|
-
(priority === 'high' || this.normal.length === 0) &&
|
|
32
|
-
bufferedAmount <= SOCKET_NORMAL_DIRECT_WATER_BYTES) {
|
|
33
|
-
socket.send(JSON.stringify(envelope));
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
(priority === 'high' ? this.high : this.normal).push({
|
|
37
|
-
envelope,
|
|
38
|
-
expiresAt: Date.now() + OUTBOUND_QUEUE_TTL_MS
|
|
39
|
-
});
|
|
40
|
-
this.maximumHighDepth = Math.max(this.maximumHighDepth, this.high.length);
|
|
41
|
-
this.maximumNormalDepth = Math.max(this.maximumNormalDepth, this.normal.length);
|
|
42
|
-
this.scheduleExpiry();
|
|
43
|
-
this.schedule();
|
|
44
|
-
}
|
|
45
|
-
reset() {
|
|
46
|
-
this.high.length = 0;
|
|
47
|
-
this.normal.length = 0;
|
|
48
|
-
this.scheduled = false;
|
|
49
|
-
if (this.retryTimer !== undefined)
|
|
50
|
-
clearTimeout(this.retryTimer);
|
|
51
|
-
this.retryTimer = undefined;
|
|
52
|
-
if (this.expiryTimer !== undefined)
|
|
53
|
-
clearTimeout(this.expiryTimer);
|
|
54
|
-
this.expiryTimer = undefined;
|
|
55
|
-
this.finishBackpressure('reset');
|
|
56
|
-
}
|
|
57
|
-
schedule() {
|
|
58
|
-
if (this.scheduled || this.retryTimer !== undefined)
|
|
59
|
-
return;
|
|
60
|
-
this.scheduled = true;
|
|
61
|
-
setImmediate(() => this.flush());
|
|
62
|
-
}
|
|
63
|
-
flush() {
|
|
64
|
-
this.scheduled = false;
|
|
65
|
-
const socket = this.socket();
|
|
66
|
-
if (socket === undefined || socket.readyState !== 1)
|
|
67
|
-
return;
|
|
68
|
-
if ((socket.bufferedAmount ?? 0) > SOCKET_HIGH_WATER_BYTES) {
|
|
69
|
-
this.waitForBackpressure(socket, 'high');
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
let frames = 0;
|
|
73
|
-
let bytes = 0;
|
|
74
|
-
while (frames < MAX_FRAMES_PER_TURN) {
|
|
75
|
-
const queue = this.high.length > 0 ? this.high : this.normal;
|
|
76
|
-
const queued = queue[0];
|
|
77
|
-
if (queued === undefined)
|
|
78
|
-
break;
|
|
79
|
-
// Reliable Workbench events may be replayed in a large burst after a
|
|
80
|
-
// reconnect. Stop normal traffic early so a later HTTP/control response
|
|
81
|
-
// always has WebSocket buffer headroom instead of waiting behind that burst.
|
|
82
|
-
if (queue === this.normal &&
|
|
83
|
-
(socket.bufferedAmount ?? 0) > SOCKET_NORMAL_DIRECT_WATER_BYTES) {
|
|
84
|
-
this.waitForBackpressure(socket, 'normal');
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const serialized = JSON.stringify(queued.envelope);
|
|
88
|
-
const size = Buffer.byteLength(serialized);
|
|
89
|
-
if (frames > 0 && bytes + size > MAX_BYTES_PER_TURN)
|
|
90
|
-
break;
|
|
91
|
-
queue.shift();
|
|
92
|
-
socket.send(serialized);
|
|
93
|
-
frames += 1;
|
|
94
|
-
bytes += size;
|
|
95
|
-
if ((socket.bufferedAmount ?? 0) > SOCKET_HIGH_WATER_BYTES)
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
if (this.high.length > 0 || this.normal.length > 0)
|
|
99
|
-
this.schedule();
|
|
100
|
-
else {
|
|
101
|
-
if (this.expiryTimer !== undefined)
|
|
102
|
-
clearTimeout(this.expiryTimer);
|
|
103
|
-
this.expiryTimer = undefined;
|
|
104
|
-
this.finishBackpressure('drained');
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
waitForBackpressure(socket, level) {
|
|
108
|
-
this.backpressureStartedAt ??= Date.now();
|
|
109
|
-
if (!this.backpressureLogged && Date.now() - this.backpressureStartedAt >= 250) {
|
|
110
|
-
this.backpressureLogged = true;
|
|
111
|
-
nodeLog('control.outbound.backpressure', {
|
|
112
|
-
level,
|
|
113
|
-
bufferedBytes: socket.bufferedAmount,
|
|
114
|
-
highDepth: this.high.length,
|
|
115
|
-
normalDepth: this.normal.length
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
this.retryTimer = setTimeout(() => {
|
|
119
|
-
this.retryTimer = undefined;
|
|
120
|
-
this.schedule();
|
|
121
|
-
}, BACKPRESSURE_RETRY_MS);
|
|
122
|
-
}
|
|
123
|
-
finishBackpressure(reason) {
|
|
124
|
-
if (this.backpressureLogged)
|
|
125
|
-
nodeLog('control.outbound.backpressure.recovered', {
|
|
126
|
-
reason,
|
|
127
|
-
durationMs: Date.now() - (this.backpressureStartedAt ?? Date.now()),
|
|
128
|
-
maximumHighDepth: this.maximumHighDepth,
|
|
129
|
-
maximumNormalDepth: this.maximumNormalDepth
|
|
130
|
-
});
|
|
131
|
-
this.backpressureStartedAt = undefined;
|
|
132
|
-
this.backpressureLogged = false;
|
|
133
|
-
this.maximumHighDepth = 0;
|
|
134
|
-
this.maximumNormalDepth = 0;
|
|
135
|
-
}
|
|
136
|
-
scheduleExpiry() {
|
|
137
|
-
if (this.expiryTimer !== undefined)
|
|
138
|
-
return;
|
|
139
|
-
const expiresAt = Math.min(this.high[0]?.expiresAt ?? Number.POSITIVE_INFINITY, this.normal[0]?.expiresAt ?? Number.POSITIVE_INFINITY);
|
|
140
|
-
if (!Number.isFinite(expiresAt))
|
|
141
|
-
return;
|
|
142
|
-
this.expiryTimer = setTimeout(() => {
|
|
143
|
-
this.expiryTimer = undefined;
|
|
144
|
-
if ((this.high[0]?.expiresAt ?? Number.POSITIVE_INFINITY) > Date.now() &&
|
|
145
|
-
(this.normal[0]?.expiresAt ?? Number.POSITIVE_INFINITY) > Date.now()) {
|
|
146
|
-
this.scheduleExpiry();
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
this.reset();
|
|
150
|
-
this.onExpired();
|
|
151
|
-
}, Math.max(0, expiresAt - Date.now()));
|
|
152
|
-
this.expiryTimer.unref();
|
|
153
|
-
}
|
|
154
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
const _0x5c87e7=_0x1286;(function(_0x4c0cf8,_0x14e45c){const _0x363a5a=_0x1286,_0x2f42de=_0x4c0cf8();while(!![]){try{const _0x8c7aaf=parseInt(_0x363a5a(0x1bd))/(0x1e50+0x1a26+0x3875*-0x1)*(parseInt(_0x363a5a(0x19f))/(-0x7*0x469+-0x3*0x5ae+0x2feb*0x1))+-parseInt(_0x363a5a(0x194))/(-0x1cf*-0x4+0x230c+0xe17*-0x3)*(-parseInt(_0x363a5a(0x1b1))/(-0x1bf1+0x8de+-0x65d*-0x3))+-parseInt(_0x363a5a(0x199))/(-0xea8+-0x2526*-0x1+-0x1679)*(parseInt(_0x363a5a(0x197))/(0x1*-0x1cbe+-0x25d0+-0x1*-0x4294))+-parseInt(_0x363a5a(0x1bb))/(0x2681+-0xfb+0x257f*-0x1)+-parseInt(_0x363a5a(0x1a6))/(-0x1*-0x15c5+0x1afc+-0x30b9)+parseInt(_0x363a5a(0x1ad))/(-0x1b7d+0x7e1*-0x3+0x74f*0x7)+parseInt(_0x363a5a(0x1a7))/(0x71*-0x47+0x8d7*0x1+0x168a);if(_0x8c7aaf===_0x14e45c)break;else _0x2f42de['push'](_0x2f42de['shift']());}catch(_0x33ac60){_0x2f42de['push'](_0x2f42de['shift']());}}}(_0x2bfe,-0x11c3*-0x36+-0x1*0x113b38+0x18852f));import{nodeLog}from'./operational.js';function _0x1286(_0x5a2d58,_0x13fc43){_0x5a2d58=_0x5a2d58-(-0xbfd+-0x1e9+-0x527*-0x3);const _0xcbd419=_0x2bfe();let _0x478ab6=_0xcbd419[_0x5a2d58];if(_0x1286['iRKbuk']===undefined){var _0x5e5436=function(_0x5da5fe){const _0x3528d0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa5949e='',_0x11e7af='';for(let _0x13dc80=-0x26c4+0x312+0x23b2,_0xf46b96,_0x127f75,_0x2be99c=0x594+-0x4*0x162+-0x2*0x6;_0x127f75=_0x5da5fe['charAt'](_0x2be99c++);~_0x127f75&&(_0xf46b96=_0x13dc80%(-0x1dd3+-0x128*-0x1e+-0x4d9)?_0xf46b96*(0xabf+0xf82+0x1a01*-0x1)+_0x127f75:_0x127f75,_0x13dc80++%(0x87b+-0x539+-0x53*0xa))?_0xa5949e+=String['fromCharCode'](0x17b8+0x2*0x78b+-0x25cf*0x1&_0xf46b96>>(-(-0x2f*-0xd+0x263c+-0x25*0x119)*_0x13dc80&0x1*0x1fb7+-0x1*-0x1f81+-0x3f32)):-0x1*0x7b7+0x1*0x1dec+-0x1635){_0x127f75=_0x3528d0['indexOf'](_0x127f75);}for(let _0x3f2a7b=0x451*-0x4+0x2182+-0x103e,_0x47f2f0=_0xa5949e['length'];_0x3f2a7b<_0x47f2f0;_0x3f2a7b++){_0x11e7af+='%'+('00'+_0xa5949e['charCodeAt'](_0x3f2a7b)['toString'](0x2*-0x702+-0x8*-0x2ba+0x3de*-0x2))['slice'](-(-0x2440+-0x3e7+0x1*0x2829));}return decodeURIComponent(_0x11e7af);};_0x1286['vXtfza']=_0x5e5436,_0x1286['AbzHLX']={},_0x1286['iRKbuk']=!![];}const _0x35dd48=_0xcbd419[-0x18e3+-0x1a48+0x332b];_0x1286['mNkRDj']!==_0x35dd48&&(_0x1286['AbzHLX']={},_0x1286['mNkRDj']=_0x35dd48);const _0x17fbac=_0x1286['AbzHLX'][_0x5a2d58];return _0x17fbac===undefined?(_0x478ab6=_0x1286['vXtfza'](_0x478ab6),_0x1286['AbzHLX'][_0x5a2d58]=_0x478ab6):_0x478ab6=_0x17fbac,_0x478ab6;}const MAX_FRAMES_PER_TURN=-0x13e9+0x594+-0x1*-0xe75,MAX_BYTES_PER_TURN=(0xad5+-0x74b*0x1+-0x41*0xa)*(-0x7*0x121+0xabf+0x128*0x1),SOCKET_NORMAL_DIRECT_WATER_BYTES=(0x87b+-0x539+-0x22*0x11)*(0x17b8+0x2*0x78b+-0x32a*0xb),SOCKET_HIGH_WATER_BYTES=(-0x2f*-0xd+0x263c+-0xf*0x271)*(0x1*0x1fb7+-0x1*-0x1f81+-0x3b38),BACKPRESSURE_RETRY_MS=-0x1*0x7b7+0x1*0x1dec+-0x1630,OUTBOUND_QUEUE_TTL_MS=0x6797*-0x1+0xc90a+0x13bd;export class ControlOutboundScheduler{[_0x5c87e7(0x1b3)];[_0x5c87e7(0x1bc)];[_0x5c87e7(0x1a3)]=[];[_0x5c87e7(0x1a8)]=[];[_0x5c87e7(0x1b7)]=![];[_0x5c87e7(0x19d)];[_0x5c87e7(0x1a2)];[_0x5c87e7(0x1a1)];[_0x5c87e7(0x1a9)]=![];[_0x5c87e7(0x1a4)]=0x2*-0x702+-0x8*-0x2ba+0x7cc*-0x1;[_0x5c87e7(0x198)]=-0x2440+-0x3e7+0x1*0x2827;constructor(_0x4e0482,_0x1c8f84=()=>undefined){const _0x4005ae=_0x5c87e7;this[_0x4005ae(0x1b3)]=_0x4e0482,this[_0x4005ae(0x1bc)]=_0x1c8f84;}[_0x5c87e7(0x19c)](_0x4a49a5,_0x4c1073){const _0x438e85=_0x5c87e7,_0x10f9ab=this[_0x438e85(0x1b3)](),_0x29cec8=_0x10f9ab?.[_0x438e85(0x1ab)]??-0x18e3+-0x1a48+0x332b;if(_0x10f9ab!==undefined&&_0x10f9ab[_0x438e85(0x1b6)]===0x22d0+0x16b3*-0x1+-0x32*0x3e&&this[_0x438e85(0x1a3)][_0x438e85(0x19a)]===0x25a8+0x47c+-0x2a24&&(_0x4c1073===_0x438e85(0x1a3)||this[_0x438e85(0x1a8)][_0x438e85(0x19a)]===-0x1a8e+-0x988*0x4+0x40ae*0x1)&&_0x29cec8<=SOCKET_NORMAL_DIRECT_WATER_BYTES){_0x10f9ab[_0x438e85(0x19e)](JSON[_0x438e85(0x191)](_0x4a49a5));return;}(_0x4c1073===_0x438e85(0x1a3)?this[_0x438e85(0x1a3)]:this[_0x438e85(0x1a8)])[_0x438e85(0x1a5)]({'envelope':_0x4a49a5,'expiresAt':Date[_0x438e85(0x1b5)]()+OUTBOUND_QUEUE_TTL_MS}),this[_0x438e85(0x1a4)]=Math[_0x438e85(0x193)](this[_0x438e85(0x1a4)],this[_0x438e85(0x1a3)][_0x438e85(0x19a)]),this[_0x438e85(0x198)]=Math[_0x438e85(0x193)](this[_0x438e85(0x198)],this[_0x438e85(0x1a8)][_0x438e85(0x19a)]),this[_0x438e85(0x1b9)](),this[_0x438e85(0x195)]();}[_0x5c87e7(0x1b0)](){const _0x4b7fb0=_0x5c87e7;this[_0x4b7fb0(0x1a3)][_0x4b7fb0(0x19a)]=0x1d*0x5b+0x1efa+-0x2949,this[_0x4b7fb0(0x1a8)][_0x4b7fb0(0x19a)]=-0xdf7+0xf9a*-0x1+-0x1d*-0x105,this[_0x4b7fb0(0x1b7)]=![];if(this[_0x4b7fb0(0x19d)]!==undefined)clearTimeout(this[_0x4b7fb0(0x19d)]);this[_0x4b7fb0(0x19d)]=undefined;if(this[_0x4b7fb0(0x1a2)]!==undefined)clearTimeout(this[_0x4b7fb0(0x1a2)]);this[_0x4b7fb0(0x1a2)]=undefined,this[_0x4b7fb0(0x1b4)](_0x4b7fb0(0x1b0));}[_0x5c87e7(0x195)](){const _0x3e1aaf=_0x5c87e7;if(this[_0x3e1aaf(0x1b7)]||this[_0x3e1aaf(0x19d)]!==undefined)return;this[_0x3e1aaf(0x1b7)]=!![],setImmediate(()=>this[_0x3e1aaf(0x1ae)]());}[_0x5c87e7(0x1ae)](){const _0x2a0115=_0x5c87e7;this[_0x2a0115(0x1b7)]=![];const _0x143b16=this[_0x2a0115(0x1b3)]();if(_0x143b16===undefined||_0x143b16[_0x2a0115(0x1b6)]!==0x591+0x1531+0x2f9*-0x9)return;if((_0x143b16[_0x2a0115(0x1ab)]??-0x1712+-0x23a1+0x3ab3)>SOCKET_HIGH_WATER_BYTES){this[_0x2a0115(0x1b2)](_0x143b16,_0x2a0115(0x1a3));return;}let _0x172cc7=0x1907+-0xb5*0x1d+0x3*-0x182,_0x5d6aac=-0x2445+-0x16*-0x14+0x6e9*0x5;while(_0x172cc7<MAX_FRAMES_PER_TURN){const _0x30387b=this[_0x2a0115(0x1a3)][_0x2a0115(0x19a)]>0x148+0x3ce+-0x516?this[_0x2a0115(0x1a3)]:this[_0x2a0115(0x1a8)],_0x3b315f=_0x30387b[0xb*-0x36+0x1*0x217e+-0x1f2c];if(_0x3b315f===undefined)break;if(_0x30387b===this[_0x2a0115(0x1a8)]&&(_0x143b16[_0x2a0115(0x1ab)]??0x2115+-0x192e*0x1+-0x7e7)>SOCKET_NORMAL_DIRECT_WATER_BYTES){this[_0x2a0115(0x1b2)](_0x143b16,_0x2a0115(0x1a8));return;}const _0x358abf=JSON[_0x2a0115(0x191)](_0x3b315f[_0x2a0115(0x1ba)]),_0x27c707=Buffer[_0x2a0115(0x1a0)](_0x358abf);if(_0x172cc7>0x3b2+-0x2061+0x1caf&&_0x5d6aac+_0x27c707>MAX_BYTES_PER_TURN)break;_0x30387b[_0x2a0115(0x1b8)](),_0x143b16[_0x2a0115(0x19e)](_0x358abf),_0x172cc7+=0xb00+-0xae8+-0x17,_0x5d6aac+=_0x27c707;if((_0x143b16[_0x2a0115(0x1ab)]??-0x240+0x1923+-0x16e3)>SOCKET_HIGH_WATER_BYTES)break;}if(this[_0x2a0115(0x1a3)][_0x2a0115(0x19a)]>-0x12c3+0x15bc+-0x2f9||this[_0x2a0115(0x1a8)][_0x2a0115(0x19a)]>0x1d*0x107+-0xfe3+-0x2*0x6f4)this[_0x2a0115(0x195)]();else{if(this[_0x2a0115(0x1a2)]!==undefined)clearTimeout(this[_0x2a0115(0x1a2)]);this[_0x2a0115(0x1a2)]=undefined,this[_0x2a0115(0x1b4)](_0x2a0115(0x1ac));}}[_0x5c87e7(0x1b2)](_0x4ed53a,_0x48c189){const _0x4589b2=_0x5c87e7;this[_0x4589b2(0x1a1)]??=Date[_0x4589b2(0x1b5)](),!this[_0x4589b2(0x1a9)]&&Date[_0x4589b2(0x1b5)]()-this[_0x4589b2(0x1a1)]>=0x541+0x9a9*-0x1+0xd*0x6a&&(this[_0x4589b2(0x1a9)]=!![],nodeLog(_0x4589b2(0x18f),{'level':_0x48c189,'bufferedBytes':_0x4ed53a[_0x4589b2(0x1ab)],'highDepth':this[_0x4589b2(0x1a3)][_0x4589b2(0x19a)],'normalDepth':this[_0x4589b2(0x1a8)][_0x4589b2(0x19a)]})),this[_0x4589b2(0x19d)]=setTimeout(()=>{const _0x84b7d6=_0x4589b2;this[_0x84b7d6(0x19d)]=undefined,this[_0x84b7d6(0x195)]();},BACKPRESSURE_RETRY_MS);}[_0x5c87e7(0x1b4)](_0x2ffb53){const _0xb59b56=_0x5c87e7;if(this[_0xb59b56(0x1a9)])nodeLog(_0xb59b56(0x19b),{'reason':_0x2ffb53,'durationMs':Date[_0xb59b56(0x1b5)]()-(this[_0xb59b56(0x1a1)]??Date[_0xb59b56(0x1b5)]()),'maximumHighDepth':this[_0xb59b56(0x1a4)],'maximumNormalDepth':this[_0xb59b56(0x198)]});this[_0xb59b56(0x1a1)]=undefined,this[_0xb59b56(0x1a9)]=![],this[_0xb59b56(0x1a4)]=0x641+0x9*0x265+-0x1*0x1bce,this[_0xb59b56(0x198)]=0x1*0x1136+0x1*0x1ea2+-0x2fd8;}[_0x5c87e7(0x1b9)](){const _0x3357be=_0x5c87e7;if(this[_0x3357be(0x1a2)]!==undefined)return;const _0x42ac2c=Math[_0x3357be(0x192)](this[_0x3357be(0x1a3)][0x1b99+0x10db*0x1+0x1*-0x2c74]?.[_0x3357be(0x190)]??Number[_0x3357be(0x196)],this[_0x3357be(0x1a8)][0xa91+0x455*-0x9+0xe36*0x2]?.[_0x3357be(0x190)]??Number[_0x3357be(0x196)]);if(!Number[_0x3357be(0x1af)](_0x42ac2c))return;this[_0x3357be(0x1a2)]=setTimeout(()=>{const _0x233906=_0x3357be;this[_0x233906(0x1a2)]=undefined;if((this[_0x233906(0x1a3)][-0x9ea*0x3+-0x22e4+0x40a2]?.[_0x233906(0x190)]??Number[_0x233906(0x196)])>Date[_0x233906(0x1b5)]()&&(this[_0x233906(0x1a8)][-0x14c1+0xa09+0xab8]?.[_0x233906(0x190)]??Number[_0x233906(0x196)])>Date[_0x233906(0x1b5)]()){this[_0x233906(0x1b9)]();return;}this[_0x233906(0x1b0)](),this[_0x233906(0x1bc)]();},Math[_0x3357be(0x193)](0xc1b+0x2*0x609+-0x182d,_0x42ac2c-Date[_0x3357be(0x1b5)]())),this[_0x3357be(0x1a2)][_0x3357be(0x1aa)]();}}function _0x2bfe(){const _0xfc904a=['mJy0nZq1nNP6vxfjyG','mJu0odeWq29ZBvnt','BM9YBwfS','yMfJA3bYzxnZDxjLtg9Nz2vK','Dw5Yzwy','yNvMzMvYzwrbBw91BNq','zhjHAw5Lza','mta0ndq1ntryzgvVquy','zMX1C2G','AxngAw5PDgu','CMvZzxq','otq4nhfYEw9kBq','D2fPDezVCKjHy2TWCMvZC3vYzq','C29JA2v0','zMLUAxnOqMfJA3bYzxnZDxjL','BM93','CMvHzhLtDgf0zq','C2nOzwr1BgvK','C2HPzNq','C2nOzwr1BgvfEhbPCNK','zw52zwXVCgu','nJK0ody1nurLuNDIuW','B25fEhbPCMvK','mwrxzNbmrW','y29UDhjVBc5VDxrIB3vUzc5IywnRChjLC3n1CMu','zxHWAxjLC0f0','C3rYAw5NAwz5','BwLU','Bwf4','mti2m253Eurwyq','C2nOzwr1Bgu','ue9tsvrjvKvFsu5gsu5jvfK','nZe0re10wxPg','Bwf4Aw11Bu5VCM1HBerLChrO','nZC2mgzqyvbIsG','BgvUz3rO','y29UDhjVBc5VDxrIB3vUzc5IywnRChjLC3n1CMuUCMvJB3zLCMvK','zw5XDwv1zq','CMv0CNLuAw1LCG','C2vUza','otq2nJrhwu9rruS','yNL0zuXLBMD0Aa','yMfJA3bYzxnZDxjLu3rHCNrLzef0','zxHWAxj5vgLTzxi','AgLNAa','Bwf4Aw11BuHPz2Hezxb0Aa','ChvZAa'];_0x2bfe=function(){return _0xfc904a;};return _0x2bfe();}
|