@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,280 +1,2 @@
1
- import { deduplicateDirectSessions } from '../util/runner-native-session-parsers.js';
2
- export class NativeSessionProjectionService {
3
- options;
4
- constructor(options) {
5
- this.options = options;
6
- }
7
- async discover(runnerName, workspaceId) {
8
- const database = this.requireDatabase();
9
- const workspace = workspaceId === undefined ? undefined : database.getWorkspace(workspaceId);
10
- if (workspaceId !== undefined && workspace === undefined)
11
- throw new Error('WORKSPACE_NOT_FOUND');
12
- const runner = this.options.runners.product(runnerName);
13
- if (runner === undefined || !runner.available(this.options.capabilities()))
14
- throw new Error('RUNNER_UNAVAILABLE');
15
- const sessions = await runner.discoverSessions({
16
- workspaces: database.listWorkspaces(),
17
- createProjection: (input) => this.project(input)
18
- }, workspace);
19
- const ordered = deduplicateDirectSessions(sessions);
20
- this.remember(ordered);
21
- return ordered;
22
- }
23
- async discoverCodex(workspaceId) {
24
- const sessions = await this.discover('codex', workspaceId);
25
- return { sessions: sessions.map(this.options.present) };
26
- }
27
- async list() {
28
- const discovered = await Promise.all(this.options.runners
29
- .advertised()
30
- .filter((runner) => runner.available(this.options.capabilities()))
31
- .map((runner) => this.discover(runner.name)));
32
- const sessions = deduplicateDirectSessions(discovered.flat());
33
- this.remember(sessions);
34
- return sessions.map(this.options.present);
35
- }
36
- async discoverWorkspace(workspaceId) {
37
- const discovered = await Promise.all(this.options.runners
38
- .advertised()
39
- .filter((runner) => runner.available(this.options.capabilities()))
40
- .map((runner) => this.discover(runner.name, workspaceId)));
41
- const sessions = deduplicateDirectSessions(discovered.flat());
42
- this.remember(sessions);
43
- return sessions;
44
- }
45
- async resolve(sessionId) {
46
- const cached = this.options.state.directNative.get(sessionId);
47
- if (cached !== undefined)
48
- return cached;
49
- const discovered = (await this.list()).find((session) => session.id === sessionId);
50
- if (discovered !== undefined)
51
- return discovered;
52
- const database = this.options.database();
53
- const record = database
54
- ?.listWorkspaces()
55
- .flatMap((workspace) => database.listSessionRecords(workspace.id))
56
- .find((candidate) => candidate.id === sessionId);
57
- if (record === undefined)
58
- return undefined;
59
- const workspace = database?.getWorkspace(record.workspaceId);
60
- if (workspace === undefined)
61
- return undefined;
62
- return {
63
- id: record.id,
64
- nodeId: this.options.nodeId(),
65
- workspaceId: record.workspaceId,
66
- runner: record.runner,
67
- externalSessionId: record.id,
68
- nativeControl: 'EXTERNAL',
69
- channelToken: null,
70
- cwd: workspace.path,
71
- model: record.metadata.model,
72
- effort: record.metadata.effort,
73
- access: record.metadata.access,
74
- customTitle: record.metadata.customTitle,
75
- runnerTitle: record.metadata.runnerTitle,
76
- pinnedAt: record.pinOrder === null ? null : 1,
77
- pinOrder: record.pinOrder,
78
- externalDiscovered: false,
79
- titleSource: record.metadata.customTitle === null ? 'RUNNER' : 'CUSTOM',
80
- lastActivityAt: 0,
81
- createdAt: 0
82
- };
83
- }
84
- async resolveCurrent(sessionId) {
85
- const direct = await this.resolve(sessionId);
86
- return direct === undefined ? undefined : (this.projectionForNative(direct) ?? direct);
87
- }
88
- async createMetadataProjection(sessionId) {
89
- const direct = await this.resolve(sessionId);
90
- if (direct === undefined || direct.externalSessionId === null)
91
- return undefined;
92
- const existing = this.options.runtime.findAgentSessionByExternalSession(direct.runner, direct.externalSessionId);
93
- if (existing !== undefined && existing.workspaceId === direct.workspaceId)
94
- return existing;
95
- return this.options.runtime.createAgentSession({
96
- workspaceId: direct.workspaceId,
97
- runner: direct.runner,
98
- externalSessionId: direct.externalSessionId,
99
- nativeControl: 'EXTERNAL',
100
- cwd: direct.cwd,
101
- ...(direct.runnerTitle === null ? {} : { title: direct.runnerTitle })
102
- });
103
- }
104
- resumedConfiguration(session) {
105
- const workspace = this.options.database()?.getWorkspace(session.workspaceId);
106
- const current = {
107
- runner: session.runner,
108
- model: session.model,
109
- effort: session.effort,
110
- access: session.access
111
- };
112
- if (typeof current.model === 'string' &&
113
- typeof current.effort === 'string' &&
114
- typeof current.access === 'string' &&
115
- this.options.runners.supportsConfiguration({
116
- runner: current.runner,
117
- model: current.model,
118
- effort: current.effort,
119
- access: current.access
120
- }, workspace))
121
- return current;
122
- const saved = this.options
123
- .database()
124
- ?.getRunnerDefaults()
125
- .find((value) => value.runner === session.runner &&
126
- this.options.runners.supportsConfiguration(value, workspace));
127
- return saved ?? this.options.runners.require(session.runner).defaultConfiguration(workspace);
128
- }
129
- ensureResumedConfiguration(session) {
130
- const configuration = this.resumedConfiguration(session);
131
- if (session.model === configuration.model &&
132
- session.effort === configuration.effort &&
133
- session.access === configuration.access)
134
- return session;
135
- return this.options.runtime.updateAgentSessionConfiguration({
136
- sessionId: session.id,
137
- model: configuration.model,
138
- effort: configuration.effort,
139
- access: configuration.access
140
- });
141
- }
142
- async rename(session, input) {
143
- if (session.externalSessionId === null)
144
- return;
145
- await this.options.runners
146
- .require(session.runner)
147
- .renameNative(session, input, this.requireDatabase());
148
- }
149
- project(input) {
150
- const timestamp = input.lastActivityAt ?? 0;
151
- const database = this.options.database();
152
- const metadata = database?.getNativeSessionMetadata(input.runner, input.externalSessionId, input.workspace.id);
153
- const runnerTitle = this.options.runners.require(input.runner).projectedRunnerTitle(metadata, {
154
- externalSessionId: input.externalSessionId,
155
- workspaceId: input.workspace.id,
156
- ...(input.title === undefined ? {} : { title: input.title }),
157
- ...(input.titleOrigin === undefined ? {} : { titleOrigin: input.titleOrigin })
158
- }, database);
159
- return {
160
- id: input.externalSessionId,
161
- nodeId: this.options.nodeId(),
162
- workspaceId: input.workspace.id,
163
- runner: input.runner,
164
- externalSessionId: input.externalSessionId,
165
- nativeControl: 'EXTERNAL',
166
- channelToken: null,
167
- cwd: input.cwd,
168
- model: metadata?.model ?? null,
169
- effort: metadata?.effort ?? null,
170
- access: metadata?.access ?? null,
171
- customTitle: metadata?.customTitle ?? null,
172
- runnerTitle,
173
- pinnedAt: metadata?.pinnedAt ?? null,
174
- pinOrder: metadata?.pinOrder ?? null,
175
- externalDiscovered: true,
176
- titleSource: metadata?.customTitle === null || metadata?.customTitle === undefined
177
- ? runnerTitle === null
178
- ? 'AUTO'
179
- : 'RUNNER'
180
- : 'CUSTOM',
181
- lastActivityAt: timestamp,
182
- createdAt: timestamp
183
- };
184
- }
185
- remember(sessions) {
186
- for (const session of sessions)
187
- this.options.state.directNative.set(session.id, session);
188
- }
189
- projectionForNative(native) {
190
- if (native.externalSessionId === null)
191
- return undefined;
192
- const exact = this.options.runtime.findAgentSessionByExternalSession(native.runner, native.externalSessionId);
193
- if (exact !== undefined &&
194
- exact.runner === native.runner &&
195
- exact.workspaceId === native.workspaceId &&
196
- exact.externalSessionId === native.externalSessionId)
197
- return exact;
198
- return this.managedForNative(native);
199
- }
200
- managedForNative(native) {
201
- if (native.externalSessionId === null)
202
- return undefined;
203
- const exact = this.options.runtime.findAgentSessionByExternalSession(native.runner, native.externalSessionId);
204
- if (this.isManagedProjection(exact, native, false))
205
- return exact;
206
- const aliasId = this.options.runners
207
- .require(native.runner)
208
- .managedAliasId(native.externalSessionId);
209
- const alias = aliasId === undefined ? undefined : this.options.runtime.getAgentSession(aliasId);
210
- return this.isManagedProjection(alias, native, true) ? alias : undefined;
211
- }
212
- nativeIds(session) {
213
- const ids = new Set();
214
- if (session.externalSessionId !== null)
215
- ids.add(session.externalSessionId);
216
- for (const nativeId of this.options.runners
217
- .require(session.runner)
218
- .nativeAliasesFor(session.id))
219
- ids.add(nativeId);
220
- return ids;
221
- }
222
- forget(session, knownNativeIds) {
223
- if (session.externalSessionId === null)
224
- return;
225
- const projectionIds = new Set([session.id]);
226
- const nativeIds = new Set(knownNativeIds);
227
- const runner = this.options.runners.require(session.runner);
228
- for (const nativeId of runner.nativeAliasesFor(session.id)) {
229
- const managedId = runner.managedAliasId(nativeId);
230
- if (managedId !== undefined && (nativeIds.has(nativeId) || managedId === session.id)) {
231
- projectionIds.add(managedId);
232
- nativeIds.add(nativeId);
233
- runner.forgetNativeAlias(nativeId);
234
- }
235
- }
236
- for (const [directId, direct] of this.options.state.directNative) {
237
- if (direct.runner === session.runner &&
238
- direct.cwd === session.cwd &&
239
- direct.externalSessionId !== null &&
240
- nativeIds.has(direct.externalSessionId)) {
241
- this.options.state.directNative.delete(directId);
242
- this.options.state.externalActivity.delete(directId);
243
- this.options.state.resumedByDirectId.delete(directId);
244
- this.options.state.resumeFailures.delete(directId);
245
- this.options.state.messageResumeFailures.delete(directId);
246
- this.options.state.resumeFailureDetails.delete(directId);
247
- const timer = this.options.state.failureTimers.get(directId);
248
- if (timer !== undefined)
249
- clearTimeout(timer);
250
- this.options.state.failureTimers.delete(directId);
251
- }
252
- }
253
- for (const [directId, resumedId] of this.options.state.resumedByDirectId)
254
- if (projectionIds.has(resumedId))
255
- this.options.state.resumedByDirectId.delete(directId);
256
- for (const projectionId of projectionIds) {
257
- if (this.options.runtime.getAgentSession(projectionId) !== undefined)
258
- this.options.runtime.removeAgentSession(projectionId);
259
- this.options.commands.removeSession(projectionId);
260
- this.options.state.externalActivity.delete(projectionId);
261
- }
262
- }
263
- isManagedProjection(candidate, native, allowAlias) {
264
- const exactNativeId = candidate?.externalSessionId === native.externalSessionId;
265
- const verifiedAlias = allowAlias &&
266
- this.options.runners.require(native.runner).managedAliasId(native.externalSessionId ?? '') ===
267
- candidate?.id;
268
- return (candidate !== undefined &&
269
- candidate.nativeControl === 'MAR_MANAGED' &&
270
- candidate.runner === native.runner &&
271
- candidate.workspaceId === native.workspaceId &&
272
- (exactNativeId || verifiedAlias));
273
- }
274
- requireDatabase() {
275
- const database = this.options.database();
276
- if (database === undefined)
277
- throw new Error('NODE_DATABASE_UNAVAILABLE');
278
- return database;
279
- }
280
- }
1
+ /* mar-release-protected */
2
+ const _0x329b46=_0x194c;function _0x194c(_0x2974f6,_0x5144ed){_0x2974f6=_0x2974f6-(0xaa7+-0x7c0+-0x16c);const _0x56bc06=_0x2146();let _0x532cb3=_0x56bc06[_0x2974f6];if(_0x194c['HNeTTN']===undefined){var _0x59263e=function(_0x494a35){const _0x4f5f3a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c3042='',_0x203ed1='';for(let _0x761776=0x11*0x1f9+0x266*-0xd+-0x43*0x9,_0x4cf2b3,_0x4d8153,_0x2bfe39=-0x8d3*0x3+0x801+-0x314*-0x6;_0x4d8153=_0x494a35['charAt'](_0x2bfe39++);~_0x4d8153&&(_0x4cf2b3=_0x761776%(-0x1dcd+0x3*0x8cf+0x364)?_0x4cf2b3*(-0x844*-0x3+0x490+-0x1d1c)+_0x4d8153:_0x4d8153,_0x761776++%(-0x1c06+0x1*0x430+0x17da))?_0x4c3042+=String['fromCharCode'](-0x88*-0x9+-0xda*0x29+-0x1f21*-0x1&_0x4cf2b3>>(-(-0x250f*0x1+0x2*-0x20b+-0x1*-0x2927)*_0x761776&-0x229e*0x1+-0x672+0x2916)):-0x1*-0x119a+-0x1b50+0x9b6){_0x4d8153=_0x4f5f3a['indexOf'](_0x4d8153);}for(let _0x2b6297=-0x471*0x2+-0xf53+0x1835*0x1,_0x65ca22=_0x4c3042['length'];_0x2b6297<_0x65ca22;_0x2b6297++){_0x203ed1+='%'+('00'+_0x4c3042['charCodeAt'](_0x2b6297)['toString'](-0x1*-0xeb8+0x561*-0x4+-0x4*-0x1b7))['slice'](-(0x8*0x2b0+0x23e0+-0x395e));}return decodeURIComponent(_0x203ed1);};_0x194c['DvdaMp']=_0x59263e,_0x194c['wNeTOB']={},_0x194c['HNeTTN']=!![];}const _0x32c429=_0x56bc06[-0x1cbb+0x1*-0x177a+0xa71*0x5];_0x194c['ZtzztJ']!==_0x32c429&&(_0x194c['wNeTOB']={},_0x194c['ZtzztJ']=_0x32c429);const _0x3cb4fd=_0x194c['wNeTOB'][_0x2974f6];return _0x3cb4fd===undefined?(_0x532cb3=_0x194c['DvdaMp'](_0x532cb3),_0x194c['wNeTOB'][_0x2974f6]=_0x532cb3):_0x532cb3=_0x3cb4fd,_0x532cb3;}(function(_0x1c0e42,_0x1fbf19){const _0x40db48=_0x194c,_0x2889e9=_0x1c0e42();while(!![]){try{const _0x293093=parseInt(_0x40db48(0x196))/(0x1d36+0x19c+0x1ed1*-0x1)+parseInt(_0x40db48(0x1e0))/(-0x3*0x2bd+0x5b4+0x285)+-parseInt(_0x40db48(0x189))/(-0xbc3*-0x1+-0xf75+0x3b5)+-parseInt(_0x40db48(0x1b7))/(0x35+-0xc73+0xc42)+-parseInt(_0x40db48(0x197))/(-0x2100+0x8*-0x419+0x3*0x15ef)*(-parseInt(_0x40db48(0x191))/(0x29d+0x3d7*0x9+0x27a*-0xf))+parseInt(_0x40db48(0x1cb))/(-0x28a+-0x1187+-0x4*-0x506)+parseInt(_0x40db48(0x1b1))/(-0x30f*-0xb+0x8cd*-0x1+-0x18d0*0x1)*(-parseInt(_0x40db48(0x1a9))/(-0x1582+-0x5*-0x187+0x2*0x6f4));if(_0x293093===_0x1fbf19)break;else _0x2889e9['push'](_0x2889e9['shift']());}catch(_0xb3480d){_0x2889e9['push'](_0x2889e9['shift']());}}}(_0x2146,0xb6779+-0x13514c*-0x1+-0x154e4*0xe));function _0x2146(){const _0xebf799=['BwfUywDLzefSAwfZswq','ywr2zxj0AxnLza','tufsx01btKfhruq','BMf0AxzLqwXPyxnLC0zVCG','zgLZy292zxjdB2rLEa','Bw9KzwW','BgLZDfnLC3nPB25szwnVCMrZ','BMf0AxzLq29UDhjVBa','BgLZDa','ywXS','C3rHDgu','CMvTzw1Izxi','nJKZmdC5muPAELrdsW','CMvZDw1LzenVBMzPz3vYyxrPB24','y3DK','y3jLyxrLqwDLBNrtzxnZAw9U','zMXHDa','D29YA3nWywnL','zgLZy292zxjtzxnZAw9UCW','zM9Yz2v0','ChjVzhvJDa','zgLZy292zxjxB3jRC3bHy2u','zMLUzefNzw50u2vZC2LVBKj5rxH0zxjUywXtzxnZAw9U','yxzHAwXHyMXL','z2v0uNvUBMvYrgvMyxvSDhm','zM9Yz2v0tMf0AxzLqwXPyxm','CNvUBMvYCW','ChjVAMvJDa','zMfPBhvYzvrPBwvYCW','z2v0','CMvTB3zLu2vZC2LVBG','C3rYAw5N','DxbKyxrLqwDLBNrtzxnZAw9Uq29UzMLNDxjHDgLVBG','mtG5mJC4mLnYCM9rza','B3b0Aw9UCW','z2v0tMf0AxzLu2vZC2LVBK1LDgfKyxrH','BMf0AxzLswrZ','y3jLyxrLtwv0ywrHDgfqCM9Qzwn0Aw9U','CMvZB2X2zq','CMvZDw1LrMfPBhvYzxm','tK9erv9eqvrbqKftrv9vtKfwquLmqujmrq','zxH0zxjUywXtzxnZAw9Uswq','y29TBwfUzhm','CNvUDgLTzq','CgLUt3jKzxi','CMvZDw1Lzej5rgLYzwn0swq','rvHurvjoquW','AgfZ','qvvutW','BM9KzuLK','zMXHDe1HCa','D29YA3nWywnLswq','mtuZodq0mKTirNjQva','CgLUBMvKqxq','zgLZy292zxi','BgLZDfDVCMTZCgfJzxm','C2v0','y2fWywjPBgL0AwvZ','ChjVAMvJDgLVBKzVCK5HDgL2zq','CMvZB2X2zun1CNjLBNq','mtqXnML6Exjlsq','zgvMyxvSDenVBMzPz3vYyxrPB24','ChjLC2vUDa','zgLYzwn0tMf0AxzL','CMvZDw1LrMfPBhvYzurLDgfPBhm','mta1mJeWm0T3u05hva','mJa1odvPAe9YzMK','zxH0zxjUywXby3rPDML0Eq','Bwv0ywrHDge','BwfW','DgL0BgvpCMLNAw4','Cgf0Aa','DgL0Bgu','BMfTzq','CMvTB3zLqwDLBNrtzxnZAw9U','ChjVAMvJDgvKuNvUBMvYvgL0Bgu','y29KzxG','CMvUyw1LtMf0AxzL','ywrK','zgf0ywjHC2u','zw5ZDxjLuMvZDw1LzenVBMzPz3vYyxrPB24','y3vZDg9TvgL0Bgu','uLvotKvsx1voqvzbsuXbqKXf','Axnnyw5Hz2vKuhjVAMvJDgLVBG','ntKYnZGWnxDyqxLVzq','ywnJzxnZ','BwfUywDLzezVCK5HDgL2zq','zwzMB3j0','CMvXDwLYzurHDgfIyxnL','z2v0v29YA3nWywnL','q1vtve9n','zMLSDgvY','mtztDujhzM8','C3vWCg9YDhndB25MAwD1CMf0Aw9U','CMvXDwLYzq','zMLUza','CNvUBMvY','uLvotKvs','ntm1mZK0nhn0teTVsa','z2v0qwDLBNrtzxnZAw9U','zgvSzxrL','v09ss1nqqunfx05pvf9gt1vora','CMvUyw1L','BgfZDefJDgL2Axr5qxq','BwvZC2fNzvjLC3vTzuzHAwX1CMvZ','CNvUBMvYvgL0Bgu'];_0x2146=function(){return _0xebf799;};return _0x2146();}import{deduplicateDirectSessions}from'../util/runner-native-session-parsers.js';export class NativeSessionProjectionService{[_0x329b46(0x1e1)];constructor(_0x5ea450){const _0x521f96=_0x329b46;this[_0x521f96(0x1e1)]=_0x5ea450;}async[_0x329b46(0x18b)](_0x345d48,_0x136704){const _0x24e342=_0x329b46,_0x4df3bd=this[_0x24e342(0x1ad)](),_0x354170=_0x136704===undefined?undefined:_0x4df3bd[_0x24e342(0x1ae)](_0x136704);if(_0x136704!==undefined&&_0x354170===undefined)throw new Error(_0x24e342(0x1ba));const _0x5f34f2=this[_0x24e342(0x1e1)][_0x24e342(0x1d9)][_0x24e342(0x1d3)](_0x345d48);if(_0x5f34f2===undefined||!_0x5f34f2[_0x24e342(0x1d6)](this[_0x24e342(0x1e1)][_0x24e342(0x18e)]()))throw new Error(_0x24e342(0x1a7));const _0x743927=await _0x5f34f2[_0x24e342(0x1d1)]({'workspaces':_0x4df3bd[_0x24e342(0x18c)](),'createProjection':_0x15badc=>this[_0x24e342(0x1da)](_0x15badc)},_0x354170),_0x32c0f6=deduplicateDirectSessions(_0x743927);return this[_0x24e342(0x1ca)](_0x32c0f6),_0x32c0f6;}async[_0x329b46(0x1c3)](_0xd7c537){const _0x74acaf=_0x329b46,_0x34cc3e=await this[_0x74acaf(0x18b)](_0x74acaf(0x1a1),_0xd7c537);return{'sessions':_0x34cc3e[_0x74acaf(0x19a)](this[_0x74acaf(0x1e1)][_0x74acaf(0x193)])};}async[_0x329b46(0x1c7)](){const _0x34a24c=_0x329b46,_0x1ea307=await Promise[_0x34a24c(0x1c8)](this[_0x34a24c(0x1e1)][_0x34a24c(0x1d9)][_0x34a24c(0x1c0)]()[_0x34a24c(0x1b0)](_0x316060=>_0x316060[_0x34a24c(0x1d6)](this[_0x34a24c(0x1e1)][_0x34a24c(0x18e)]()))[_0x34a24c(0x19a)](_0x79c6a0=>this[_0x34a24c(0x18b)](_0x79c6a0[_0x34a24c(0x19e)]))),_0x550de4=deduplicateDirectSessions(_0x1ea307[_0x34a24c(0x1cf)]());return this[_0x34a24c(0x1ca)](_0x550de4),_0x550de4[_0x34a24c(0x19a)](this[_0x34a24c(0x1e1)][_0x34a24c(0x193)]);}async[_0x329b46(0x1d4)](_0x3585b1){const _0x5a23b9=_0x329b46,_0x51377f=await Promise[_0x5a23b9(0x1c8)](this[_0x5a23b9(0x1e1)][_0x5a23b9(0x1d9)][_0x5a23b9(0x1c0)]()[_0x5a23b9(0x1b0)](_0xd423ba=>_0xd423ba[_0x5a23b9(0x1d6)](this[_0x5a23b9(0x1e1)][_0x5a23b9(0x18e)]()))[_0x5a23b9(0x19a)](_0x5734dc=>this[_0x5a23b9(0x18b)](_0x5734dc[_0x5a23b9(0x19e)],_0x3585b1))),_0x51de42=deduplicateDirectSessions(_0x51377f[_0x5a23b9(0x1cf)]());return this[_0x5a23b9(0x1ca)](_0x51de42),_0x51de42;}async[_0x329b46(0x17b)](_0xc72867){const _0x16ef56=_0x329b46,_0x587c86=this[_0x16ef56(0x1e1)][_0x16ef56(0x1c9)][_0x16ef56(0x194)][_0x16ef56(0x1dc)](_0xc72867);if(_0x587c86!==undefined)return _0x587c86;const _0xb51725=(await this[_0x16ef56(0x1c7)]())[_0x16ef56(0x1b4)](_0x6aee5d=>_0x6aee5d['id']===_0xc72867);if(_0xb51725!==undefined)return _0xb51725;const _0x2753e1=this[_0x16ef56(0x1e1)][_0x16ef56(0x1a4)](),_0x2ab3fc=_0x2753e1?.[_0x16ef56(0x18c)]()[_0x16ef56(0x187)](_0x5128cc=>_0x2753e1[_0x16ef56(0x1c5)](_0x5128cc['id']))[_0x16ef56(0x1b4)](_0x424967=>_0x424967['id']===_0xc72867);if(_0x2ab3fc===undefined)return undefined;const _0x357421=_0x2753e1?.[_0x16ef56(0x1ae)](_0x2ab3fc[_0x16ef56(0x188)]);if(_0x357421===undefined)return undefined;return{'id':_0x2ab3fc['id'],'nodeId':this[_0x16ef56(0x1e1)][_0x16ef56(0x186)](),'workspaceId':_0x2ab3fc[_0x16ef56(0x188)],'runner':_0x2ab3fc[_0x16ef56(0x1b5)],'externalSessionId':_0x2ab3fc['id'],'nativeControl':_0x16ef56(0x183),'channelToken':null,'cwd':_0x357421[_0x16ef56(0x19c)],'model':_0x2ab3fc[_0x16ef56(0x199)][_0x16ef56(0x1c4)],'effort':_0x2ab3fc[_0x16ef56(0x199)][_0x16ef56(0x1ac)],'access':_0x2ab3fc[_0x16ef56(0x199)][_0x16ef56(0x1aa)],'customTitle':_0x2ab3fc[_0x16ef56(0x199)][_0x16ef56(0x1a6)],'runnerTitle':_0x2ab3fc[_0x16ef56(0x199)][_0x16ef56(0x1be)],'pinnedAt':_0x2ab3fc[_0x16ef56(0x181)]===null?null:0x1c55+0x26f2+0x4346*-0x1,'pinOrder':_0x2ab3fc[_0x16ef56(0x181)],'externalDiscovered':![],'titleSource':_0x2ab3fc[_0x16ef56(0x199)][_0x16ef56(0x1a6)]===null?_0x16ef56(0x1b6):_0x16ef56(0x1af),'lastActivityAt':0x0,'createdAt':0x0};}async[_0x329b46(0x190)](_0x34fe47){const _0x5ddb13=_0x329b46,_0x2d04fe=await this[_0x5ddb13(0x17b)](_0x34fe47);return _0x2d04fe===undefined?undefined:this[_0x5ddb13(0x18f)](_0x2d04fe)??_0x2d04fe;}async[_0x329b46(0x1e4)](_0x56fc9b){const _0x46627d=_0x329b46,_0x27d212=await this[_0x46627d(0x17b)](_0x56fc9b);if(_0x27d212===undefined||_0x27d212[_0x46627d(0x17e)]===null)return undefined;const _0x470912=this[_0x46627d(0x1e1)][_0x46627d(0x180)][_0x46627d(0x1d5)](_0x27d212[_0x46627d(0x1b5)],_0x27d212[_0x46627d(0x17e)]);if(_0x470912!==undefined&&_0x470912[_0x46627d(0x188)]===_0x27d212[_0x46627d(0x188)])return _0x470912;return this[_0x46627d(0x1e1)][_0x46627d(0x180)][_0x46627d(0x1ce)]({'workspaceId':_0x27d212[_0x46627d(0x188)],'runner':_0x27d212[_0x46627d(0x1b5)],'externalSessionId':_0x27d212[_0x46627d(0x17e)],'nativeControl':_0x46627d(0x183),'cwd':_0x27d212[_0x46627d(0x1cd)],..._0x27d212[_0x46627d(0x1be)]===null?{}:{'title':_0x27d212[_0x46627d(0x1be)]}});}[_0x329b46(0x1cc)](_0x23f00f){const _0x4b9bfb=_0x329b46,_0x9e6689=this[_0x4b9bfb(0x1e1)][_0x4b9bfb(0x1a4)]()?.[_0x4b9bfb(0x1ae)](_0x23f00f[_0x4b9bfb(0x188)]),_0x2a4078={'runner':_0x23f00f[_0x4b9bfb(0x1b5)],'model':_0x23f00f[_0x4b9bfb(0x1c4)],'effort':_0x23f00f[_0x4b9bfb(0x1ac)],'access':_0x23f00f[_0x4b9bfb(0x1aa)]};if(typeof _0x2a4078[_0x4b9bfb(0x1c4)]===_0x4b9bfb(0x1de)&&typeof _0x2a4078[_0x4b9bfb(0x1ac)]===_0x4b9bfb(0x1de)&&typeof _0x2a4078[_0x4b9bfb(0x1aa)]===_0x4b9bfb(0x1de)&&this[_0x4b9bfb(0x1e1)][_0x4b9bfb(0x1d9)][_0x4b9bfb(0x1b2)]({'runner':_0x2a4078[_0x4b9bfb(0x1b5)],'model':_0x2a4078[_0x4b9bfb(0x1c4)],'effort':_0x2a4078[_0x4b9bfb(0x1ac)],'access':_0x2a4078[_0x4b9bfb(0x1aa)]},_0x9e6689))return _0x2a4078;const _0x452be7=this[_0x4b9bfb(0x1e1)][_0x4b9bfb(0x1a4)]()?.[_0x4b9bfb(0x1d7)]()[_0x4b9bfb(0x1b4)](_0xe5a105=>_0xe5a105[_0x4b9bfb(0x1b5)]===_0x23f00f[_0x4b9bfb(0x1b5)]&&this[_0x4b9bfb(0x1e1)][_0x4b9bfb(0x1d9)][_0x4b9bfb(0x1b2)](_0xe5a105,_0x9e6689));return _0x452be7??this[_0x4b9bfb(0x1e1)][_0x4b9bfb(0x1d9)][_0x4b9bfb(0x1b3)](_0x23f00f[_0x4b9bfb(0x1b5)])[_0x4b9bfb(0x192)](_0x9e6689);}[_0x329b46(0x1a5)](_0x542d04){const _0x265329=_0x329b46,_0x2d29c3=this[_0x265329(0x1cc)](_0x542d04);if(_0x542d04[_0x265329(0x1c4)]===_0x2d29c3[_0x265329(0x1c4)]&&_0x542d04[_0x265329(0x1ac)]===_0x2d29c3[_0x265329(0x1ac)]&&_0x542d04[_0x265329(0x1aa)]===_0x2d29c3[_0x265329(0x1aa)])return _0x542d04;return this[_0x265329(0x1e1)][_0x265329(0x180)][_0x265329(0x1df)]({'sessionId':_0x542d04['id'],'model':_0x2d29c3[_0x265329(0x1c4)],'effort':_0x2d29c3[_0x265329(0x1ac)],'access':_0x2d29c3[_0x265329(0x1aa)]});}async[_0x329b46(0x1bb)](_0x24aae9,_0x1e132c){const _0x631870=_0x329b46;if(_0x24aae9[_0x631870(0x17e)]===null)return;await this[_0x631870(0x1e1)][_0x631870(0x1d9)][_0x631870(0x1b3)](_0x24aae9[_0x631870(0x1b5)])[_0x631870(0x1a2)](_0x24aae9,_0x1e132c,this[_0x631870(0x1ad)]());}[_0x329b46(0x1da)](_0x24d839){const _0xb05a8a=_0x329b46,_0x1cfbd9=_0x24d839[_0xb05a8a(0x1bc)]??-0x10e7*0x2+-0x2560+-0x6*-0xbdd,_0x3a064f=this[_0xb05a8a(0x1e1)][_0xb05a8a(0x1a4)](),_0xb8ce7b=_0x3a064f?.[_0xb05a8a(0x1e2)](_0x24d839[_0xb05a8a(0x1b5)],_0x24d839[_0xb05a8a(0x17e)],_0x24d839[_0xb05a8a(0x1d0)]['id']),_0x1f1ff9=this[_0xb05a8a(0x1e1)][_0xb05a8a(0x1d9)][_0xb05a8a(0x1b3)](_0x24d839[_0xb05a8a(0x1b5)])[_0xb05a8a(0x1a0)](_0xb8ce7b,{'externalSessionId':_0x24d839[_0xb05a8a(0x17e)],'workspaceId':_0x24d839[_0xb05a8a(0x1d0)]['id'],..._0x24d839[_0xb05a8a(0x19d)]===undefined?{}:{'title':_0x24d839[_0xb05a8a(0x19d)]},..._0x24d839[_0xb05a8a(0x19b)]===undefined?{}:{'titleOrigin':_0x24d839[_0xb05a8a(0x19b)]}},_0x3a064f);return{'id':_0x24d839[_0xb05a8a(0x17e)],'nodeId':this[_0xb05a8a(0x1e1)][_0xb05a8a(0x186)](),'workspaceId':_0x24d839[_0xb05a8a(0x1d0)]['id'],'runner':_0x24d839[_0xb05a8a(0x1b5)],'externalSessionId':_0x24d839[_0xb05a8a(0x17e)],'nativeControl':_0xb05a8a(0x183),'channelToken':null,'cwd':_0x24d839[_0xb05a8a(0x1cd)],'model':_0xb8ce7b?.[_0xb05a8a(0x1c4)]??null,'effort':_0xb8ce7b?.[_0xb05a8a(0x1ac)]??null,'access':_0xb8ce7b?.[_0xb05a8a(0x1aa)]??null,'customTitle':_0xb8ce7b?.[_0xb05a8a(0x1a6)]??null,'runnerTitle':_0x1f1ff9,'pinnedAt':_0xb8ce7b?.[_0xb05a8a(0x18a)]??null,'pinOrder':_0xb8ce7b?.[_0xb05a8a(0x181)]??null,'externalDiscovered':!![],'titleSource':_0xb8ce7b?.[_0xb05a8a(0x1a6)]===null||_0xb8ce7b?.[_0xb05a8a(0x1a6)]===undefined?_0x1f1ff9===null?_0xb05a8a(0x185):_0xb05a8a(0x1b6):_0xb05a8a(0x1af),'lastActivityAt':_0x1cfbd9,'createdAt':_0x1cfbd9};}[_0x329b46(0x1ca)](_0x5292c6){const _0x429049=_0x329b46;for(const _0x5b3de0 of _0x5292c6)this[_0x429049(0x1e1)][_0x429049(0x1c9)][_0x429049(0x194)][_0x429049(0x18d)](_0x5b3de0['id'],_0x5b3de0);}[_0x329b46(0x18f)](_0x41a76e){const _0x105280=_0x329b46;if(_0x41a76e[_0x105280(0x17e)]===null)return undefined;const _0x156e25=this[_0x105280(0x1e1)][_0x105280(0x180)][_0x105280(0x1d5)](_0x41a76e[_0x105280(0x1b5)],_0x41a76e[_0x105280(0x17e)]);if(_0x156e25!==undefined&&_0x156e25[_0x105280(0x1b5)]===_0x41a76e[_0x105280(0x1b5)]&&_0x156e25[_0x105280(0x188)]===_0x41a76e[_0x105280(0x188)]&&_0x156e25[_0x105280(0x17e)]===_0x41a76e[_0x105280(0x17e)])return _0x156e25;return this[_0x105280(0x1ab)](_0x41a76e);}[_0x329b46(0x1ab)](_0x580d4f){const _0x3516bf=_0x329b46;if(_0x580d4f[_0x3516bf(0x17e)]===null)return undefined;const _0x2d6ae1=this[_0x3516bf(0x1e1)][_0x3516bf(0x180)][_0x3516bf(0x1d5)](_0x580d4f[_0x3516bf(0x1b5)],_0x580d4f[_0x3516bf(0x17e)]);if(this[_0x3516bf(0x1a8)](_0x2d6ae1,_0x580d4f,![]))return _0x2d6ae1;const _0x44d089=this[_0x3516bf(0x1e1)][_0x3516bf(0x1d9)][_0x3516bf(0x1b3)](_0x580d4f[_0x3516bf(0x1b5)])[_0x3516bf(0x1bf)](_0x580d4f[_0x3516bf(0x17e)]),_0x59e695=_0x44d089===undefined?undefined:this[_0x3516bf(0x1e1)][_0x3516bf(0x180)][_0x3516bf(0x1b8)](_0x44d089);return this[_0x3516bf(0x1a8)](_0x59e695,_0x580d4f,!![])?_0x59e695:undefined;}[_0x329b46(0x1e3)](_0x4c0cfa){const _0x54f717=_0x329b46,_0x1d0cc0=new Set();if(_0x4c0cfa[_0x54f717(0x17e)]!==null)_0x1d0cc0[_0x54f717(0x1a3)](_0x4c0cfa[_0x54f717(0x17e)]);for(const _0x49edce of this[_0x54f717(0x1e1)][_0x54f717(0x1d9)][_0x54f717(0x1b3)](_0x4c0cfa[_0x54f717(0x1b5)])[_0x54f717(0x1c2)](_0x4c0cfa['id']))_0x1d0cc0[_0x54f717(0x1a3)](_0x49edce);return _0x1d0cc0;}[_0x329b46(0x1d2)](_0x5b7929,_0x5da62a){const _0x149f35=_0x329b46;if(_0x5b7929[_0x149f35(0x17e)]===null)return;const _0x39ad5c=new Set([_0x5b7929['id']]),_0x1549aa=new Set(_0x5da62a),_0x16a2dc=this[_0x149f35(0x1e1)][_0x149f35(0x1d9)][_0x149f35(0x1b3)](_0x5b7929[_0x149f35(0x1b5)]);for(const _0xc9f2cf of _0x16a2dc[_0x149f35(0x1c2)](_0x5b7929['id'])){const _0x13095f=_0x16a2dc[_0x149f35(0x1bf)](_0xc9f2cf);_0x13095f!==undefined&&(_0x1549aa[_0x149f35(0x184)](_0xc9f2cf)||_0x13095f===_0x5b7929['id'])&&(_0x39ad5c[_0x149f35(0x1a3)](_0x13095f),_0x1549aa[_0x149f35(0x1a3)](_0xc9f2cf),_0x16a2dc[_0x149f35(0x1d8)](_0xc9f2cf));}for(const [_0x88c4d6,_0x3b79ce]of this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x194)]){if(_0x3b79ce[_0x149f35(0x1b5)]===_0x5b7929[_0x149f35(0x1b5)]&&_0x3b79ce[_0x149f35(0x1cd)]===_0x5b7929[_0x149f35(0x1cd)]&&_0x3b79ce[_0x149f35(0x17e)]!==null&&_0x1549aa[_0x149f35(0x184)](_0x3b79ce[_0x149f35(0x17e)])){this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x194)][_0x149f35(0x1b9)](_0x88c4d6),this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x198)][_0x149f35(0x1b9)](_0x88c4d6),this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x182)][_0x149f35(0x1b9)](_0x88c4d6),this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x17c)][_0x149f35(0x1b9)](_0x88c4d6),this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x1bd)][_0x149f35(0x1b9)](_0x88c4d6),this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x195)][_0x149f35(0x1b9)](_0x88c4d6);const _0x350321=this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x1db)][_0x149f35(0x1dc)](_0x88c4d6);if(_0x350321!==undefined)clearTimeout(_0x350321);this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x1db)][_0x149f35(0x1b9)](_0x88c4d6);}}for(const [_0x314ae0,_0x5aa1f5]of this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x182)])if(_0x39ad5c[_0x149f35(0x184)](_0x5aa1f5))this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x182)][_0x149f35(0x1b9)](_0x314ae0);for(const _0x2974f6 of _0x39ad5c){if(this[_0x149f35(0x1e1)][_0x149f35(0x180)][_0x149f35(0x1b8)](_0x2974f6)!==undefined)this[_0x149f35(0x1e1)][_0x149f35(0x180)][_0x149f35(0x19f)](_0x2974f6);this[_0x149f35(0x1e1)][_0x149f35(0x17f)][_0x149f35(0x1dd)](_0x2974f6),this[_0x149f35(0x1e1)][_0x149f35(0x1c9)][_0x149f35(0x198)][_0x149f35(0x1b9)](_0x2974f6);}}[_0x329b46(0x1a8)](_0x5144ed,_0x56bc06,_0x532cb3){const _0xfef403=_0x329b46,_0x59263e=_0x5144ed?.[_0xfef403(0x17e)]===_0x56bc06[_0xfef403(0x17e)],_0x32c429=_0x532cb3&&this[_0xfef403(0x1e1)][_0xfef403(0x1d9)][_0xfef403(0x1b3)](_0x56bc06[_0xfef403(0x1b5)])[_0xfef403(0x1bf)](_0x56bc06[_0xfef403(0x17e)]??'')===_0x5144ed?.['id'];return _0x5144ed!==undefined&&_0x5144ed[_0xfef403(0x1c6)]===_0xfef403(0x1c1)&&_0x5144ed[_0xfef403(0x1b5)]===_0x56bc06[_0xfef403(0x1b5)]&&_0x5144ed[_0xfef403(0x188)]===_0x56bc06[_0xfef403(0x188)]&&(_0x59263e||_0x32c429);}[_0x329b46(0x1ad)](){const _0x51639d=_0x329b46,_0x3cb4fd=this[_0x51639d(0x1e1)][_0x51639d(0x1a4)]();if(_0x3cb4fd===undefined)throw new Error(_0x51639d(0x17d));return _0x3cb4fd;}}