@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.
Files changed (214) 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 -845
  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 -982
  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 -84
  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 -78
  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 -94
  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 -171
  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 -36
  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/recent-run-projection-service.d.ts +0 -14
  170. package/dist/service/run-attachment-service.d.ts +0 -38
  171. package/dist/service/run-domain-state.d.ts +0 -4
  172. package/dist/service/run-event-service.d.ts +0 -33
  173. package/dist/service/run-workbench-service.d.ts +0 -25
  174. package/dist/service/runner-channel-message-service.d.ts +0 -13
  175. package/dist/service/runner-interaction-service.d.ts +0 -39
  176. package/dist/service/runner-service.d.ts +0 -46
  177. package/dist/service/session-catalog-service.d.ts +0 -45
  178. package/dist/service/session-command-service.d.ts +0 -24
  179. package/dist/service/session-context-service.d.ts +0 -35
  180. package/dist/service/session-domain-state.d.ts +0 -9
  181. package/dist/service/session-identity-service.d.ts +0 -24
  182. package/dist/service/session-lifecycle-service.d.ts +0 -31
  183. package/dist/service/session-message-service.d.ts +0 -33
  184. package/dist/service/session-presentation-service.d.ts +0 -34
  185. package/dist/service/session-query-service.d.ts +0 -35
  186. package/dist/service/skill-directory-service.d.ts +0 -20
  187. package/dist/service/skill-install-service.d.ts +0 -21
  188. package/dist/service/skill-node-operation-service.d.ts +0 -44
  189. package/dist/service/terminal-relay-state.d.ts +0 -6
  190. package/dist/service/terminal-service.d.ts +0 -12
  191. package/dist/service/workbench-event-service.d.ts +0 -9
  192. package/dist/service/workbench-manifest-service.d.ts +0 -90
  193. package/dist/service/workspace-change-service.d.ts +0 -9
  194. package/dist/service/workspace-content-search-service.d.ts +0 -14
  195. package/dist/service/workspace-domain-state.d.ts +0 -79
  196. package/dist/service/workspace-file-service.d.ts +0 -18
  197. package/dist/service/workspace-git-exclude-service.d.ts +0 -4
  198. package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
  199. package/dist/service/workspace-service.d.ts +0 -15
  200. package/dist/service/workspace-session-service.d.ts +0 -23
  201. package/dist/service/workspace-upload-service.d.ts +0 -39
  202. package/dist/service/workspace-watch-service.d.ts +0 -23
  203. package/dist/service/workspace-workbench-service.d.ts +0 -58
  204. package/dist/service.d.ts +0 -4
  205. package/dist/storage.d.ts +0 -2
  206. package/dist/supervisor.d.ts +0 -1
  207. package/dist/terminal.d.ts +0 -133
  208. package/dist/util/node-operation-parsers.d.ts +0 -92
  209. package/dist/util/personal-instructions.d.ts +0 -2
  210. package/dist/util/runner-error.d.ts +0 -6
  211. package/dist/util/runner-native-session-parsers.d.ts +0 -74
  212. package/dist/util/safe-error.d.ts +0 -2
  213. package/dist/util/secret-environment.d.ts +0 -1
  214. package/dist/workspace.d.ts +0 -217
@@ -1,137 +1,2 @@
1
- import { mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
2
- import { dirname, resolve } from 'node:path';
3
- const STABLE_VERSION = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/u;
4
- export class NodeUpgradeCoordinator {
5
- requestPath;
6
- activeRunCount;
7
- onStatus;
8
- onReady;
9
- now;
10
- status = { state: 'IDLE', updatedAt: Date.now() };
11
- timer;
12
- constructor(requestPath, activeRunCount, onStatus, onReady, now = Date.now) {
13
- this.requestPath = requestPath;
14
- this.activeRunCount = activeRunCount;
15
- this.onStatus = onStatus;
16
- this.onReady = onReady;
17
- this.now = now;
18
- }
19
- snapshot() {
20
- return this.status;
21
- }
22
- async loadResult(resultPath) {
23
- try {
24
- const result = JSON.parse(await readFile(resultPath, 'utf8'));
25
- if (result['state'] === 'FAILED' && typeof result['errorCode'] === 'string')
26
- this.update({
27
- state: 'FAILED',
28
- errorCode: result['errorCode'],
29
- updatedAt: typeof result['updatedAt'] === 'number' ? result['updatedAt'] : this.now()
30
- });
31
- }
32
- catch {
33
- // Missing or malformed historical result does not prevent Node startup.
34
- }
35
- }
36
- request(data) {
37
- const targetVersion = record(data).targetVersion;
38
- if (typeof targetVersion !== 'string' || !STABLE_VERSION.test(targetVersion))
39
- throw new Error('NODE_UPGRADE_VERSION_INVALID');
40
- if (this.status.state !== 'IDLE' && this.status.state !== 'FAILED') {
41
- if (this.status.targetVersion !== targetVersion)
42
- throw new Error('NODE_UPGRADE_ALREADY_PENDING');
43
- return { status: 'ALREADY_PENDING', targetVersion, activeRunCount: this.activeRunCount() };
44
- }
45
- this.update({
46
- state: 'WAITING_FOR_RUNS',
47
- targetVersion,
48
- activeRunCount: this.activeRunCount(),
49
- updatedAt: this.now()
50
- });
51
- this.timer = setInterval(() => void this.checkReadySafely(), 250);
52
- void this.checkReadySafely();
53
- return { status: 'ACCEPTED', targetVersion, activeRunCount: this.activeRunCount() };
54
- }
55
- cancel() {
56
- if (this.status.state !== 'WAITING_FOR_RUNS')
57
- throw new Error('NODE_UPGRADE_NOT_CANCELLABLE');
58
- this.clearTimer();
59
- this.update({ state: 'IDLE', updatedAt: this.now() });
60
- return { cancelled: true };
61
- }
62
- blocks(operation) {
63
- return (this.pending() &&
64
- (operation === 'session.start' ||
65
- operation === 'session.resume' ||
66
- operation === 'session.message' ||
67
- operation === 'session.command.execute' ||
68
- operation === 'runner.command.execute' ||
69
- operation === 'session.channel.message' ||
70
- operation === 'workspace.queue.message.execute' ||
71
- operation === 'terminal.open'));
72
- }
73
- pending() {
74
- return this.status.state === 'WAITING_FOR_RUNS' || this.status.state === 'READY_TO_RESTART';
75
- }
76
- stop() {
77
- this.clearTimer();
78
- }
79
- async checkReady() {
80
- if (this.status.state !== 'WAITING_FOR_RUNS')
81
- return;
82
- const activeRunCount = this.activeRunCount();
83
- if (activeRunCount > 0) {
84
- if (this.status.activeRunCount !== activeRunCount)
85
- this.update({ ...this.status, activeRunCount, updatedAt: this.now() });
86
- return;
87
- }
88
- this.clearTimer();
89
- const targetVersion = this.status.targetVersion;
90
- this.update({
91
- state: 'READY_TO_RESTART',
92
- targetVersion,
93
- activeRunCount: 0,
94
- updatedAt: this.now()
95
- });
96
- const path = this.requestPath();
97
- const temporary = `${path}.${process.pid}.tmp`;
98
- await mkdir(dirname(path), { recursive: true, mode: 0o700 });
99
- await writeFile(temporary, `${JSON.stringify({ schemaVersion: 1, targetVersion, createdAt: this.now() })}\n`, { mode: 0o600 });
100
- await rename(temporary, path).catch(async (error) => {
101
- await rm(temporary, { force: true });
102
- throw error;
103
- });
104
- this.onReady();
105
- }
106
- async checkReadySafely() {
107
- try {
108
- await this.checkReady();
109
- }
110
- catch {
111
- this.clearTimer();
112
- this.update({
113
- state: 'FAILED',
114
- targetVersion: this.status.targetVersion,
115
- errorCode: 'NODE_UPGRADE_REQUEST_WRITE_FAILED',
116
- updatedAt: this.now()
117
- });
118
- }
119
- }
120
- update(status) {
121
- this.status = status;
122
- this.onStatus(status);
123
- }
124
- clearTimer() {
125
- if (this.timer !== undefined)
126
- clearInterval(this.timer);
127
- this.timer = undefined;
128
- }
129
- }
130
- export function nodeUpgradeRequestPath(databasePath) {
131
- return resolve(dirname(databasePath), 'upgrade-request.json');
132
- }
133
- function record(value) {
134
- if (value === null || typeof value !== 'object' || Array.isArray(value))
135
- throw new Error('NODE_UPGRADE_REQUEST_INVALID');
136
- return value;
137
- }
1
+ /* mar-release-protected */
2
+ const _0x4e7012=_0x5c25;(function(_0x32ac8f,_0x35be27){const _0x4e6d12=_0x5c25,_0x18347f=_0x32ac8f();while(!![]){try{const _0x5dfffc=-parseInt(_0x4e6d12(0x98))/(-0xcc1+0xa9*-0x5+0x100f)+parseInt(_0x4e6d12(0xc7))/(0x139e+-0xc*0x1b0+0xa4)*(-parseInt(_0x4e6d12(0xcf))/(-0x1+0x7*-0x208+0xe3c))+parseInt(_0x4e6d12(0xac))/(-0xa9f+0x259d*0x1+-0xd7d*0x2)+-parseInt(_0x4e6d12(0x95))/(0xd21*0x1+-0x3d*0x67+0xb6f*0x1)+-parseInt(_0x4e6d12(0xc1))/(0x8*-0x180+-0x772*-0x2+0x2*-0x16f)+-parseInt(_0x4e6d12(0xd3))/(-0x5a6*-0x2+0x67a*0x5+-0x2ba7)*(parseInt(_0x4e6d12(0xd1))/(-0x17*0x165+0x2*0x3f1+-0xd*-0x1dd))+-parseInt(_0x4e6d12(0xcb))/(-0x1a57*-0x1+-0xeae*-0x1+-0x4*0xa3f)*(-parseInt(_0x4e6d12(0x96))/(-0x1*-0x16f9+-0x2089*0x1+0x4cd*0x2));if(_0x5dfffc===_0x35be27)break;else _0x18347f['push'](_0x18347f['shift']());}catch(_0xa43f53){_0x18347f['push'](_0x18347f['shift']());}}}(_0x126f,-0xd36b*-0x3+-0x1871ad*-0x1+0x1*-0xcc793));import{mkdir,readFile,rename,rm,writeFile}from'node:fs/promises';function _0x5c25(_0x2fcda1,_0x41d996){_0x2fcda1=_0x2fcda1-(0x25af+-0x15d*-0x18+-0x45d2);const _0x505c68=_0x126f();let _0x42f696=_0x505c68[_0x2fcda1];if(_0x5c25['BjNOls']===undefined){var _0xb4cd13=function(_0x22d7ce){const _0x1f22da='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x18d0ed='',_0x116771='';for(let _0x4b8c92=0x22e1+0x4*-0x7c8+-0x1f*0x1f,_0x20b06e,_0x285e46,_0xcc27dc=-0x1*-0x24be+-0x25a7+0x1*0xe9;_0x285e46=_0x22d7ce['charAt'](_0xcc27dc++);~_0x285e46&&(_0x20b06e=_0x4b8c92%(-0x16a5+0x2485*0x1+-0x377*0x4)?_0x20b06e*(0x7*-0x10f+0xeac+-0x703)+_0x285e46:_0x285e46,_0x4b8c92++%(-0x25*-0xee+-0x17d*0xa+-0x4e0*0x4))?_0x18d0ed+=String['fromCharCode'](-0x2*0x2a2+0x1fa9+-0x1*0x1966&_0x20b06e>>(-(-0x2365+0x2cd*-0xd+0x47d0)*_0x4b8c92&-0x1*0x1f7b+-0x7*0x4ff+0x427a)):0x49d+0x1d*-0x14c+0x20ff){_0x285e46=_0x1f22da['indexOf'](_0x285e46);}for(let _0x203b5a=-0x1250*0x1+-0xdc6*-0x1+0x48a,_0x32c414=_0x18d0ed['length'];_0x203b5a<_0x32c414;_0x203b5a++){_0x116771+='%'+('00'+_0x18d0ed['charCodeAt'](_0x203b5a)['toString'](0x1bb3+0x1b68+-0x370b))['slice'](-(-0x100*0x1a+0x91*-0x31+0x1*0x35c3));}return decodeURIComponent(_0x116771);};_0x5c25['VFlOtF']=_0xb4cd13,_0x5c25['uLFauk']={},_0x5c25['BjNOls']=!![];}const _0x2039b4=_0x505c68[0xa15+0x1f8f*-0x1+0x1*0x157a];_0x5c25['HBEVQx']!==_0x2039b4&&(_0x5c25['uLFauk']={},_0x5c25['HBEVQx']=_0x2039b4);const _0x2b0bde=_0x5c25['uLFauk'][_0x2fcda1];return _0x2b0bde===undefined?(_0x42f696=_0x5c25['VFlOtF'](_0x42f696),_0x5c25['uLFauk'][_0x2fcda1]=_0x42f696):_0x42f696=_0x2b0bde,_0x42f696;}import{dirname,resolve}from'node:path';const STABLE_VERSION=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/u;export class NodeUpgradeCoordinator{[_0x4e7012(0xd2)];[_0x4e7012(0xa1)];[_0x4e7012(0x9c)];[_0x4e7012(0x97)];[_0x4e7012(0xb8)];[_0x4e7012(0xa4)]={'state':_0x4e7012(0xcc),'updatedAt':Date[_0x4e7012(0xb8)]()};[_0x4e7012(0xbd)];constructor(_0x47ea15,_0x1643f3,_0x26a461,_0x4198b9,_0x478193=Date[_0x4e7012(0xb8)]){const _0xb6620d=_0x4e7012;this[_0xb6620d(0xd2)]=_0x47ea15,this[_0xb6620d(0xa1)]=_0x1643f3,this[_0xb6620d(0x9c)]=_0x26a461,this[_0xb6620d(0x97)]=_0x4198b9,this[_0xb6620d(0xb8)]=_0x478193;}[_0x4e7012(0xbb)](){const _0x1d6e4d=_0x4e7012;return this[_0x1d6e4d(0xa4)];}async[_0x4e7012(0xa0)](_0x3fffc3){const _0x384452=_0x4e7012;try{const _0x1659b9=JSON[_0x384452(0xb2)](await readFile(_0x3fffc3,_0x384452(0xb4)));if(_0x1659b9[_0x384452(0x9a)]===_0x384452(0xaf)&&typeof _0x1659b9[_0x384452(0xbe)]===_0x384452(0xb0))this[_0x384452(0x9f)]({'state':_0x384452(0xaf),'errorCode':_0x1659b9[_0x384452(0xbe)],'updatedAt':typeof _0x1659b9[_0x384452(0xb3)]===_0x384452(0xa6)?_0x1659b9[_0x384452(0xb3)]:this[_0x384452(0xb8)]()});}catch{}}[_0x4e7012(0xca)](_0x1fd53b){const _0x5a56f0=_0x4e7012,_0x59acaf=record(_0x1fd53b)[_0x5a56f0(0xa9)];if(typeof _0x59acaf!==_0x5a56f0(0xb0)||!STABLE_VERSION[_0x5a56f0(0xb1)](_0x59acaf))throw new Error(_0x5a56f0(0xbf));if(this[_0x5a56f0(0xa4)][_0x5a56f0(0x9a)]!==_0x5a56f0(0xcc)&&this[_0x5a56f0(0xa4)][_0x5a56f0(0x9a)]!==_0x5a56f0(0xaf)){if(this[_0x5a56f0(0xa4)][_0x5a56f0(0xa9)]!==_0x59acaf)throw new Error(_0x5a56f0(0x9b));return{'status':_0x5a56f0(0xd0),'targetVersion':_0x59acaf,'activeRunCount':this[_0x5a56f0(0xa1)]()};}return this[_0x5a56f0(0x9f)]({'state':_0x5a56f0(0x9e),'targetVersion':_0x59acaf,'activeRunCount':this[_0x5a56f0(0xa1)](),'updatedAt':this[_0x5a56f0(0xb8)]()}),this[_0x5a56f0(0xbd)]=setInterval(()=>void this[_0x5a56f0(0xc4)](),0x5da+-0x259*-0x1+-0x1*0x739),void this[_0x5a56f0(0xc4)](),{'status':_0x5a56f0(0xad),'targetVersion':_0x59acaf,'activeRunCount':this[_0x5a56f0(0xa1)]()};}[_0x4e7012(0xbc)](){const _0x5c1681=_0x4e7012;if(this[_0x5c1681(0xa4)][_0x5c1681(0x9a)]!==_0x5c1681(0x9e))throw new Error(_0x5c1681(0xcd));return this[_0x5c1681(0xc8)](),this[_0x5c1681(0x9f)]({'state':_0x5c1681(0xcc),'updatedAt':this[_0x5c1681(0xb8)]()}),{'cancelled':!![]};}[_0x4e7012(0xc6)](_0x1d85a8){const _0x1c7de8=_0x4e7012;return this[_0x1c7de8(0xb7)]()&&(_0x1d85a8===_0x1c7de8(0xa2)||_0x1d85a8===_0x1c7de8(0xaa)||_0x1d85a8===_0x1c7de8(0xb5)||_0x1d85a8===_0x1c7de8(0x9d)||_0x1d85a8===_0x1c7de8(0x99)||_0x1d85a8===_0x1c7de8(0xa5)||_0x1d85a8===_0x1c7de8(0xb9)||_0x1d85a8===_0x1c7de8(0xc5));}[_0x4e7012(0xb7)](){const _0x3bb86d=_0x4e7012;return this[_0x3bb86d(0xa4)][_0x3bb86d(0x9a)]===_0x3bb86d(0x9e)||this[_0x3bb86d(0xa4)][_0x3bb86d(0x9a)]===_0x3bb86d(0xc0);}[_0x4e7012(0xc3)](){const _0x1af541=_0x4e7012;this[_0x1af541(0xc8)]();}async[_0x4e7012(0xa3)](){const _0x266875=_0x4e7012;if(this[_0x266875(0xa4)][_0x266875(0x9a)]!==_0x266875(0x9e))return;const _0x3296ba=this[_0x266875(0xa1)]();if(_0x3296ba>-0x79d*0x5+-0xf47*-0x1+0xb65*0x2){if(this[_0x266875(0xa4)][_0x266875(0xa1)]!==_0x3296ba)this[_0x266875(0x9f)]({...this[_0x266875(0xa4)],'activeRunCount':_0x3296ba,'updatedAt':this[_0x266875(0xb8)]()});return;}this[_0x266875(0xc8)]();const _0x1bdf98=this[_0x266875(0xa4)][_0x266875(0xa9)];this[_0x266875(0x9f)]({'state':_0x266875(0xc0),'targetVersion':_0x1bdf98,'activeRunCount':0x0,'updatedAt':this[_0x266875(0xb8)]()});const _0x3da8c4=this[_0x266875(0xd2)](),_0xf68adc=_0x3da8c4+'.'+process[_0x266875(0xab)]+_0x266875(0xa8);await mkdir(dirname(_0x3da8c4),{'recursive':!![],'mode':0x1c0}),await writeFile(_0xf68adc,JSON[_0x266875(0xce)]({'schemaVersion':0x1,'targetVersion':_0x1bdf98,'createdAt':this[_0x266875(0xb8)]()})+'\x0a',{'mode':0x180}),await rename(_0xf68adc,_0x3da8c4)[_0x266875(0xb6)](async _0x3fcf39=>{await rm(_0xf68adc,{'force':!![]});throw _0x3fcf39;}),this[_0x266875(0x97)]();}async[_0x4e7012(0xc4)](){const _0x429eb0=_0x4e7012;try{await this[_0x429eb0(0xa3)]();}catch{this[_0x429eb0(0xc8)](),this[_0x429eb0(0x9f)]({'state':_0x429eb0(0xaf),'targetVersion':this[_0x429eb0(0xa4)][_0x429eb0(0xa9)],'errorCode':_0x429eb0(0xba),'updatedAt':this[_0x429eb0(0xb8)]()});}}[_0x4e7012(0x9f)](_0x5a579e){const _0x5385ab=_0x4e7012;this[_0x5385ab(0xa4)]=_0x5a579e,this[_0x5385ab(0x9c)](_0x5a579e);}[_0x4e7012(0xc8)](){const _0x318e93=_0x4e7012;if(this[_0x318e93(0xbd)]!==undefined)clearInterval(this[_0x318e93(0xbd)]);this[_0x318e93(0xbd)]=undefined;}}export function nodeUpgradeRequestPath(_0x294273){const _0x5cb997=_0x4e7012;return resolve(dirname(_0x294273),_0x5cb997(0xa7));}function record(_0x565448){const _0x1423df=_0x4e7012;if(_0x565448===null||typeof _0x565448!==_0x1423df(0xc9)||Array[_0x1423df(0xae)](_0x565448))throw new Error(_0x1423df(0xc2));return _0x565448;}function _0x126f(){const _0x2b0b18=['C3rHDhvZ','C2vZC2LVBI5JAgfUBMvSlM1LC3nHz2u','BNvTyMvY','DxbNCMfKzs1Yzxf1zxn0lMPZB24','lNrTCa','DgfYz2v0vMvYC2LVBG','C2vZC2LVBI5Yzxn1Bwu','CgLK','mta5nZa0BMLOvwLb','qundrvburuq','AxnbCNjHEq','rKfjteve','C3rYAw5N','DgvZDa','CgfYC2u','DxbKyxrLzef0','DxrMoa','C2vZC2LVBI5TzxnZywDL','y2f0y2G','CgvUzgLUzW','BM93','D29YA3nWywnLlNf1zxvLlM1LC3nHz2uUzxHLy3v0zq','tK9erv9vueDsqurfx1jfuvvfu1rFv1jjvevFrKfjteve','C25HChnOB3q','y2fUy2vS','DgLTzxi','zxjYB3jdB2rL','tK9erv9vueDsqurfx1zfuLnjt05Fsu5wquXjra','uKvbrfLFve9FuKvtvefsva','mtaWnZCWmZzewLDequO','tK9erv9vueDsqurfx1jfuvvfu1rFsu5wquXjra','C3rVCa','y2HLy2TszwfKEvnHzMvSEq','DgvYBwLUywWUB3bLBG','yMXVy2TZ','mta2odqYmNzUsKzJsW','y2XLyxjuAw1LCG','B2jQzwn0','CMvXDwvZDa','ndu1ngDYqLLcqq','surmrq','tK9erv9vueDsqurfx05pvf9dqu5druXmqujmrq','C3rYAw5NAwz5','nMfTu1nKCa','quXsrufewv9qru5esu5h','nJKXmdy5nNfUALbYDW','CMvXDwvZDfbHDgG','mtrss2DYEhm','mJa1mti1nu5bs0DLBq','mtiYodeWAuf5t2Pt','B25szwfKEq','ndi4otq4EerHz05h','CNvUBMvYlMnVBw1HBMqUzxHLy3v0zq','C3rHDgu','tK9erv9vueDsqurfx0fmuKvbrfLFuevoreLorW','B25tDgf0Dxm','C2vZC2LVBI5JB21Tyw5KlMv4zwn1Dgu','v0fjveLor19gt1jFuLvouW','DxbKyxrL','Bg9HzfjLC3vSDa','ywn0AxzLuNvUq291BNq','C2vZC2LVBI5ZDgfYDa','y2HLy2TszwfKEq'];_0x126f=function(){return _0x2b0b18;};return _0x126f();}
@@ -1,70 +1,2 @@
1
- import { inspectWorkspace } from '../workspace.js';
2
- /** Coordinates Workspace invalidation, inspection and persisted Terminal summaries. */
3
- export class NodeWorkspaceCoordinator {
4
- options;
5
- constructor(options) {
6
- this.options = options;
7
- }
8
- require(workspaceId) {
9
- if (typeof workspaceId !== 'string')
10
- throw new Error('WORKSPACE_NOT_FOUND');
11
- const workspace = this.options.database()?.getWorkspace(workspaceId);
12
- if (workspace === undefined)
13
- throw new Error('WORKSPACE_NOT_FOUND');
14
- return workspace;
15
- }
16
- clearWatches(workspaceId) {
17
- this.options.watches.clear(workspaceId);
18
- }
19
- cachedSessions(workspaceId) {
20
- return this.options.sessions.cached(workspaceId);
21
- }
22
- invalidate(workspaceId) {
23
- this.options.changes.invalidate(workspaceId);
24
- for (const topic of ['files', 'changes']) {
25
- if (!this.options.watches.topicActive(workspaceId, topic))
26
- continue;
27
- this.options.emit(workspaceId, topic, this.options.watches.nextRevision(workspaceId));
28
- }
29
- }
30
- invalidateChanges(workspaceId) {
31
- this.options.changes.invalidate(workspaceId);
32
- }
33
- persistTerminal(summary) {
34
- const database = this.options.database();
35
- if (database === undefined)
36
- return;
37
- const value = {
38
- id: summary.id,
39
- workspaceId: summary.workspaceId,
40
- profileId: summary.profileId,
41
- state: summary.state,
42
- exitCode: summary.exitCode,
43
- rows: summary.rows,
44
- cols: summary.cols,
45
- latestSequence: summary.latestSequence,
46
- createdAt: summary.createdAt,
47
- updatedAt: summary.updatedAt
48
- };
49
- database.saveTerminalSession(value);
50
- }
51
- async inspect(envelope) {
52
- const requestedPath = typeof envelope.payload === 'object' &&
53
- envelope.payload !== null &&
54
- 'path' in envelope.payload
55
- ? envelope.payload.path
56
- : undefined;
57
- const config = this.options.config();
58
- if (typeof requestedPath !== 'string' || config === undefined) {
59
- this.options.send('workspace.inspect.result', { error: 'WORKSPACE_INVALID' }, envelope.id);
60
- return;
61
- }
62
- try {
63
- const inspection = await inspectWorkspace(requestedPath, config.allowedRoots);
64
- this.options.send('workspace.inspect.result', inspection, envelope.id);
65
- }
66
- catch {
67
- this.options.send('workspace.inspect.result', { error: 'WORKSPACE_INVALID' }, envelope.id);
68
- }
69
- }
70
- }
1
+ /* mar-release-protected */
2
+ const _0x470cba=_0x358a;function _0x358a(_0x1ef947,_0x4725af){_0x1ef947=_0x1ef947-(0x1*-0x2537+-0x1266+0x3860);const _0x4ae43f=_0x336b();let _0x3697af=_0x4ae43f[_0x1ef947];if(_0x358a['dBdZrF']===undefined){var _0x29524e=function(_0x3ed95e){const _0x5f6bb2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16ddb4='',_0x485d1e='';for(let _0x42eec6=0x982+-0x1*-0x1ccb+0x5*-0x7a9,_0x37ee26,_0x40422a,_0x3f725b=0x1*-0x1e31+0x2235+0x4*-0x101;_0x40422a=_0x3ed95e['charAt'](_0x3f725b++);~_0x40422a&&(_0x37ee26=_0x42eec6%(0x2272+-0x2e2*-0xc+-0x4506)?_0x37ee26*(-0x1*-0x369+-0x2c8*0x1+-0x61)+_0x40422a:_0x40422a,_0x42eec6++%(-0x2*0x461+-0xa*0x1b4+0x2*0xce7))?_0x16ddb4+=String['fromCharCode'](0x291+0x1271*0x1+-0x1403&_0x37ee26>>(-(-0x931+-0x89c+-0x2f*-0x61)*_0x42eec6&0x2b8*-0x2+-0x1045*-0x1+-0x1*0xacf)):0x2*-0x919+-0xe1*-0x1+0x1151){_0x40422a=_0x5f6bb2['indexOf'](_0x40422a);}for(let _0x7f7926=0x258e+0xcd4*-0x2+0x1*-0xbe6,_0x59fde1=_0x16ddb4['length'];_0x7f7926<_0x59fde1;_0x7f7926++){_0x485d1e+='%'+('00'+_0x16ddb4['charCodeAt'](_0x7f7926)['toString'](-0x2185*0x1+-0x13*-0x9a+-0x6b*-0x35))['slice'](-(-0x4d9+-0x10*0x74+0xc1b));}return decodeURIComponent(_0x485d1e);};_0x358a['cBVFsD']=_0x29524e,_0x358a['usxHFF']={},_0x358a['dBdZrF']=!![];}const _0xe356b8=_0x4ae43f[0x34*-0x11+0x760*-0x2+0x1d2*0xa];_0x358a['DjzzJz']!==_0xe356b8&&(_0x358a['usxHFF']={},_0x358a['DjzzJz']=_0xe356b8);const _0x2ba947=_0x358a['usxHFF'][_0x1ef947];return _0x2ba947===undefined?(_0x3697af=_0x358a['cBVFsD'](_0x3697af),_0x358a['usxHFF'][_0x1ef947]=_0x3697af):_0x3697af=_0x2ba947,_0x3697af;}(function(_0x100885,_0x17d24f){const _0x1c8953=_0x358a,_0x555b75=_0x100885();while(!![]){try{const _0x3b226b=parseInt(_0x1c8953(0xe3))/(-0xf7*-0x7+0xd93*0x1+-0x1453)+-parseInt(_0x1c8953(0xd7))/(0x1be7+0x306+-0x1*0x1eeb)+parseInt(_0x1c8953(0xdd))/(0x208a+-0x1195+-0xef2*0x1)+-parseInt(_0x1c8953(0xd2))/(0x948+0x12f*-0xa+-0x2f*-0xe)*(parseInt(_0x1c8953(0xcc))/(0x8e0+-0x3*0x447+-0x3fa*-0x1))+-parseInt(_0x1c8953(0xd3))/(0x20a0+-0x13c*-0xd+-0x1a*0x1df)*(-parseInt(_0x1c8953(0xec))/(0x2*0x607+0x9ed+-0x14*0x119))+parseInt(_0x1c8953(0xd6))/(0x139b+0x1*0x11bd+-0x2550)*(-parseInt(_0x1c8953(0xe7))/(-0x1637*-0x1+-0x1683+0x55))+parseInt(_0x1c8953(0xd9))/(0x2*0x24a+0xe63+-0x12ed)*(parseInt(_0x1c8953(0xcb))/(0x2047+-0x9*-0x3d6+-0x42c2));if(_0x3b226b===_0x17d24f)break;else _0x555b75['push'](_0x555b75['shift']());}catch(_0x424c2b){_0x555b75['push'](_0x555b75['shift']());}}}(_0x336b,0x315bc+-0x1977d+0x61*0xfb));import{inspectWorkspace}from'../workspace.js';function _0x336b(){const _0x23c9c6=['C3rHDgu','mZi3mJi5sxftAND2','BMv4DfjLDMLZAw9U','Aw52ywXPzgf0zq','zMLSzxm','zxHPDenVzgu','DxbKyxrLzef0','y29UzMLN','C2f2zvrLCM1PBMfSu2vZC2LVBG','C3rYAw5N','Cgf0Aa','zgf0ywjHC2u','CMvXDwLYzq','y2XLyxjxyxrJAgvZ','zw1PDa','Aw5ZCgvJDa','C2vUza','ywXSB3DLzfjVB3rZ','oti4nJmXEeLKBu5l','mJmYotv1wwLMv1u','y2fJAgvK','CgvYC2LZDfrLCM1PBMfS','C2vZC2LVBNm','Bgf0zxn0u2vXDwvUy2u','y2XLyxi','ng5brezvyW','nKXezeHizW','Dg9WAwnby3rPDMu','D29YA3nWywnLlMLUC3bLy3qUCMvZDwX0','ogDwCNP4Cq','mZq4mdj3ze1VD0S','D2f0y2HLCW','mZbXtu9eD2G','D29YA3nWywnLswq','y2HHBMDLCW','y29SCW','mti0otGWvLLjyLr4','z2v0v29YA3nWywnL','Aw52ywXPzgf0zunOyw5Nzxm','v09ss1nqqunfx05pvf9gt1vora','v09ss1nqqunfx0LovKfmsuq','ChjVzMLSzuLK','mJeZndDHtLPXDhu','B3b0Aw9UCW','Cgf5Bg9Hza','CM93CW','mtK2odC5nufqvLHqua','y2fJAgvKu2vZC2LVBNm','y3jLyxrLzef0','B2jQzwn0'];_0x336b=function(){return _0x23c9c6;};return _0x336b();}export class NodeWorkspaceCoordinator{[_0x470cba(0xe4)];constructor(_0x2de343){const _0x233984=_0x470cba;this[_0x233984(0xe4)]=_0x2de343;}[_0x470cba(0xc5)](_0x34ba3f){const _0x5d6dfb=_0x470cba;if(typeof _0x34ba3f!==_0x5d6dfb(0xf4))throw new Error(_0x5d6dfb(0xe0));const _0x38299a=this[_0x5d6dfb(0xe4)][_0x5d6dfb(0xc4)]()?.[_0x5d6dfb(0xde)](_0x34ba3f);if(_0x38299a===undefined)throw new Error(_0x5d6dfb(0xe0));return _0x38299a;}[_0x470cba(0xc6)](_0xad6b30){const _0x142010=_0x470cba;this[_0x142010(0xe4)][_0x142010(0xd8)][_0x142010(0xd1)](_0xad6b30);}[_0x470cba(0xe8)](_0x59705b){const _0x3f61d2=_0x470cba;return this[_0x3f61d2(0xe4)][_0x3f61d2(0xcf)][_0x3f61d2(0xcd)](_0x59705b);}[_0x470cba(0xee)](_0x393349){const _0x5f2a07=_0x470cba;this[_0x5f2a07(0xe4)][_0x5f2a07(0xdb)][_0x5f2a07(0xee)](_0x393349);for(const _0x333d8f of[_0x5f2a07(0xef),_0x5f2a07(0xdb)]){if(!this[_0x5f2a07(0xe4)][_0x5f2a07(0xd8)][_0x5f2a07(0xd4)](_0x393349,_0x333d8f))continue;this[_0x5f2a07(0xe4)][_0x5f2a07(0xc7)](_0x393349,_0x333d8f,this[_0x5f2a07(0xe4)][_0x5f2a07(0xd8)][_0x5f2a07(0xed)](_0x393349));}}[_0x470cba(0xdf)](_0x1b4a88){const _0x5de056=_0x470cba;this[_0x5de056(0xe4)][_0x5de056(0xdb)][_0x5de056(0xee)](_0x1b4a88);}[_0x470cba(0xce)](_0x333791){const _0x3015fe=_0x470cba,_0x4101ad=this[_0x3015fe(0xe4)][_0x3015fe(0xc4)]();if(_0x4101ad===undefined)return;const _0x59ba7c={'id':_0x333791['id'],'workspaceId':_0x333791[_0x3015fe(0xda)],'profileId':_0x333791[_0x3015fe(0xe2)],'state':_0x333791[_0x3015fe(0xeb)],'exitCode':_0x333791[_0x3015fe(0xf0)],'rows':_0x333791[_0x3015fe(0xe6)],'cols':_0x333791[_0x3015fe(0xdc)],'latestSequence':_0x333791[_0x3015fe(0xd0)],'createdAt':_0x333791[_0x3015fe(0xe9)],'updatedAt':_0x333791[_0x3015fe(0xf1)]};_0x4101ad[_0x3015fe(0xf3)](_0x59ba7c);}async[_0x470cba(0xc8)](_0x59e941){const _0x38c0cb=_0x470cba,_0x1316c8=typeof _0x59e941[_0x38c0cb(0xe5)]===_0x38c0cb(0xea)&&_0x59e941[_0x38c0cb(0xe5)]!==null&&_0x38c0cb(0xc3)in _0x59e941[_0x38c0cb(0xe5)]?_0x59e941[_0x38c0cb(0xe5)][_0x38c0cb(0xc3)]:undefined,_0x541f4d=this[_0x38c0cb(0xe4)][_0x38c0cb(0xf2)]();if(typeof _0x1316c8!==_0x38c0cb(0xf4)||_0x541f4d===undefined){this[_0x38c0cb(0xe4)][_0x38c0cb(0xc9)](_0x38c0cb(0xd5),{'error':_0x38c0cb(0xe1)},_0x59e941['id']);return;}try{const _0xb4de13=await inspectWorkspace(_0x1316c8,_0x541f4d[_0x38c0cb(0xca)]);this[_0x38c0cb(0xe4)][_0x38c0cb(0xc9)](_0x38c0cb(0xd5),_0xb4de13,_0x59e941['id']);}catch{this[_0x38c0cb(0xe4)][_0x38c0cb(0xc9)](_0x38c0cb(0xd5),{'error':_0x38c0cb(0xe1)},_0x59e941['id']);}}}
@@ -1,78 +1,2 @@
1
- const TERMINAL_TTL_MS = 12 * 60 * 60_000;
2
- const CLEANUP_INTERVAL_MS = 5 * 60_000;
3
- const TERMINAL_LIMIT = 100;
4
- export class RecentRunProjectionService {
5
- emit;
6
- now;
7
- runs = new Map();
8
- cleanupTimer;
9
- constructor(emit, now = Date.now) {
10
- this.emit = emit;
11
- this.now = now;
12
- this.cleanupTimer = setInterval(() => this.cleanup(), CLEANUP_INTERVAL_MS);
13
- this.cleanupTimer.unref();
14
- }
15
- record(run, session) {
16
- if (!Number.isSafeInteger(run.initiatedByUserId) || run.initiatedByUserId === undefined)
17
- return;
18
- const existing = this.runs.get(run.id);
19
- if (existing !== undefined && existing.version > run.version)
20
- return;
21
- const startedAt = existing?.startedAt ?? (run.status === 'QUEUED' ? null : run.updatedAt);
22
- const completedAt = terminal(run.status) ? (existing?.completedAt ?? run.updatedAt) : null;
23
- const projection = {
24
- runId: run.id,
25
- nodeId: run.nodeId,
26
- workspaceId: run.workspaceId,
27
- sessionId: run.sessionId,
28
- sessionTitle: session.customTitle ?? session.runnerTitle ?? session.id,
29
- runner: run.runner,
30
- status: run.status,
31
- createdAt: run.createdAt,
32
- startedAt,
33
- completedAt,
34
- sortAt: startedAt ?? run.createdAt,
35
- updatedAt: run.updatedAt,
36
- version: run.version,
37
- userId: run.initiatedByUserId
38
- };
39
- this.runs.set(run.id, projection);
40
- this.cleanup();
41
- this.emit({ kind: 'UPDATE', run: projection });
42
- }
43
- snapshot() {
44
- this.cleanup();
45
- return [...this.runs.values()].sort(compareRecentRuns);
46
- }
47
- publishSnapshot() {
48
- this.emit({ kind: 'SNAPSHOT', runs: [...this.snapshot()] });
49
- }
50
- dispose() {
51
- clearInterval(this.cleanupTimer);
52
- }
53
- cleanup() {
54
- const cutoff = this.now() - TERMINAL_TTL_MS;
55
- for (const [runId, run] of this.runs)
56
- if (run.completedAt !== null && run.completedAt <= cutoff)
57
- this.runs.delete(runId);
58
- const byUser = new Map();
59
- for (const run of this.runs.values()) {
60
- if (run.completedAt === null)
61
- continue;
62
- const values = byUser.get(run.userId) ?? [];
63
- values.push(run);
64
- byUser.set(run.userId, values);
65
- }
66
- for (const values of byUser.values())
67
- for (const run of values.sort(compareRecentRuns).slice(TERMINAL_LIMIT))
68
- this.runs.delete(run.runId);
69
- }
70
- }
71
- function compareRecentRuns(left, right) {
72
- return (right.sortAt - left.sortAt ||
73
- right.createdAt - left.createdAt ||
74
- right.runId.localeCompare(left.runId));
75
- }
76
- function terminal(status) {
77
- return ['SUCCEEDED', 'FAILED', 'CANCELLED', 'INTERRUPTED'].includes(status);
78
- }
1
+ /* mar-release-protected */
2
+ const _0x121596=_0x52a7;function _0x52a7(_0x2ed5f4,_0x453499){_0x2ed5f4=_0x2ed5f4-(0xe26*-0x2+-0x2610+0x1*0x430e);const _0x231ea2=_0x524d();let _0x5a61d2=_0x231ea2[_0x2ed5f4];if(_0x52a7['qHSMAj']===undefined){var _0x4f6549=function(_0x6f1890){const _0x348e92='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x325aae='',_0x420479='';for(let _0x102411=-0x126c+-0x52*-0x76+-0x1360,_0x1a7c8d,_0xacdbb0,_0x433dfe=0x1bff+0x2*-0xe1+-0x1a3d;_0xacdbb0=_0x6f1890['charAt'](_0x433dfe++);~_0xacdbb0&&(_0x1a7c8d=_0x102411%(-0x1*0xf9a+0x83b*0x1+-0x763*-0x1)?_0x1a7c8d*(-0x1*0x1659+0x115*-0x1f+0x2*0x1c12)+_0xacdbb0:_0xacdbb0,_0x102411++%(0x40b+0x3d5+-0x7dc))?_0x325aae+=String['fromCharCode'](0x22f+0x1eb9+-0x1fe9&_0x1a7c8d>>(-(0x532+0x16c7*0x1+0x1bf7*-0x1)*_0x102411&-0x10cb*0x1+0x83*0x40+0x1*-0xfef)):-0x1034+-0x1*0xf65+-0x1*-0x1f99){_0xacdbb0=_0x348e92['indexOf'](_0xacdbb0);}for(let _0x153e4e=0x151b+0x915+-0x1e30,_0x2b8272=_0x325aae['length'];_0x153e4e<_0x2b8272;_0x153e4e++){_0x420479+='%'+('00'+_0x325aae['charCodeAt'](_0x153e4e)['toString'](-0x185f+-0xf0a+0x2779))['slice'](-(0x952+0x2115+-0x2a65));}return decodeURIComponent(_0x420479);};_0x52a7['QyBrpw']=_0x4f6549,_0x52a7['SMyjbA']={},_0x52a7['qHSMAj']=!![];}const _0x41cc42=_0x231ea2[-0xba4+-0xc1*-0x19+-0x735];_0x52a7['DzNsdP']!==_0x41cc42&&(_0x52a7['SMyjbA']={},_0x52a7['DzNsdP']=_0x41cc42);const _0x2d531d=_0x52a7['SMyjbA'][_0x2ed5f4];return _0x2d531d===undefined?(_0x5a61d2=_0x52a7['QyBrpw'](_0x5a61d2),_0x52a7['SMyjbA'][_0x2ed5f4]=_0x5a61d2):_0x5a61d2=_0x2d531d,_0x5a61d2;}function _0x524d(){const _0x50eeca=['CNvUBMvYvgL0Bgu','C2XPy2u','y2XLyw51Ca','mtm0mtu0reXwvu94','C2v0','mtq0mdC0yK93q2j2','C2vZC2LVBKLK','BM93','zgvSzxrL','y3vZDg9TvgL0Bgu','vvbeqvrf','DxnLCKLK','su5urvjsvvburuq','nJa1ndqWmhvlwgHZEa','DhjPBq','Bg9JywXLq29TCgfYzq','ndKXnuDTq1DdCa','mtq0qxforvLo','mty1ntGZzKrmzuzy','u05bufnit1q','BM9KzuLK','AxntywzLsw50zwDLCG','y2XLyw51CfrPBwvY','CMvJB3jK','y29TCgXLDgvKqxq','C3rHDhvZ','q0foq0vmteve','mtGYndHuBujcze8','Aw5PDgLHDgvKqNLvC2vYswq','u1vdq0vfreve','rKfjteve','DxnLCK1LC3nHz2u','CNvUswq','DMfSDwvZ','C25HChnOB3q','zw1PDa','mta1m01HChLJsW','y3jLyxrLzef0','zgLZCg9Zzq','Aw5JBhvKzxm','Dw5Yzwy','C3rHCNrLzef0','DMvYC2LVBG','zxH0zxjUywXtzxnZAw9Uswq','C29YDa','ChvZAa','CNvUC0j5u2vZC2LVBG','ndq3odGYAxveEwT0','CMvWBgfJzq','C29YDef0','ChvIBgLZAfnUyxbZAg90','m05UsejQDW','DxbKyxrLzef0','z2v0','uvvfvuve','BgvUz3rO','CNvUBMvY','D29YA3nWywnLswq'];_0x524d=function(){return _0x50eeca;};return _0x524d();}(function(_0x54a973,_0x876432){const _0x3d2d2a=_0x52a7,_0x2a6356=_0x54a973();while(!![]){try{const _0x2b4d42=parseInt(_0x3d2d2a(0xe7))/(-0x23ea+0x1536+0x1*0xeb5)+-parseInt(_0x3d2d2a(0xca))/(0x32c+-0x1*-0xd1a+-0x1*0x1044)*(parseInt(_0x3d2d2a(0xce))/(0x2*0x117a+0xfb*-0x7+-0xc*0x257))+-parseInt(_0x3d2d2a(0xe6))/(0xacf+0x309*-0x3+-0x1b0)*(parseInt(_0x3d2d2a(0xe5))/(0x6a1*0x5+0x40e*0x9+-0x459e*0x1))+-parseInt(_0x3d2d2a(0xd8))/(0x26b*-0xb+-0x6a7+-0x1*-0x2146)+-parseInt(_0x3d2d2a(0xda))/(-0x4*-0x8e9+0x93e+-0x2cdb)+parseInt(_0x3d2d2a(0xb6))/(0x5*0x151+0x7*-0x312+0xef1)*(-parseInt(_0x3d2d2a(0xbf))/(-0x898+0xc92+0x3f1*-0x1))+parseInt(_0x3d2d2a(0xe2))/(-0x7*0xe5+-0x1a4e+0x209b);if(_0x2b4d42===_0x876432)break;else _0x2a6356['push'](_0x2a6356['shift']());}catch(_0x553b17){_0x2a6356['push'](_0x2a6356['shift']());}}}(_0x524d,-0x22946+-0x3dabb+0x91895*0x1));const TERMINAL_TTL_MS=(0x9a3+-0x1*0x1118+0x781)*(0xae7+0x244+0xb*-0x12d)*(0x1*-0x4efd+0x1867e+-0x4d21),CLEANUP_INTERVAL_MS=(-0x218b+0x2ab*0x7+0x1*0xee3)*(0x3082+0x2dfe+0x8be0),TERMINAL_LIMIT=0x22f+0x1eb9+-0x2084;export class RecentRunProjectionService{[_0x121596(0xbe)];[_0x121596(0xdc)];[_0x121596(0xc9)]=new Map();[_0x121596(0xeb)];constructor(_0x11f0e3,_0x1d559e=Date[_0x121596(0xdc)]){const _0x808c5c=_0x121596;this[_0x808c5c(0xbe)]=_0x11f0e3,this[_0x808c5c(0xdc)]=_0x1d559e,this[_0x808c5c(0xeb)]=setInterval(()=>this[_0x808c5c(0xd7)](),CLEANUP_INTERVAL_MS),this[_0x808c5c(0xeb)][_0x808c5c(0xc3)]();}[_0x121596(0xb2)](_0xbc2a28,_0x2ec548,_0x2c4469){const _0x39dad4=_0x121596;if(!Number[_0x39dad4(0xea)](_0xbc2a28[_0x39dad4(0xb7)])||_0xbc2a28[_0x39dad4(0xb7)]===undefined)return;if(_0x2ec548[_0x39dad4(0xc6)]===null)return;const _0x3b0fec=taskKey(_0xbc2a28[_0x39dad4(0xb7)],_0xbc2a28[_0x39dad4(0xdb)]),_0x58109a=this[_0x39dad4(0xc9)][_0x39dad4(0xd0)](_0x3b0fec),_0x250bd6=_0x58109a?.[_0x39dad4(0xbb)]===_0xbc2a28['id'];if(_0x250bd6&&_0x58109a[_0x39dad4(0xc5)]>_0xbc2a28[_0x39dad4(0xc5)])return;if(!_0x250bd6&&_0x58109a!==undefined&&newerThan(_0x58109a,_0xbc2a28))return;const _0xf929c=(_0x250bd6?_0x58109a[_0x39dad4(0xc4)]:null)??(_0xbc2a28[_0x39dad4(0xb4)]===_0x39dad4(0xd1)?null:_0xbc2a28[_0x39dad4(0xcf)]),_0xb1ddc9=terminal(_0xbc2a28[_0x39dad4(0xb4)])?(_0x250bd6?_0x58109a[_0x39dad4(0xb3)]:null)??_0xbc2a28[_0x39dad4(0xcf)]:null,_0x217b50=messagePreview(_0x2c4469)??(_0x250bd6?_0x58109a[_0x39dad4(0xba)]:undefined),_0x46b146={'runId':_0xbc2a28['id'],'nodeId':_0xbc2a28[_0x39dad4(0xe9)],'workspaceId':_0xbc2a28[_0x39dad4(0xd4)],'sessionId':_0xbc2a28[_0x39dad4(0xdb)],'sessionTitle':_0x2ec548[_0x39dad4(0xde)]??_0x2ec548[_0x39dad4(0xd5)]??_0x2ec548['id'],..._0x217b50===undefined?{}:{'userMessage':_0x217b50},'runner':_0xbc2a28[_0x39dad4(0xd3)],'status':_0xbc2a28[_0x39dad4(0xb4)],'createdAt':_0xbc2a28[_0x39dad4(0xc0)],'startedAt':_0xf929c,'completedAt':_0xb1ddc9,'sortAt':_0xf929c??_0xbc2a28[_0x39dad4(0xc0)],'updatedAt':_0xbc2a28[_0x39dad4(0xcf)],'version':_0xbc2a28[_0x39dad4(0xc5)],'userId':_0xbc2a28[_0x39dad4(0xb7)]};this[_0x39dad4(0xc9)][_0x39dad4(0xd9)](_0x3b0fec,_0x46b146),this[_0x39dad4(0xd7)](),this[_0x39dad4(0xbe)]({'kind':_0x39dad4(0xdf),'run':_0x46b146});}[_0x121596(0xbd)](){const _0x2c2052=_0x121596;return this[_0x2c2052(0xd7)](),[...this[_0x2c2052(0xc9)][_0x2c2052(0xbc)]()][_0x2c2052(0xc7)](compareRecentRuns);}[_0x121596(0xcd)](){const _0xf42741=_0x121596;this[_0xf42741(0xbe)]({'kind':_0xf42741(0xe8),'runs':[...this[_0xf42741(0xbd)]()]});}[_0x121596(0xc1)](){const _0x43ad4d=_0x121596;clearInterval(this[_0x43ad4d(0xeb)]);}[_0x121596(0xd7)](){const _0x446dce=_0x121596,_0x2c4c6b=this[_0x446dce(0xdc)]()-TERMINAL_TTL_MS;for(const [_0x12b316,_0x1f64a3]of this[_0x446dce(0xc9)])if(_0x1f64a3[_0x446dce(0xb3)]!==null&&_0x1f64a3[_0x446dce(0xb3)]<=_0x2c4c6b)this[_0x446dce(0xc9)][_0x446dce(0xdd)](_0x12b316);const _0x501d7d=new Map();for(const _0x2ed5f4 of this[_0x446dce(0xc9)][_0x446dce(0xbc)]()){if(_0x2ed5f4[_0x446dce(0xb3)]===null)continue;const _0x453499=_0x501d7d[_0x446dce(0xd0)](_0x2ed5f4[_0x446dce(0xe0)])??[];_0x453499[_0x446dce(0xc8)](_0x2ed5f4),_0x501d7d[_0x446dce(0xd9)](_0x2ed5f4[_0x446dce(0xe0)],_0x453499);}for(const _0x231ea2 of _0x501d7d[_0x446dce(0xbc)]())for(const _0x5a61d2 of _0x231ea2[_0x446dce(0xc7)](compareRecentRuns)[_0x446dce(0xd6)](TERMINAL_LIMIT))this[_0x446dce(0xc9)][_0x446dce(0xdd)](taskKey(_0x5a61d2[_0x446dce(0xe0)],_0x5a61d2[_0x446dce(0xdb)]));}}function compareRecentRuns(_0x4f6549,_0x41cc42){const _0x18d573=_0x121596;return _0x41cc42[_0x18d573(0xcc)]-_0x4f6549[_0x18d573(0xcc)]||_0x41cc42[_0x18d573(0xc0)]-_0x4f6549[_0x18d573(0xc0)]||_0x41cc42[_0x18d573(0xbb)][_0x18d573(0xe4)](_0x4f6549[_0x18d573(0xbb)]);}function newerThan(_0x2d531d,_0x6f1890){const _0x4dcd0c=_0x121596;return _0x2d531d[_0x4dcd0c(0xc0)]>_0x6f1890[_0x4dcd0c(0xc0)]||_0x2d531d[_0x4dcd0c(0xc0)]===_0x6f1890[_0x4dcd0c(0xc0)]&&_0x2d531d[_0x4dcd0c(0xbb)][_0x4dcd0c(0xe4)](_0x6f1890['id'])>0x532+0x16c7*0x1+0x5d*-0x4d;}function taskKey(_0x348e92,_0x325aae){return _0x348e92+'\x00'+_0x325aae;}function messagePreview(_0x420479){const _0x3aff5a=_0x121596,_0x102411=_0x420479?.[_0x3aff5a(0xe3)]()[_0x3aff5a(0xcb)](/\s+/gu,'\x20');return _0x102411===undefined||_0x102411[_0x3aff5a(0xd2)]===-0x10cb*0x1+0x83*0x40+0x13*-0xd7?undefined:_0x102411[_0x3aff5a(0xd6)](-0x1034+-0x1*0xf65+-0x1*-0x1f99,0x151b+0x915+-0x1c3c);}function terminal(_0x1a7c8d){const _0x363cde=_0x121596;return[_0x363cde(0xb8),_0x363cde(0xb9),_0x363cde(0xb5),_0x363cde(0xe1)][_0x363cde(0xc2)](_0x1a7c8d);}
@@ -1,194 +1,2 @@
1
- import { tmpdir } from 'node:os';
2
- import { isAbsolute, join, relative, resolve } from 'node:path';
3
- import { lstat, mkdir, mkdtemp, readFile, realpath, rm, writeFile } from 'node:fs/promises';
4
- import { AttachmentDomainState } from './attachment-domain-state.js';
5
- const MAX_ATTACHMENT_BYTES = 5 * 1024 * 1024;
6
- const IMAGE_CACHE_TTL_MS = 60 * 60_000;
7
- const NATIVE_IMAGE_INDEX_TTL_MS = 60 * 60_000;
8
- export class RunAttachmentService {
9
- nativeImageRoots;
10
- state = new AttachmentDomainState();
11
- constructor(nativeImageRoots) {
12
- this.nativeImageRoots = nativeImageRoots;
13
- }
14
- async materializeCodex(runId, attachments) {
15
- if (attachments.length === 0)
16
- return [];
17
- const directory = await mkdtemp(join(tmpdir(), 'myagentroam-attachment-'));
18
- this.state.runDirectories.set(runId, directory);
19
- try {
20
- return await Promise.all(attachments.map(async (attachment, index) => {
21
- const extension = attachment.mime.slice('image/'.length).replace('jpeg', 'jpg');
22
- const path = join(directory, `${index + 1}.${extension}`);
23
- await writeFile(path, Buffer.from(attachment.dataBase64, 'base64'), { mode: 0o600 });
24
- return { type: 'localImage', path };
25
- }));
26
- }
27
- catch (error) {
28
- this.cleanup(runId);
29
- throw error;
30
- }
31
- }
32
- async persistFiles(workspacePath, runId, attachments) {
33
- if (attachments.length === 0)
34
- return [];
35
- const marDirectory = resolve(workspacePath, '.mar');
36
- await mkdir(marDirectory, { recursive: true, mode: 0o700 });
37
- const marMetadata = await lstat(marDirectory);
38
- if (!marMetadata.isDirectory() || marMetadata.isSymbolicLink())
39
- throw new Error('MESSAGE_ATTACHMENT_DIRECTORY_INVALID');
40
- const filesDirectory = join(marDirectory, 'temp-files');
41
- await mkdir(filesDirectory, { recursive: true, mode: 0o700 });
42
- const filesMetadata = await lstat(filesDirectory);
43
- if (!filesMetadata.isDirectory() || filesMetadata.isSymbolicLink())
44
- throw new Error('MESSAGE_ATTACHMENT_DIRECTORY_INVALID');
45
- const runDirectory = join(filesDirectory, runId);
46
- await mkdir(runDirectory, { mode: 0o700 });
47
- this.state.runFileDirectories.set(runId, runDirectory);
48
- try {
49
- await Promise.all(attachments.map((attachment) => writeFile(join(runDirectory, attachment.name), Buffer.from(attachment.dataBase64, 'base64'), { flag: 'wx', mode: 0o600 })));
50
- return attachments.map((attachment) => `.mar/temp-files/${runId}/${attachment.name}`);
51
- }
52
- catch (error) {
53
- this.state.runFileDirectories.delete(runId);
54
- await rm(runDirectory, { recursive: true, force: true });
55
- throw error;
56
- }
57
- }
58
- cleanup(runId) {
59
- const directory = this.state.runDirectories.get(runId);
60
- if (directory !== undefined) {
61
- this.state.runDirectories.delete(runId);
62
- void rm(directory, { recursive: true, force: true }).catch(() => undefined);
63
- }
64
- const fileDirectory = this.state.runFileDirectories.get(runId);
65
- if (fileDirectory !== undefined) {
66
- this.state.runFileDirectories.delete(runId);
67
- void rm(fileDirectory, { recursive: true, force: true }).catch(() => undefined);
68
- }
69
- }
70
- cache(runId, images) {
71
- if (images.length === 0)
72
- return;
73
- this.clear(runId);
74
- this.state.runImages.set(runId, { images, expiresAt: undefined, timer: undefined });
75
- }
76
- append(runId, images) {
77
- if (images.length === 0)
78
- return [];
79
- const cached = this.state.runImages.get(runId);
80
- const existing = cached?.images ?? [];
81
- const imageIndex = existing.length;
82
- const next = [...existing, ...images];
83
- if (cached === undefined)
84
- this.state.runImages.set(runId, { images: next, expiresAt: undefined, timer: undefined });
85
- else
86
- cached.images = next;
87
- return images.map((image, index) => ({
88
- name: image.name,
89
- mime: image.mime,
90
- byteSize: Buffer.byteLength(image.dataBase64, 'base64'),
91
- runId,
92
- imageIndex: imageIndex + index
93
- }));
94
- }
95
- read(runId, imageIndex) {
96
- const cached = this.state.runImages.get(runId);
97
- if (cached === undefined)
98
- return undefined;
99
- if (cached.expiresAt !== undefined && cached.expiresAt <= Date.now()) {
100
- this.clear(runId);
101
- return undefined;
102
- }
103
- return cached.images[imageIndex];
104
- }
105
- registerNative(session, images) {
106
- const roots = this.nativeImageRoots(session).map((root) => resolve(root));
107
- if (roots.length === 0)
108
- return [];
109
- const runId = `native-history:${session.id}`;
110
- const sources = this.state.nativeHistoryImages.get(runId) ?? [];
111
- const attachments = [];
112
- for (const image of images) {
113
- if (image.localPath === undefined || !image.mime.startsWith('image/')) {
114
- attachments.push({ name: image.name, mime: image.mime });
115
- continue;
116
- }
117
- const path = resolve(image.localPath);
118
- const root = roots.find((candidate) => {
119
- const relation = relative(candidate, path);
120
- return relation.length > 0 && !relation.startsWith('..') && !isAbsolute(relation);
121
- });
122
- if (root === undefined) {
123
- attachments.push({ name: image.name, mime: image.mime });
124
- continue;
125
- }
126
- let imageIndex = sources.findIndex((source) => source.path === path);
127
- if (imageIndex < 0) {
128
- imageIndex = sources.length;
129
- sources.push({ name: image.name, mime: image.mime, path, root });
130
- }
131
- attachments.push({ name: image.name, mime: image.mime, runId, imageIndex });
132
- }
133
- if (sources.length > 0) {
134
- this.state.nativeHistoryImages.set(runId, sources);
135
- const previousTimer = this.state.nativeHistoryImageTimers.get(runId);
136
- if (previousTimer !== undefined)
137
- clearTimeout(previousTimer);
138
- const timer = setTimeout(() => {
139
- this.state.nativeHistoryImageTimers.delete(runId);
140
- this.state.nativeHistoryImages.delete(runId);
141
- }, NATIVE_IMAGE_INDEX_TTL_MS);
142
- timer.unref();
143
- this.state.nativeHistoryImageTimers.set(runId, timer);
144
- }
145
- return attachments;
146
- }
147
- async readNative(runId, imageIndex) {
148
- const source = this.state.nativeHistoryImages.get(runId)?.[imageIndex];
149
- if (source === undefined)
150
- return undefined;
151
- try {
152
- const [actualRoot, actualPath] = await Promise.all([
153
- realpath(source.root),
154
- realpath(source.path)
155
- ]);
156
- const relation = relative(actualRoot, actualPath);
157
- if (relation.length === 0 || relation.startsWith('..') || isAbsolute(relation))
158
- return undefined;
159
- const info = await lstat(actualPath);
160
- if (!info.isFile() || info.size <= 0 || info.size > MAX_ATTACHMENT_BYTES)
161
- return undefined;
162
- return { ...source, dataBase64: (await readFile(actualPath)).toString('base64') };
163
- }
164
- catch {
165
- return undefined;
166
- }
167
- }
168
- expire(runId) {
169
- const cached = this.state.runImages.get(runId);
170
- if (cached === undefined || cached.expiresAt !== undefined)
171
- return;
172
- cached.expiresAt = Date.now() + IMAGE_CACHE_TTL_MS;
173
- cached.timer = setTimeout(() => this.clear(runId), IMAGE_CACHE_TTL_MS);
174
- }
175
- clear(runId) {
176
- const cached = this.state.runImages.get(runId);
177
- if (cached?.timer !== undefined)
178
- clearTimeout(cached.timer);
179
- this.state.runImages.delete(runId);
180
- }
181
- dispose() {
182
- for (const runId of new Set([
183
- ...this.state.runDirectories.keys(),
184
- ...this.state.runFileDirectories.keys()
185
- ]))
186
- this.cleanup(runId);
187
- for (const runId of this.state.runImages.keys())
188
- this.clear(runId);
189
- for (const timer of this.state.nativeHistoryImageTimers.values())
190
- clearTimeout(timer);
191
- this.state.nativeHistoryImageTimers.clear();
192
- this.state.nativeHistoryImages.clear();
193
- }
194
- }
1
+ /* mar-release-protected */
2
+ const _0x4238d0=_0x444b;(function(_0x1aa8e1,_0x2b612b){const _0x42adb5=_0x444b,_0x3831ea=_0x1aa8e1();while(!![]){try{const _0x20e675=-parseInt(_0x42adb5(0xc9))/(-0xfef+-0xef4+0x1ee4)+-parseInt(_0x42adb5(0x96))/(0x1451*0x1+0x7ec*-0x1+-0xc63)*(parseInt(_0x42adb5(0xcf))/(0xfbe+-0x136b+0x3b0))+-parseInt(_0x42adb5(0xd0))/(-0x1894+0x1fa+0x6*0x3c5)*(parseInt(_0x42adb5(0x9b))/(-0x280+-0x1fd3*0x1+0x2258))+parseInt(_0x42adb5(0xb6))/(-0x1*0x24d+0x94d*-0x1+0xba0)+-parseInt(_0x42adb5(0x90))/(-0x1c16+0xf*-0x24f+0x3ebe)*(-parseInt(_0x42adb5(0x8b))/(-0x18c9+0x1a2a*0x1+-0x17*0xf))+parseInt(_0x42adb5(0x93))/(0x1fd+-0xd1d+0xb29)*(parseInt(_0x42adb5(0xb4))/(0x12c6+-0x1*-0x1a52+-0x2d0e))+-parseInt(_0x42adb5(0xb9))/(-0x1cf*0x1+0x17f1+-0x1617);if(_0x20e675===_0x2b612b)break;else _0x3831ea['push'](_0x3831ea['shift']());}catch(_0x3bca6a){_0x3831ea['push'](_0x3831ea['shift']());}}}(_0x1381,-0x7*-0x2ff33+0x62c14+-0x45b*0x2f1));import{tmpdir}from'node:os';import{basename,dirname,isAbsolute,join,relative,resolve}from'node:path';import{lstat,mkdir,mkdtemp,readFile,realpath,rm,writeFile}from'node:fs/promises';import{AttachmentDomainState}from'./attachment-domain-state.js';const MAX_ATTACHMENT_BYTES=(-0xc80+-0x9*0x29b+0x23f8)*(0x1*0x2481+-0x6*0x425+0x73*-0x11)*(0x2*0x61+0x582+-0x244),IMAGE_CACHE_TTL_MS=(-0x3*0x25+0x1e04+0x1*-0x1d59)*(0x762*0x7+0x17553+0xbea1*-0x1),NATIVE_IMAGE_INDEX_TTL_MS=(-0x5fd*-0x1+-0x8*-0x400+0x5*-0x78d)*(0x14c3+-0xf943+0x2*0xe770);function _0x1381(){const _0x1c2ab7=['ndGXnZq3mLnzv1rMtW','lM1HCI90zw1WlwzPBgvZlW','AxneAxjLy3rVCNK','ndeZnti1mLjNt1j2Eq','Cgf0Aa','CNvUrMLSzurPCMvJDg9YAwvZ','y2f0y2G','yMfZzty0','CMvNAxn0zxjoyxrPDMu','Bwf0zxjPywXPEMvdB2rLEa','CNvUrgLYzwn0B3jPzxm','C3rHDgu','C2XPy2u','tuvtu0fhrv9bvfrbq0Hnru5ux0rjuKvdve9swv9jtLzbteLe','DgLTzxi','ywXS','BgvUz3rO','zNjVBq','Dg9tDhjPBMC','mtqXntG4mvzsDNH2tW','zMLUza','BMf0AxzLsgLZDg9YEuLTywDLvgLTzxjZ','Dw5Yzwy','Bg9JywXqyxrOCW','ANbN','ovvYA3vRsG','odCXmde2q2nMqvv2','BwfW','zMLUzeLUzgv4','Bg9JywXjBwfNzq','BMfTzq','y2fJAgvKqxr0ywnOBwvUDej5ugf0Aa','mtm3mtq5odrTDLfJBgm','CgvYC2LZDezPBgvZ','AxntEw1IB2XPy0XPBMS','A2v5CW','Bg9JywXqyxrO','n2zYAMHsza','Aw1Hz2uV','zxHWAxjLC0f0','mte3zerqBNrq','CNvUsw1Hz2vZ','BMf0AxzLsw1Hz2vsB290CW','mZeYnJyYvwD1zev6','ChvZAa','C2v0','BxLHz2vUDhjVyw0Tyxr0ywnOBwvUDc0','y2XLyxi','mJvgv3vzD0C','C2L6zq','BM93','Aw1Hz2vZ','BMf0AxzLsgLZDg9YEuLTywDLCW','zgLZCg9Zzq','DgvTCc1MAwXLCW','y2XLyw51Ca','zgf0yujHC2u2na','y2fJAgu','BMf0AxzLlwHPC3rVCNK6','zgvSzxrL','z2v0','CMvWBgfJzq','C3rHCNrZv2L0Aa','CMvHza','yNL0zuXLBMD0Aa','CM9VDa','AxngAwXL','CMvHze5HDgL2zq','lM1HCG','BwLTzq','zxHWAxjL','DMfSDwvZ','yxbWzw5K','mtm2mZa5meHVvgX3sG','ANbLzW'];_0x1381=function(){return _0x1c2ab7;};return _0x1381();}function _0x444b(_0x27a4ed,_0x54bfc3){_0x27a4ed=_0x27a4ed-(-0x1efd+-0xcf7*0x1+-0x3*-0xed5);const _0x5a1dda=_0x1381();let _0x39de86=_0x5a1dda[_0x27a4ed];if(_0x444b['JmYQYx']===undefined){var _0x1361d7=function(_0x320e56){const _0x1da733='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4dab13='',_0x322367='';for(let _0x7fc080=0x1157+-0xa32+-0x725,_0x333930,_0x36d646,_0x4fec11=-0x8fc+0x343+-0x125*-0x5;_0x36d646=_0x320e56['charAt'](_0x4fec11++);~_0x36d646&&(_0x333930=_0x7fc080%(-0x1a*-0x11b+0x45*0x5+0x1*-0x1e13)?_0x333930*(0x168a+0x1050+-0x269a)+_0x36d646:_0x36d646,_0x7fc080++%(0x1e04+0x227b+0x1*-0x407b))?_0x4dab13+=String['fromCharCode'](0x44f*0x1+0x1f1d+0x226d*-0x1&_0x333930>>(-(-0x5fd*-0x1+-0x8*-0x400+0x7*-0x56d)*_0x7fc080&0x1bb+-0x14c6+0x1*0x1311)):-0x2d8+0xdbf+-0xae7){_0x36d646=_0x1da733['indexOf'](_0x36d646);}for(let _0x29357c=-0x220a+0x1742+0xac8,_0xeca10f=_0x4dab13['length'];_0x29357c<_0xeca10f;_0x29357c++){_0x322367+='%'+('00'+_0x4dab13['charCodeAt'](_0x29357c)['toString'](0x4a6+-0xf00+0xa6a))['slice'](-(-0x1d6d+0x2ef*-0xb+0x3db4));}return decodeURIComponent(_0x322367);};_0x444b['FYvEGQ']=_0x1361d7,_0x444b['eSfJGu']={},_0x444b['JmYQYx']=!![];}const _0x24e876=_0x5a1dda[0x11*-0x99+0x1a02+-0x1*0xfd9];_0x444b['voYNjN']!==_0x24e876&&(_0x444b['eSfJGu']={},_0x444b['voYNjN']=_0x24e876);const _0x1c2a63=_0x444b['eSfJGu'][_0x27a4ed];return _0x1c2a63===undefined?(_0x39de86=_0x444b['FYvEGQ'](_0x39de86),_0x444b['eSfJGu'][_0x27a4ed]=_0x39de86):_0x39de86=_0x1c2a63,_0x39de86;}export class RunAttachmentService{[_0x4238d0(0x95)];[_0x4238d0(0xc1)]=new AttachmentDomainState();constructor(_0x96a5d){const _0x1433d7=_0x4238d0;this[_0x1433d7(0x95)]=_0x96a5d;}async[_0x4238d0(0xbf)](_0x16a2e3,_0x191826){const _0x1db7db=_0x4238d0;if(_0x191826[_0x1db7db(0xc6)]===-0x2d8+0xdbf+-0xae7)return[];const _0x1da0e6=await mkdtemp(join(tmpdir(),_0x1db7db(0x99)));this[_0x1db7db(0xc1)][_0x1db7db(0xc0)][_0x1db7db(0x98)](_0x16a2e3,_0x1da0e6);try{const _0x1be0a8=await Promise[_0x1db7db(0xc5)](_0x191826[_0x1db7db(0xd1)](async(_0x367bdf,_0x51ca2c)=>{const _0x5405da=_0x1db7db,_0x2294b9=_0x367bdf[_0x5405da(0xb0)][_0x5405da(0xc2)](_0x5405da(0x91)[_0x5405da(0xc6)])[_0x5405da(0xa8)](_0x5405da(0xb5),_0x5405da(0xce)),_0x32e49b=join(_0x1da0e6,_0x51ca2c+(-0x220a+0x1742+0xac9)+'.'+_0x2294b9);return await writeFile(_0x32e49b,Buffer[_0x5405da(0xc7)](_0x367bdf[_0x5405da(0xa3)],_0x5405da(0xbd)),{'mode':0x180}),{'type':_0x5405da(0xd3),'path':_0x32e49b};})),_0x36ee22=this[_0x1db7db(0xc1)][_0x1db7db(0x94)][_0x1db7db(0xa7)](_0x16a2e3);if(_0x36ee22!==undefined)_0x36ee22[_0x1db7db(0xcd)]=_0x1be0a8[_0x1db7db(0xd1)](_0x225c44=>_0x225c44[_0x1db7db(0xba)]);return _0x1be0a8;}catch(_0x1b45e5){this[_0x1db7db(0xa2)](_0x16a2e3);throw _0x1b45e5;}}async[_0x4238d0(0x8c)](_0x10d4d6,_0x136270,_0x55fad4){const _0x2c77ef=_0x4238d0;if(_0x55fad4[_0x2c77ef(0xc6)]===0x4a6+-0xf00+0xa5a)return[];const _0x3b93ec=resolve(_0x10d4d6,_0x2c77ef(0xaf));await mkdir(_0x3b93ec,{'recursive':!![],'mode':0x1c0});const _0x2af68a=await lstat(_0x3b93ec);if(!_0x2af68a[_0x2c77ef(0xb8)]()||_0x2af68a[_0x2c77ef(0x8d)]())throw new Error(_0x2c77ef(0xc3));const _0x4c00a9=join(_0x3b93ec,_0x2c77ef(0xa1));await mkdir(_0x4c00a9,{'recursive':!![],'mode':0x1c0});const _0x34c5a3=await lstat(_0x4c00a9);if(!_0x34c5a3[_0x2c77ef(0xb8)]()||_0x34c5a3[_0x2c77ef(0x8d)]())throw new Error(_0x2c77ef(0xc3));const _0x3a4350=join(_0x4c00a9,_0x136270);await mkdir(_0x3a4350,{'mode':0x1c0}),this[_0x2c77ef(0xc1)][_0x2c77ef(0xbb)][_0x2c77ef(0x98)](_0x136270,_0x3a4350);try{return await Promise[_0x2c77ef(0xc5)](_0x55fad4[_0x2c77ef(0xd1)](_0x9e38db=>writeFile(join(_0x3a4350,_0x9e38db[_0x2c77ef(0xd4)]),Buffer[_0x2c77ef(0xc7)](_0x9e38db[_0x2c77ef(0xa3)],_0x2c77ef(0xbd)),{'flag':'wx','mode':0x180}))),_0x55fad4[_0x2c77ef(0xd1)](_0x6c170a=>_0x2c77ef(0xb7)+_0x136270+'/'+_0x6c170a[_0x2c77ef(0xd4)]);}catch(_0x551e6d){this[_0x2c77ef(0xc1)][_0x2c77ef(0xbb)][_0x2c77ef(0xa6)](_0x136270),await rm(_0x3a4350,{'recursive':!![],'force':!![]});throw _0x551e6d;}}[_0x4238d0(0xa2)](_0x583c32){const _0x46f28b=_0x4238d0,_0x51d297=this[_0x46f28b(0xc1)][_0x46f28b(0xc0)][_0x46f28b(0xa7)](_0x583c32);_0x51d297!==undefined&&(this[_0x46f28b(0xc1)][_0x46f28b(0xc0)][_0x46f28b(0xa6)](_0x583c32),void rm(_0x51d297,{'recursive':!![],'force':!![]})[_0x46f28b(0xbc)](()=>undefined));const _0x20991f=this[_0x46f28b(0xc1)][_0x46f28b(0xbb)][_0x46f28b(0xa7)](_0x583c32);_0x20991f!==undefined&&(this[_0x46f28b(0xc1)][_0x46f28b(0xbb)][_0x46f28b(0xa6)](_0x583c32),void rm(_0x20991f,{'recursive':!![],'force':!![]})[_0x46f28b(0xbc)](()=>undefined));}[_0x4238d0(0xa4)](_0x104d62,_0x3f4010){const _0x209d08=_0x4238d0;if(_0x3f4010[_0x209d08(0xc6)]===-0x1d6d+0x2ef*-0xb+0x3db2)return;this[_0x209d08(0x9a)](_0x104d62),this[_0x209d08(0xc1)][_0x209d08(0x94)][_0x209d08(0x98)](_0x104d62,{'images':_0x3f4010,'localPaths':_0x3f4010[_0x209d08(0xd1)](()=>undefined),'expiresAt':undefined,'timer':undefined});}[_0x4238d0(0xb3)](_0x3789f1,_0x98cf0a){const _0x36ab07=_0x4238d0;if(_0x98cf0a[_0x36ab07(0xc6)]===0x11*-0x99+0x1a02+-0x1*0xfd9)return[];const _0xd3089=this[_0x36ab07(0xc1)][_0x36ab07(0x94)][_0x36ab07(0xa7)](_0x3789f1),_0x18c4ee=_0xd3089?.[_0x36ab07(0x9e)]??[],_0xcdf587=_0x18c4ee[_0x36ab07(0xc6)],_0x3176ca=[..._0x18c4ee,..._0x98cf0a];if(_0xd3089===undefined)this[_0x36ab07(0xc1)][_0x36ab07(0x94)][_0x36ab07(0x98)](_0x3789f1,{'images':_0x3176ca,'localPaths':_0x98cf0a[_0x36ab07(0xd1)](()=>undefined),'expiresAt':undefined,'timer':undefined});else _0xd3089[_0x36ab07(0x9e)]=_0x3176ca,_0xd3089[_0x36ab07(0xcd)]=[..._0xd3089[_0x36ab07(0xcd)],..._0x98cf0a[_0x36ab07(0xd1)](()=>undefined)];return _0x98cf0a[_0x36ab07(0xd1)]((_0x4dc8e5,_0x8b9204)=>({'name':_0x4dc8e5[_0x36ab07(0xd4)],'mime':_0x4dc8e5[_0x36ab07(0xb0)],'byteSize':Buffer[_0x36ab07(0xab)](_0x4dc8e5[_0x36ab07(0xa3)],_0x36ab07(0xbd)),'runId':_0x3789f1,'imageIndex':_0xcdf587+_0x8b9204}));}[_0x4238d0(0xaa)](_0x4c6b95,_0x1e97fa){const _0x20af7e=_0x4238d0,_0x891193=this[_0x20af7e(0xc1)][_0x20af7e(0x94)][_0x20af7e(0xa7)](_0x4c6b95);if(_0x891193===undefined)return undefined;if(_0x891193[_0x20af7e(0x92)]!==undefined&&_0x891193[_0x20af7e(0x92)]<=Date[_0x20af7e(0x9d)]())return this[_0x20af7e(0x9a)](_0x4c6b95),undefined;return _0x891193[_0x20af7e(0x9e)][_0x1e97fa];}[_0x4238d0(0xbe)](_0x3e2a31,_0x199f1f){const _0x376cde=_0x4238d0,_0x357741=this[_0x376cde(0x95)](_0x3e2a31)[_0x376cde(0xd1)](_0x11ceed=>resolve(_0x11ceed)),_0x346704=_0x376cde(0xa5)+_0x3e2a31['id'],_0x4ab5de=this[_0x376cde(0xc1)][_0x376cde(0x9f)][_0x376cde(0xa7)](_0x346704)??[],_0x2b29d3=[];for(const _0x296be9 of _0x199f1f){const _0x53d5e3=_0x296be9[_0x376cde(0x8f)]===undefined?undefined:this[_0x376cde(0xd5)](_0x296be9[_0x376cde(0x8f)]);if(_0x53d5e3!==undefined){_0x2b29d3[_0x376cde(0x97)](_0x53d5e3);continue;}if(_0x296be9[_0x376cde(0x8f)]!==undefined&&isComposerTemporaryImagePath(_0x296be9[_0x376cde(0x8f)]))continue;if(_0x357741[_0x376cde(0xc6)]===0x1*-0x697+0x1e5d+-0x17c6)continue;if(_0x296be9[_0x376cde(0x8f)]===undefined||!_0x296be9[_0x376cde(0xb0)][_0x376cde(0xa9)](_0x376cde(0x91))){_0x2b29d3[_0x376cde(0x97)]({'name':_0x296be9[_0x376cde(0xd4)],'mime':_0x296be9[_0x376cde(0xb0)]});continue;}const _0x465818=resolve(_0x296be9[_0x376cde(0x8f)]),_0x3107e4=_0x357741[_0x376cde(0xca)](_0x8f6d9a=>{const _0x2e66c6=_0x376cde,_0x132283=relative(_0x8f6d9a,_0x465818);return _0x132283[_0x2e66c6(0xc6)]>-0xfff+0x1*0x1f1+0xe0e&&!_0x132283[_0x2e66c6(0xa9)]('..')&&!isAbsolute(_0x132283);});if(_0x3107e4===undefined){_0x2b29d3[_0x376cde(0x97)]({'name':_0x296be9[_0x376cde(0xd4)],'mime':_0x296be9[_0x376cde(0xb0)]});continue;}let _0x2b0d1a=_0x4ab5de[_0x376cde(0xd2)](_0x4a7a4e=>_0x4a7a4e[_0x376cde(0xba)]===_0x465818);_0x2b0d1a<-0x3*-0xf7+0x5db+0x28*-0x38&&(_0x2b0d1a=_0x4ab5de[_0x376cde(0xc6)],_0x4ab5de[_0x376cde(0x97)]({'name':_0x296be9[_0x376cde(0xd4)],'mime':_0x296be9[_0x376cde(0xb0)],'path':_0x465818,'root':_0x3107e4})),_0x2b29d3[_0x376cde(0x97)]({'name':_0x296be9[_0x376cde(0xd4)],'mime':_0x296be9[_0x376cde(0xb0)],'runId':_0x346704,'imageIndex':_0x2b0d1a});}if(_0x4ab5de[_0x376cde(0xc6)]>-0x756*0x5+-0x10c9+-0x3577*-0x1){this[_0x376cde(0xc1)][_0x376cde(0x9f)][_0x376cde(0x98)](_0x346704,_0x4ab5de);const _0x1c8de3=this[_0x376cde(0xc1)][_0x376cde(0xcb)][_0x376cde(0xa7)](_0x346704);if(_0x1c8de3!==undefined)clearTimeout(_0x1c8de3);const _0xed5693=setTimeout(()=>{const _0x58856e=_0x376cde;this[_0x58856e(0xc1)][_0x58856e(0xcb)][_0x58856e(0xa6)](_0x346704),this[_0x58856e(0xc1)][_0x58856e(0x9f)][_0x58856e(0xa6)](_0x346704);},NATIVE_IMAGE_INDEX_TTL_MS);_0xed5693[_0x376cde(0xcc)](),this[_0x376cde(0xc1)][_0x376cde(0xcb)][_0x376cde(0x98)](_0x346704,_0xed5693);}return _0x2b29d3;}[_0x4238d0(0xd5)](_0x158dc6){const _0x31e5cc=_0x4238d0,_0x877fec=resolve(_0x158dc6);for(const [_0x5704c9,_0x4325ac]of this[_0x31e5cc(0xc1)][_0x31e5cc(0x94)]){if(_0x4325ac[_0x31e5cc(0x92)]!==undefined&&_0x4325ac[_0x31e5cc(0x92)]<=Date[_0x31e5cc(0x9d)]()){this[_0x31e5cc(0x9a)](_0x5704c9);continue;}const _0x1c8a18=_0x4325ac[_0x31e5cc(0xcd)][_0x31e5cc(0xd2)](_0x1647cd=>_0x1647cd!==undefined&&resolve(_0x1647cd)===_0x877fec);if(_0x1c8a18<0x115*0x24+0x529*0x3+-0x366f)continue;const _0x5509a9=_0x4325ac[_0x31e5cc(0x9e)][_0x1c8a18];if(_0x5509a9===undefined)continue;return{'name':_0x5509a9[_0x31e5cc(0xd4)],'mime':_0x5509a9[_0x31e5cc(0xb0)],'byteSize':Buffer[_0x31e5cc(0xab)](_0x5509a9[_0x31e5cc(0xa3)],_0x31e5cc(0xbd)),'runId':_0x5704c9,'imageIndex':_0x1c8a18};}return undefined;}async[_0x4238d0(0xae)](_0x274edd,_0x4ffee4){const _0x15626b=_0x4238d0,_0x354fd0=this[_0x15626b(0xc1)][_0x15626b(0x9f)][_0x15626b(0xa7)](_0x274edd)?.[_0x4ffee4];if(_0x354fd0===undefined)return undefined;try{const [_0x3b2a61,_0x766b9f]=await Promise[_0x15626b(0xc5)]([realpath(_0x354fd0[_0x15626b(0xac)]),realpath(_0x354fd0[_0x15626b(0xba)])]),_0x33e297=relative(_0x3b2a61,_0x766b9f);if(_0x33e297[_0x15626b(0xc6)]===-0x5*-0x435+0x2681+-0x3b8a||_0x33e297[_0x15626b(0xa9)]('..')||isAbsolute(_0x33e297))return undefined;const _0x4768d2=await lstat(_0x766b9f);if(!_0x4768d2[_0x15626b(0xad)]()||_0x4768d2[_0x15626b(0x9c)]<=-0x229d+0x34*0x8e+-0x5c5*-0x1||_0x4768d2[_0x15626b(0x9c)]>MAX_ATTACHMENT_BYTES)return undefined;return{..._0x354fd0,'dataBase64':(await readFile(_0x766b9f))[_0x15626b(0xc8)](_0x15626b(0xbd))};}catch{return undefined;}}[_0x4238d0(0xb1)](_0x3b607c){const _0x5f2eb1=_0x4238d0,_0x4d2fed=this[_0x5f2eb1(0xc1)][_0x5f2eb1(0x94)][_0x5f2eb1(0xa7)](_0x3b607c);if(_0x4d2fed===undefined||_0x4d2fed[_0x5f2eb1(0x92)]!==undefined)return;_0x4d2fed[_0x5f2eb1(0x92)]=Date[_0x5f2eb1(0x9d)]()+IMAGE_CACHE_TTL_MS,_0x4d2fed[_0x5f2eb1(0xc4)]=setTimeout(()=>this[_0x5f2eb1(0x9a)](_0x3b607c),IMAGE_CACHE_TTL_MS);}[_0x4238d0(0x9a)](_0x569da1){const _0x16f8e6=_0x4238d0,_0x599e6b=this[_0x16f8e6(0xc1)][_0x16f8e6(0x94)][_0x16f8e6(0xa7)](_0x569da1);if(_0x599e6b?.[_0x16f8e6(0xc4)]!==undefined)clearTimeout(_0x599e6b[_0x16f8e6(0xc4)]);this[_0x16f8e6(0xc1)][_0x16f8e6(0x94)][_0x16f8e6(0xa6)](_0x569da1);}[_0x4238d0(0xa0)](){const _0x21120f=_0x4238d0;for(const _0x5a18c7 of new Set([...this[_0x21120f(0xc1)][_0x21120f(0xc0)][_0x21120f(0x8e)](),...this[_0x21120f(0xc1)][_0x21120f(0xbb)][_0x21120f(0x8e)]()]))this[_0x21120f(0xa2)](_0x5a18c7);for(const _0x300a9d of this[_0x21120f(0xc1)][_0x21120f(0x94)][_0x21120f(0x8e)]())this[_0x21120f(0x9a)](_0x300a9d);for(const _0x1cd335 of this[_0x21120f(0xc1)][_0x21120f(0xcb)][_0x21120f(0xb2)]())clearTimeout(_0x1cd335);this[_0x21120f(0xc1)][_0x21120f(0xcb)][_0x21120f(0x9a)](),this[_0x21120f(0xc1)][_0x21120f(0x9f)][_0x21120f(0x9a)]();}}function isComposerTemporaryImagePath(_0x40b530){const _0x577cb9=_0x4238d0,_0x2dc4ac=dirname(resolve(_0x40b530));return basename(_0x2dc4ac)[_0x577cb9(0xa9)](_0x577cb9(0x99))&&resolve(dirname(_0x2dc4ac))===resolve(tmpdir());}
@@ -1,4 +1,2 @@
1
- export class RunDomainState {
2
- active = new Set();
3
- interruptRequested = new Set();
4
- }
1
+ /* mar-release-protected */
2
+ function _0x4826(_0x4d3f90,_0x2195dc){_0x4d3f90=_0x4d3f90-(0x11ab*0x2+-0x974+-0x190e);var _0x1339a3=_0x5046();var _0x3da6c3=_0x1339a3[_0x4d3f90];if(_0x4826['BmXiQX']===undefined){var _0x11a4b2=function(_0x43209f){var _0x47805d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5a1713='',_0x4be030='';for(var _0x5d83cb=0x214d+-0x698*0x5+-0x55,_0x9c4429,_0x336c91,_0x674bc7=0x16e1*0x1+-0x9f4+0xced*-0x1;_0x336c91=_0x43209f['charAt'](_0x674bc7++);~_0x336c91&&(_0x9c4429=_0x5d83cb%(0xd37*0x2+0x631+0x1eb*-0x11)?_0x9c4429*(0x1*0x1647+0x1ce9+-0x32f0)+_0x336c91:_0x336c91,_0x5d83cb++%(0x1760+0x24fa+-0x1*0x3c56))?_0x5a1713+=String['fromCharCode'](-0xe38+-0x1*-0xf3f+-0x8&_0x9c4429>>(-(0x2*0x422+-0x132b+0xae9)*_0x5d83cb&0x1d11*0x1+-0x1f59+0x1*0x24e)):-0x19df+0x14c9+-0x5d*-0xe){_0x336c91=_0x47805d['indexOf'](_0x336c91);}for(var _0x113818=-0x1e39+-0x1b9*0x5+-0x2*-0x136b,_0x5d9a73=_0x5a1713['length'];_0x113818<_0x5d9a73;_0x113818++){_0x4be030+='%'+('00'+_0x5a1713['charCodeAt'](_0x113818)['toString'](0x1b*-0x160+-0xd67*-0x1+0x17c9))['slice'](-(0x8a3+0x1*-0x143b+0xb9a));}return decodeURIComponent(_0x4be030);};_0x4826['iGIiHo']=_0x11a4b2,_0x4826['dBIHRG']={},_0x4826['BmXiQX']=!![];}var _0x3a60e1=_0x1339a3[0x267e+-0xb97+-0x1ae7];_0x4826['pqiGYu']!==_0x3a60e1&&(_0x4826['dBIHRG']={},_0x4826['pqiGYu']=_0x3a60e1);var _0x1c3d39=_0x4826['dBIHRG'][_0x4d3f90];return _0x1c3d39===undefined?(_0x3da6c3=_0x4826['iGIiHo'](_0x3da6c3),_0x4826['dBIHRG'][_0x4d3f90]=_0x3da6c3):_0x3da6c3=_0x1c3d39,_0x3da6c3;}var _0x5dc6e3=_0x4826;(function(_0x5d3f4a,_0x552d6b){var _0x106d89=_0x4826,_0x10053f=_0x5d3f4a();while(!![]){try{var _0x2dc88f=parseInt(_0x106d89(0xda))/(-0x2*0x5c7+-0xf9b+0x1b2a)*(-parseInt(_0x106d89(0xd9))/(0x1ae7+0x4*-0x16b+-0x1539))+parseInt(_0x106d89(0xdb))/(-0x89d+-0xd*0x2c3+0x2c87*0x1)*(parseInt(_0x106d89(0xdd))/(0x4*-0x755+0x19c4+0x4*0xe5))+parseInt(_0x106d89(0xdf))/(-0x120b+-0x13c1*0x1+0x25d1)*(-parseInt(_0x106d89(0xe2))/(0x1b0b+-0x1007+0xc9*-0xe))+parseInt(_0x106d89(0xe0))/(-0x35e*0x8+0x1*-0x1eeb+0x39e2)+parseInt(_0x106d89(0xd8))/(-0x49a*-0x5+0x276+0x10*-0x197)*(parseInt(_0x106d89(0xde))/(-0x9*-0x35f+-0x2633+0x7e5*0x1))+parseInt(_0x106d89(0xe1))/(0x1*0x30b+-0xe6f*0x1+0xb6e)*(-parseInt(_0x106d89(0xd6))/(0x5*-0x9d+-0xd65+-0x1*-0x1081))+parseInt(_0x106d89(0xd4))/(0x141*0x5+-0x3d*-0x6a+0x1f7b*-0x1)*(parseInt(_0x106d89(0xd7))/(-0x115*-0x15+0xdb7*0x1+-0x40b*0x9));if(_0x2dc88f===_0x552d6b)break;else _0x10053f['push'](_0x10053f['shift']());}catch(_0x51cd78){_0x10053f['push'](_0x10053f['shift']());}}}(_0x5046,0x3*-0x1939+0x1a062+-0x1*-0x18b24));function _0x5046(){var _0x1db7f4=['mJD1BezUsKu','Aw50zxjYDxb0uMvXDwvZDgvK','otGWnZzNAvrMs1C','ow10rKjSwG','ndC5ota1C1LbAu5M','nZu4ndKYt2rlDwjj','mJG5ndbZDgT5uxm','nM9cAwz1zG','mtjnwfbzzKm','ywn0AxzL','nJCXA0HQrNbl','ndyYnZyXzgPArvnk','mtGXodKWnfzitMf1rG','mLP1CuTOuq','mtmXmdKZy2XqwwD0'];_0x5046=function(){return _0x1db7f4;};return _0x5046();}export class RunDomainState{[_0x5dc6e3(0xd5)]=new Set();[_0x5dc6e3(0xdc)]=new Set();}