@myagentroam/node 0.9.8 → 0.9.10

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.
Files changed (213) hide show
  1. package/dist/capabilities.js +2 -92
  2. package/dist/claude-agent-sdk.js +2 -330
  3. package/dist/claude-channel.js +2 -44
  4. package/dist/codex-app-server.js +2 -503
  5. package/dist/config.js +2 -56
  6. package/dist/connector/node-connector-options.js +2 -1
  7. package/dist/connector/node-operation-router.js +2 -22
  8. package/dist/connector.js +2 -841
  9. package/dist/control-outbound-scheduler.js +2 -154
  10. package/dist/database.js +2 -1418
  11. package/dist/event-buffer.js +2 -19
  12. package/dist/fake-runner.js +2 -129
  13. package/dist/health.js +2 -3
  14. package/dist/main.js +2 -54
  15. package/dist/migrations/v001.js +3 -144
  16. package/dist/migrations/v002.js +2 -143
  17. package/dist/migrations/v003.js +2 -44
  18. package/dist/migrations/v004.js +34 -30
  19. package/dist/native-jsonl-reader.js +2 -186
  20. package/dist/native-session-history.js +2 -1119
  21. package/dist/opencode-runtime.js +2 -80
  22. package/dist/opencode-server.js +2 -263
  23. package/dist/operational.js +2 -122
  24. package/dist/process-tree.js +2 -18
  25. package/dist/rotating-log.js +2 -67
  26. package/dist/runner/abstract-runner.js +2 -232
  27. package/dist/runner/claude/managed-run-controller.js +2 -345
  28. package/dist/runner/claude-code-runner.js +2 -303
  29. package/dist/runner/codex/composer-image-markers.js +2 -0
  30. package/dist/runner/codex/conversation-parser.js +2 -861
  31. package/dist/runner/codex/managed-run-controller.js +2 -460
  32. package/dist/runner/codex-runner.js +2 -628
  33. package/dist/runner/fake-test-runner.js +2 -47
  34. package/dist/runner/opencode/conversation-parser.js +2 -221
  35. package/dist/runner/opencode/managed-run-controller.js +2 -537
  36. package/dist/runner/opencode-runner.js +2 -448
  37. package/dist/runner/runner-registry.js +2 -90
  38. package/dist/runner-command-engine.js +2 -70
  39. package/dist/runner-profiles.js +2 -215
  40. package/dist/runner-usage.js +2 -190
  41. package/dist/runtime-command-detector.js +2 -73
  42. package/dist/runtime-state.js +2 -973
  43. package/dist/service/attachment-domain-state.js +2 -7
  44. package/dist/service/conversation-history-service.js +2 -457
  45. package/dist/service/conversation-segment-service.js +2 -162
  46. package/dist/service/external-session-resume-service.js +2 -118
  47. package/dist/service/fake-managed-run-service.js +2 -60
  48. package/dist/service/managed-runner-session-service.js +2 -35
  49. package/dist/service/mcp-installation-verifier.js +2 -87
  50. package/dist/service/mcp-node-operation-service.js +2 -90
  51. package/dist/service/mcp-package-installer.js +2 -136
  52. package/dist/service/native-session-projection-service.js +2 -280
  53. package/dist/service/native-session-watch-service.js +2 -383
  54. package/dist/service/node-connection-lifecycle-service.js +2 -83
  55. package/dist/service/node-control-channel.js +2 -85
  56. package/dist/service/node-control-message-service.js +2 -107
  57. package/dist/service/node-request-service.js +2 -52
  58. package/dist/service/node-run-event-bridge.js +2 -83
  59. package/dist/service/node-terminal-channel.js +2 -182
  60. package/dist/service/node-upgrade-coordinator.js +2 -137
  61. package/dist/service/node-workspace-coordinator.js +2 -70
  62. package/dist/service/recent-run-projection-service.js +2 -0
  63. package/dist/service/run-attachment-service.js +2 -194
  64. package/dist/service/run-domain-state.js +2 -4
  65. package/dist/service/run-event-service.js +2 -193
  66. package/dist/service/run-workbench-service.js +2 -104
  67. package/dist/service/runner-channel-message-service.js +2 -20
  68. package/dist/service/runner-interaction-service.js +2 -243
  69. package/dist/service/runner-service.js +2 -71
  70. package/dist/service/session-catalog-service.js +2 -224
  71. package/dist/service/session-command-service.js +2 -76
  72. package/dist/service/session-context-service.js +2 -101
  73. package/dist/service/session-domain-state.js +2 -9
  74. package/dist/service/session-identity-service.js +2 -86
  75. package/dist/service/session-lifecycle-service.js +2 -240
  76. package/dist/service/session-message-service.js +2 -173
  77. package/dist/service/session-presentation-service.js +2 -43
  78. package/dist/service/session-query-service.js +2 -82
  79. package/dist/service/skill-directory-service.js +2 -238
  80. package/dist/service/skill-install-service.js +2 -434
  81. package/dist/service/skill-node-operation-service.js +2 -206
  82. package/dist/service/terminal-relay-state.js +2 -3
  83. package/dist/service/terminal-service.js +2 -52
  84. package/dist/service/workbench-event-service.js +2 -19
  85. package/dist/service/workbench-manifest-service.js +2 -69
  86. package/dist/service/workspace-change-service.js +2 -86
  87. package/dist/service/workspace-content-search-service.js +2 -477
  88. package/dist/service/workspace-domain-state.js +2 -41
  89. package/dist/service/workspace-file-service.js +2 -122
  90. package/dist/service/workspace-git-exclude-service.js +2 -119
  91. package/dist/service/workspace-queue-workbench-service.js +2 -304
  92. package/dist/service/workspace-service.js +2 -69
  93. package/dist/service/workspace-session-service.js +2 -139
  94. package/dist/service/workspace-upload-service.js +2 -262
  95. package/dist/service/workspace-watch-service.js +2 -146
  96. package/dist/service/workspace-workbench-service.js +2 -405
  97. package/dist/service.js +2 -38
  98. package/dist/storage.js +2 -32
  99. package/dist/supervisor.js +2 -136
  100. package/dist/terminal.js +2 -416
  101. package/dist/util/node-operation-parsers.js +2 -382
  102. package/dist/util/personal-instructions.js +2 -31
  103. package/dist/util/runner-error.js +2 -52
  104. package/dist/util/runner-native-session-parsers.js +2 -490
  105. package/dist/util/safe-error.js +2 -5
  106. package/dist/util/secret-environment.js +2 -25
  107. package/dist/workspace.js +2 -1519
  108. package/package.json +3 -3
  109. package/dist/capabilities.d.ts +0 -12
  110. package/dist/claude-agent-sdk.d.ts +0 -92
  111. package/dist/claude-channel.d.ts +0 -28
  112. package/dist/codex-app-server.d.ts +0 -133
  113. package/dist/config.d.ts +0 -18
  114. package/dist/connector/node-connector-options.d.ts +0 -27
  115. package/dist/connector/node-operation-router.d.ts +0 -9
  116. package/dist/connector.d.ts +0 -93
  117. package/dist/control-outbound-scheduler.d.ts +0 -29
  118. package/dist/database.d.ts +0 -305
  119. package/dist/event-buffer.d.ts +0 -9
  120. package/dist/fake-runner.d.ts +0 -42
  121. package/dist/health.d.ts +0 -4
  122. package/dist/main.d.ts +0 -2
  123. package/dist/migrations/v001.d.ts +0 -3
  124. package/dist/migrations/v002.d.ts +0 -4
  125. package/dist/migrations/v003.d.ts +0 -4
  126. package/dist/migrations/v004.d.ts +0 -4
  127. package/dist/native-jsonl-reader.d.ts +0 -35
  128. package/dist/native-session-history.d.ts +0 -126
  129. package/dist/opencode-runtime.d.ts +0 -33
  130. package/dist/opencode-server.d.ts +0 -49
  131. package/dist/operational.d.ts +0 -39
  132. package/dist/process-tree.d.ts +0 -9
  133. package/dist/rotating-log.d.ts +0 -17
  134. package/dist/runner/abstract-runner.d.ts +0 -172
  135. package/dist/runner/claude/managed-run-controller.d.ts +0 -51
  136. package/dist/runner/claude-code-runner.d.ts +0 -72
  137. package/dist/runner/codex/conversation-parser.d.ts +0 -59
  138. package/dist/runner/codex/managed-run-controller.d.ts +0 -90
  139. package/dist/runner/codex-runner.d.ts +0 -103
  140. package/dist/runner/fake-test-runner.d.ts +0 -26
  141. package/dist/runner/opencode/conversation-parser.d.ts +0 -31
  142. package/dist/runner/opencode/managed-run-controller.d.ts +0 -82
  143. package/dist/runner/opencode-runner.d.ts +0 -71
  144. package/dist/runner/runner-registry.d.ts +0 -19
  145. package/dist/runner-command-engine.d.ts +0 -28
  146. package/dist/runner-profiles.d.ts +0 -15
  147. package/dist/runner-usage.d.ts +0 -33
  148. package/dist/runtime-command-detector.d.ts +0 -3
  149. package/dist/runtime-state.d.ts +0 -169
  150. package/dist/service/attachment-domain-state.d.ts +0 -7
  151. package/dist/service/conversation-history-service.d.ts +0 -43
  152. package/dist/service/conversation-segment-service.d.ts +0 -20
  153. package/dist/service/external-session-resume-service.d.ts +0 -34
  154. package/dist/service/fake-managed-run-service.d.ts +0 -28
  155. package/dist/service/managed-runner-session-service.d.ts +0 -12
  156. package/dist/service/mcp-installation-verifier.d.ts +0 -9
  157. package/dist/service/mcp-node-operation-service.d.ts +0 -11
  158. package/dist/service/mcp-package-installer.d.ts +0 -8
  159. package/dist/service/native-session-projection-service.d.ts +0 -52
  160. package/dist/service/native-session-watch-service.d.ts +0 -62
  161. package/dist/service/node-connection-lifecycle-service.d.ts +0 -35
  162. package/dist/service/node-control-channel.d.ts +0 -32
  163. package/dist/service/node-control-message-service.d.ts +0 -27
  164. package/dist/service/node-request-service.d.ts +0 -14
  165. package/dist/service/node-run-event-bridge.d.ts +0 -40
  166. package/dist/service/node-terminal-channel.d.ts +0 -29
  167. package/dist/service/node-upgrade-coordinator.d.ts +0 -29
  168. package/dist/service/node-workspace-coordinator.d.ts +0 -29
  169. package/dist/service/run-attachment-service.d.ts +0 -38
  170. package/dist/service/run-domain-state.d.ts +0 -4
  171. package/dist/service/run-event-service.d.ts +0 -33
  172. package/dist/service/run-workbench-service.d.ts +0 -25
  173. package/dist/service/runner-channel-message-service.d.ts +0 -13
  174. package/dist/service/runner-interaction-service.d.ts +0 -39
  175. package/dist/service/runner-service.d.ts +0 -46
  176. package/dist/service/session-catalog-service.d.ts +0 -45
  177. package/dist/service/session-command-service.d.ts +0 -24
  178. package/dist/service/session-context-service.d.ts +0 -35
  179. package/dist/service/session-domain-state.d.ts +0 -9
  180. package/dist/service/session-identity-service.d.ts +0 -24
  181. package/dist/service/session-lifecycle-service.d.ts +0 -31
  182. package/dist/service/session-message-service.d.ts +0 -33
  183. package/dist/service/session-presentation-service.d.ts +0 -34
  184. package/dist/service/session-query-service.d.ts +0 -35
  185. package/dist/service/skill-directory-service.d.ts +0 -20
  186. package/dist/service/skill-install-service.d.ts +0 -21
  187. package/dist/service/skill-node-operation-service.d.ts +0 -44
  188. package/dist/service/terminal-relay-state.d.ts +0 -6
  189. package/dist/service/terminal-service.d.ts +0 -12
  190. package/dist/service/workbench-event-service.d.ts +0 -9
  191. package/dist/service/workbench-manifest-service.d.ts +0 -90
  192. package/dist/service/workspace-change-service.d.ts +0 -9
  193. package/dist/service/workspace-content-search-service.d.ts +0 -14
  194. package/dist/service/workspace-domain-state.d.ts +0 -79
  195. package/dist/service/workspace-file-service.d.ts +0 -18
  196. package/dist/service/workspace-git-exclude-service.d.ts +0 -4
  197. package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
  198. package/dist/service/workspace-service.d.ts +0 -15
  199. package/dist/service/workspace-session-service.d.ts +0 -23
  200. package/dist/service/workspace-upload-service.d.ts +0 -39
  201. package/dist/service/workspace-watch-service.d.ts +0 -23
  202. package/dist/service/workspace-workbench-service.d.ts +0 -58
  203. package/dist/service.d.ts +0 -4
  204. package/dist/storage.d.ts +0 -2
  205. package/dist/supervisor.d.ts +0 -1
  206. package/dist/terminal.d.ts +0 -133
  207. package/dist/util/node-operation-parsers.d.ts +0 -92
  208. package/dist/util/personal-instructions.d.ts +0 -2
  209. package/dist/util/runner-error.d.ts +0 -6
  210. package/dist/util/runner-native-session-parsers.d.ts +0 -74
  211. package/dist/util/safe-error.d.ts +0 -2
  212. package/dist/util/secret-environment.d.ts +0 -1
  213. package/dist/workspace.d.ts +0 -217
@@ -1,154 +1,2 @@
1
- import { nodeLog } from './operational.js';
2
- const MAX_FRAMES_PER_TURN = 32;
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();}