@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.
- package/dist/capabilities.js +2 -92
- package/dist/claude-agent-sdk.js +2 -330
- package/dist/claude-channel.js +2 -44
- package/dist/codex-app-server.js +2 -503
- package/dist/config.js +2 -56
- package/dist/connector/node-connector-options.js +2 -1
- package/dist/connector/node-operation-router.js +2 -22
- package/dist/connector.js +2 -841
- package/dist/control-outbound-scheduler.js +2 -154
- package/dist/database.js +2 -1418
- package/dist/event-buffer.js +2 -19
- package/dist/fake-runner.js +2 -129
- package/dist/health.js +2 -3
- package/dist/main.js +2 -54
- package/dist/migrations/v001.js +3 -144
- package/dist/migrations/v002.js +2 -143
- package/dist/migrations/v003.js +2 -44
- package/dist/migrations/v004.js +34 -30
- package/dist/native-jsonl-reader.js +2 -186
- package/dist/native-session-history.js +2 -1119
- package/dist/opencode-runtime.js +2 -80
- package/dist/opencode-server.js +2 -263
- package/dist/operational.js +2 -122
- package/dist/process-tree.js +2 -18
- package/dist/rotating-log.js +2 -67
- package/dist/runner/abstract-runner.js +2 -232
- package/dist/runner/claude/managed-run-controller.js +2 -345
- package/dist/runner/claude-code-runner.js +2 -303
- package/dist/runner/codex/composer-image-markers.js +2 -0
- package/dist/runner/codex/conversation-parser.js +2 -861
- package/dist/runner/codex/managed-run-controller.js +2 -460
- package/dist/runner/codex-runner.js +2 -628
- package/dist/runner/fake-test-runner.js +2 -47
- package/dist/runner/opencode/conversation-parser.js +2 -221
- package/dist/runner/opencode/managed-run-controller.js +2 -537
- package/dist/runner/opencode-runner.js +2 -448
- package/dist/runner/runner-registry.js +2 -90
- package/dist/runner-command-engine.js +2 -70
- package/dist/runner-profiles.js +2 -215
- package/dist/runner-usage.js +2 -190
- package/dist/runtime-command-detector.js +2 -73
- package/dist/runtime-state.js +2 -973
- package/dist/service/attachment-domain-state.js +2 -7
- package/dist/service/conversation-history-service.js +2 -457
- package/dist/service/conversation-segment-service.js +2 -162
- package/dist/service/external-session-resume-service.js +2 -118
- package/dist/service/fake-managed-run-service.js +2 -60
- package/dist/service/managed-runner-session-service.js +2 -35
- package/dist/service/mcp-installation-verifier.js +2 -87
- package/dist/service/mcp-node-operation-service.js +2 -90
- package/dist/service/mcp-package-installer.js +2 -136
- package/dist/service/native-session-projection-service.js +2 -280
- package/dist/service/native-session-watch-service.js +2 -383
- package/dist/service/node-connection-lifecycle-service.js +2 -83
- package/dist/service/node-control-channel.js +2 -85
- package/dist/service/node-control-message-service.js +2 -107
- package/dist/service/node-request-service.js +2 -52
- package/dist/service/node-run-event-bridge.js +2 -83
- package/dist/service/node-terminal-channel.js +2 -182
- package/dist/service/node-upgrade-coordinator.js +2 -137
- package/dist/service/node-workspace-coordinator.js +2 -70
- package/dist/service/recent-run-projection-service.js +2 -0
- package/dist/service/run-attachment-service.js +2 -194
- package/dist/service/run-domain-state.js +2 -4
- package/dist/service/run-event-service.js +2 -193
- package/dist/service/run-workbench-service.js +2 -104
- package/dist/service/runner-channel-message-service.js +2 -20
- package/dist/service/runner-interaction-service.js +2 -243
- package/dist/service/runner-service.js +2 -71
- package/dist/service/session-catalog-service.js +2 -224
- package/dist/service/session-command-service.js +2 -76
- package/dist/service/session-context-service.js +2 -101
- package/dist/service/session-domain-state.js +2 -9
- package/dist/service/session-identity-service.js +2 -86
- package/dist/service/session-lifecycle-service.js +2 -240
- package/dist/service/session-message-service.js +2 -173
- package/dist/service/session-presentation-service.js +2 -43
- package/dist/service/session-query-service.js +2 -82
- package/dist/service/skill-directory-service.js +2 -238
- package/dist/service/skill-install-service.js +2 -434
- package/dist/service/skill-node-operation-service.js +2 -206
- package/dist/service/terminal-relay-state.js +2 -3
- package/dist/service/terminal-service.js +2 -52
- package/dist/service/workbench-event-service.js +2 -19
- package/dist/service/workbench-manifest-service.js +2 -69
- package/dist/service/workspace-change-service.js +2 -86
- package/dist/service/workspace-content-search-service.js +2 -477
- package/dist/service/workspace-domain-state.js +2 -41
- package/dist/service/workspace-file-service.js +2 -122
- package/dist/service/workspace-git-exclude-service.js +2 -119
- package/dist/service/workspace-queue-workbench-service.js +2 -304
- package/dist/service/workspace-service.js +2 -69
- package/dist/service/workspace-session-service.js +2 -139
- package/dist/service/workspace-upload-service.js +2 -262
- package/dist/service/workspace-watch-service.js +2 -146
- package/dist/service/workspace-workbench-service.js +2 -405
- package/dist/service.js +2 -38
- package/dist/storage.js +2 -32
- package/dist/supervisor.js +2 -136
- package/dist/terminal.js +2 -416
- package/dist/util/node-operation-parsers.js +2 -382
- package/dist/util/personal-instructions.js +2 -31
- package/dist/util/runner-error.js +2 -52
- package/dist/util/runner-native-session-parsers.js +2 -490
- package/dist/util/safe-error.js +2 -5
- package/dist/util/secret-environment.js +2 -25
- package/dist/workspace.js +2 -1519
- package/package.json +3 -3
- package/dist/capabilities.d.ts +0 -12
- package/dist/claude-agent-sdk.d.ts +0 -92
- package/dist/claude-channel.d.ts +0 -28
- package/dist/codex-app-server.d.ts +0 -133
- package/dist/config.d.ts +0 -18
- package/dist/connector/node-connector-options.d.ts +0 -27
- package/dist/connector/node-operation-router.d.ts +0 -9
- package/dist/connector.d.ts +0 -93
- package/dist/control-outbound-scheduler.d.ts +0 -29
- package/dist/database.d.ts +0 -305
- package/dist/event-buffer.d.ts +0 -9
- package/dist/fake-runner.d.ts +0 -42
- package/dist/health.d.ts +0 -4
- package/dist/main.d.ts +0 -2
- package/dist/migrations/v001.d.ts +0 -3
- package/dist/migrations/v002.d.ts +0 -4
- package/dist/migrations/v003.d.ts +0 -4
- package/dist/migrations/v004.d.ts +0 -4
- package/dist/native-jsonl-reader.d.ts +0 -35
- package/dist/native-session-history.d.ts +0 -126
- package/dist/opencode-runtime.d.ts +0 -33
- package/dist/opencode-server.d.ts +0 -49
- package/dist/operational.d.ts +0 -39
- package/dist/process-tree.d.ts +0 -9
- package/dist/rotating-log.d.ts +0 -17
- package/dist/runner/abstract-runner.d.ts +0 -172
- package/dist/runner/claude/managed-run-controller.d.ts +0 -51
- package/dist/runner/claude-code-runner.d.ts +0 -72
- package/dist/runner/codex/conversation-parser.d.ts +0 -59
- package/dist/runner/codex/managed-run-controller.d.ts +0 -90
- package/dist/runner/codex-runner.d.ts +0 -103
- package/dist/runner/fake-test-runner.d.ts +0 -26
- package/dist/runner/opencode/conversation-parser.d.ts +0 -31
- package/dist/runner/opencode/managed-run-controller.d.ts +0 -82
- package/dist/runner/opencode-runner.d.ts +0 -71
- package/dist/runner/runner-registry.d.ts +0 -19
- package/dist/runner-command-engine.d.ts +0 -28
- package/dist/runner-profiles.d.ts +0 -15
- package/dist/runner-usage.d.ts +0 -33
- package/dist/runtime-command-detector.d.ts +0 -3
- package/dist/runtime-state.d.ts +0 -169
- package/dist/service/attachment-domain-state.d.ts +0 -7
- package/dist/service/conversation-history-service.d.ts +0 -43
- package/dist/service/conversation-segment-service.d.ts +0 -20
- package/dist/service/external-session-resume-service.d.ts +0 -34
- package/dist/service/fake-managed-run-service.d.ts +0 -28
- package/dist/service/managed-runner-session-service.d.ts +0 -12
- package/dist/service/mcp-installation-verifier.d.ts +0 -9
- package/dist/service/mcp-node-operation-service.d.ts +0 -11
- package/dist/service/mcp-package-installer.d.ts +0 -8
- package/dist/service/native-session-projection-service.d.ts +0 -52
- package/dist/service/native-session-watch-service.d.ts +0 -62
- package/dist/service/node-connection-lifecycle-service.d.ts +0 -35
- package/dist/service/node-control-channel.d.ts +0 -32
- package/dist/service/node-control-message-service.d.ts +0 -27
- package/dist/service/node-request-service.d.ts +0 -14
- package/dist/service/node-run-event-bridge.d.ts +0 -40
- package/dist/service/node-terminal-channel.d.ts +0 -29
- package/dist/service/node-upgrade-coordinator.d.ts +0 -29
- package/dist/service/node-workspace-coordinator.d.ts +0 -29
- package/dist/service/run-attachment-service.d.ts +0 -38
- package/dist/service/run-domain-state.d.ts +0 -4
- package/dist/service/run-event-service.d.ts +0 -33
- package/dist/service/run-workbench-service.d.ts +0 -25
- package/dist/service/runner-channel-message-service.d.ts +0 -13
- package/dist/service/runner-interaction-service.d.ts +0 -39
- package/dist/service/runner-service.d.ts +0 -46
- package/dist/service/session-catalog-service.d.ts +0 -45
- package/dist/service/session-command-service.d.ts +0 -24
- package/dist/service/session-context-service.d.ts +0 -35
- package/dist/service/session-domain-state.d.ts +0 -9
- package/dist/service/session-identity-service.d.ts +0 -24
- package/dist/service/session-lifecycle-service.d.ts +0 -31
- package/dist/service/session-message-service.d.ts +0 -33
- package/dist/service/session-presentation-service.d.ts +0 -34
- package/dist/service/session-query-service.d.ts +0 -35
- package/dist/service/skill-directory-service.d.ts +0 -20
- package/dist/service/skill-install-service.d.ts +0 -21
- package/dist/service/skill-node-operation-service.d.ts +0 -44
- package/dist/service/terminal-relay-state.d.ts +0 -6
- package/dist/service/terminal-service.d.ts +0 -12
- package/dist/service/workbench-event-service.d.ts +0 -9
- package/dist/service/workbench-manifest-service.d.ts +0 -90
- package/dist/service/workspace-change-service.d.ts +0 -9
- package/dist/service/workspace-content-search-service.d.ts +0 -14
- package/dist/service/workspace-domain-state.d.ts +0 -79
- package/dist/service/workspace-file-service.d.ts +0 -18
- package/dist/service/workspace-git-exclude-service.d.ts +0 -4
- package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
- package/dist/service/workspace-service.d.ts +0 -15
- package/dist/service/workspace-session-service.d.ts +0 -23
- package/dist/service/workspace-upload-service.d.ts +0 -39
- package/dist/service/workspace-watch-service.d.ts +0 -23
- package/dist/service/workspace-workbench-service.d.ts +0 -58
- package/dist/service.d.ts +0 -4
- package/dist/storage.d.ts +0 -2
- package/dist/supervisor.d.ts +0 -1
- package/dist/terminal.d.ts +0 -133
- package/dist/util/node-operation-parsers.d.ts +0 -92
- package/dist/util/personal-instructions.d.ts +0 -2
- package/dist/util/runner-error.d.ts +0 -6
- package/dist/util/runner-native-session-parsers.d.ts +0 -74
- package/dist/util/safe-error.d.ts +0 -2
- package/dist/util/secret-environment.d.ts +0 -1
- package/dist/workspace.d.ts +0 -217
|
@@ -1,206 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { createHash, randomUUID } from 'node:crypto';
|
|
3
|
-
import { skillInstallMetadataSchema } from '@myagentroam/protocol';
|
|
4
|
-
import { SkillDirectoryService } from './skill-directory-service.js';
|
|
5
|
-
import { SkillInstallService, workspaceSkillTracked } from './skill-install-service.js';
|
|
6
|
-
import { safeErrorCode } from '../util/safe-error.js';
|
|
7
|
-
export class SkillNodeOperationService {
|
|
8
|
-
database;
|
|
9
|
-
config;
|
|
10
|
-
directories = new SkillDirectoryService();
|
|
11
|
-
installer = new SkillInstallService();
|
|
12
|
-
activeTargets = new Set();
|
|
13
|
-
jobs = new Map();
|
|
14
|
-
constructor(database, config) {
|
|
15
|
-
this.database = database;
|
|
16
|
-
this.config = config;
|
|
17
|
-
}
|
|
18
|
-
operations() {
|
|
19
|
-
return {
|
|
20
|
-
'node.skills.inspect': async (data) => {
|
|
21
|
-
await this.installer.recoverNodeHome(homedir());
|
|
22
|
-
return this.directories.inspectNodeHome(homedir(), {
|
|
23
|
-
includeClaudeCompatibility: record(data)['includeClaudeCompatibility'] === true
|
|
24
|
-
});
|
|
25
|
-
},
|
|
26
|
-
'node.skills.install': (data) => this.install('NODE', data),
|
|
27
|
-
'node.skills.remove': (data) => this.remove('NODE', data),
|
|
28
|
-
'workspace.skills.inspect': async (data) => {
|
|
29
|
-
const workspace = this.workspacePath(record(data)['workspaceId']);
|
|
30
|
-
await this.installer.recoverWorkspace(workspace);
|
|
31
|
-
return this.directories.inspectWorkspace(workspace);
|
|
32
|
-
},
|
|
33
|
-
'workspace.skills.install': (data) => this.install('WORKSPACE', data),
|
|
34
|
-
'workspace.skills.remove': (data) => this.remove('WORKSPACE', data),
|
|
35
|
-
'workspace.skills.git-exclude-repair': async (data) => {
|
|
36
|
-
const workspace = this.workspacePath(record(data)['workspaceId']);
|
|
37
|
-
await this.installer.recoverWorkspace(workspace);
|
|
38
|
-
await this.installer.repairWorkspaceGitExclude(workspace);
|
|
39
|
-
return { repaired: true };
|
|
40
|
-
},
|
|
41
|
-
'skill.install.job.get': (data) => this.job(data)
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
async install(target, data) {
|
|
45
|
-
const input = record(data);
|
|
46
|
-
const name = text(input['name'], 'SKILL_NAME_CONFLICT');
|
|
47
|
-
const ticket = text(input['artifactTicket'], 'SKILL_INSTALL_FAILED');
|
|
48
|
-
const metadata = skillInstallMetadataSchema.parse(input['metadata']);
|
|
49
|
-
const workspace = target === 'WORKSPACE' ? this.workspacePath(input['workspaceId']) : undefined;
|
|
50
|
-
if (workspace === undefined)
|
|
51
|
-
await this.installer.recoverNodeHome(homedir());
|
|
52
|
-
else
|
|
53
|
-
await this.installer.recoverWorkspace(workspace);
|
|
54
|
-
if (workspace !== undefined &&
|
|
55
|
-
input['confirmTracked'] !== true &&
|
|
56
|
-
(await workspaceSkillTracked(workspace, name)))
|
|
57
|
-
throw new Error('WORKSPACE_SKILL_TRACKED_CONFIRM_REQUIRED');
|
|
58
|
-
const targetKey = `${target}:${workspace ?? homedir()}`;
|
|
59
|
-
this.cleanupJobs();
|
|
60
|
-
if (this.activeTargets.has(targetKey))
|
|
61
|
-
throw new Error('WORKSPACE_BUSY');
|
|
62
|
-
if (this.activeTargets.size >= 50)
|
|
63
|
-
throw new Error('SKILL_TARGET_LIMIT_EXCEEDED');
|
|
64
|
-
const installJobId = randomUUID();
|
|
65
|
-
this.activeTargets.add(targetKey);
|
|
66
|
-
this.jobs.set(installJobId, { status: 'RUNNING', expiresAt: Date.now() + 5 * 60_000 });
|
|
67
|
-
void (async () => {
|
|
68
|
-
let terminal;
|
|
69
|
-
try {
|
|
70
|
-
await this.performInstall({
|
|
71
|
-
target,
|
|
72
|
-
name,
|
|
73
|
-
ticket,
|
|
74
|
-
metadata,
|
|
75
|
-
...(workspace === undefined ? {} : { workspace })
|
|
76
|
-
});
|
|
77
|
-
terminal = { status: 'SUCCEEDED' };
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
terminal = {
|
|
81
|
-
status: 'FAILED',
|
|
82
|
-
errorCode: safeErrorCode(error, 'SKILL_INSTALL_FAILED')
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
this.activeTargets.delete(targetKey);
|
|
86
|
-
this.jobs.set(installJobId, { ...terminal, expiresAt: Date.now() + 5 * 60_000 });
|
|
87
|
-
})();
|
|
88
|
-
return { accepted: true, installJobId };
|
|
89
|
-
}
|
|
90
|
-
job(data) {
|
|
91
|
-
const installJobId = text(record(data)['installJobId'], 'MESSAGE_INVALID');
|
|
92
|
-
this.cleanupJobs();
|
|
93
|
-
const job = this.jobs.get(installJobId);
|
|
94
|
-
if (job === undefined)
|
|
95
|
-
throw new Error('SKILL_INSTALL_FAILED');
|
|
96
|
-
return {
|
|
97
|
-
installJobId,
|
|
98
|
-
status: job.status,
|
|
99
|
-
...(job.errorCode === undefined ? {} : { errorCode: job.errorCode })
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
cleanupJobs() {
|
|
103
|
-
const now = Date.now();
|
|
104
|
-
for (const [id, job] of this.jobs)
|
|
105
|
-
if (job.expiresAt < now)
|
|
106
|
-
this.jobs.delete(id);
|
|
107
|
-
while (this.jobs.size > 1_000)
|
|
108
|
-
this.jobs.delete(this.jobs.keys().next().value);
|
|
109
|
-
}
|
|
110
|
-
async performInstall(input) {
|
|
111
|
-
const bundle = await this.download(input.ticket, input.metadata.contentHash);
|
|
112
|
-
if (input.target === 'NODE')
|
|
113
|
-
await this.installer.installNodeHome(homedir(), input.name, bundle, input.metadata);
|
|
114
|
-
else
|
|
115
|
-
await this.installer.installWorkspace(input.workspace, input.name, bundle, input.metadata, {
|
|
116
|
-
confirmTracked: true
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
async remove(target, data) {
|
|
120
|
-
const input = record(data);
|
|
121
|
-
const name = text(input['name'], 'SKILL_NAME_CONFLICT');
|
|
122
|
-
const workspace = target === 'WORKSPACE' ? this.workspacePath(input['workspaceId']) : undefined;
|
|
123
|
-
const targetKey = `${target}:${workspace ?? homedir()}`;
|
|
124
|
-
if (this.activeTargets.has(targetKey))
|
|
125
|
-
throw new Error('WORKSPACE_BUSY');
|
|
126
|
-
this.activeTargets.add(targetKey);
|
|
127
|
-
try {
|
|
128
|
-
if (target === 'NODE') {
|
|
129
|
-
await this.installer.recoverNodeHome(homedir());
|
|
130
|
-
await this.installer.removeNodeHome(homedir(), name);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
await this.installer.recoverWorkspace(workspace);
|
|
134
|
-
await this.installer.removeWorkspace(workspace, name);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
finally {
|
|
138
|
-
this.activeTargets.delete(targetKey);
|
|
139
|
-
}
|
|
140
|
-
return { removed: true };
|
|
141
|
-
}
|
|
142
|
-
workspacePath(value) {
|
|
143
|
-
const workspace = this.database().getWorkspace(text(value, 'WORKSPACE_INVALID'));
|
|
144
|
-
if (workspace === undefined)
|
|
145
|
-
throw new Error('WORKSPACE_INVALID');
|
|
146
|
-
return workspace.path;
|
|
147
|
-
}
|
|
148
|
-
async download(ticket, expectedContentHash) {
|
|
149
|
-
const config = this.config();
|
|
150
|
-
if (config.nodeId === undefined || config.credential === undefined)
|
|
151
|
-
throw new Error('NODE_UNAUTHENTICATED');
|
|
152
|
-
const response = await fetch(`${config.serverUrl.replace(/\/$/u, '')}/api/skill-artifacts/${encodeURIComponent(ticket)}`, {
|
|
153
|
-
headers: {
|
|
154
|
-
'x-mar-node-id': config.nodeId,
|
|
155
|
-
authorization: `Bearer ${config.credential}`
|
|
156
|
-
},
|
|
157
|
-
signal: AbortSignal.timeout(60_000)
|
|
158
|
-
});
|
|
159
|
-
if (!response.ok)
|
|
160
|
-
throw new Error('SKILL_INSTALL_FAILED');
|
|
161
|
-
const bundle = (await response.json());
|
|
162
|
-
validateBundle(bundle, expectedContentHash);
|
|
163
|
-
return bundle;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
function validateBundle(bundle, expectedContentHash) {
|
|
167
|
-
if (bundle === null ||
|
|
168
|
-
typeof bundle !== 'object' ||
|
|
169
|
-
bundle.schemaVersion !== 1 ||
|
|
170
|
-
!Array.isArray(bundle.files) ||
|
|
171
|
-
bundle.files.length < 1 ||
|
|
172
|
-
bundle.files.length > 1_000)
|
|
173
|
-
throw new Error('SKILL_CONTENT_INVALID');
|
|
174
|
-
let total = 0;
|
|
175
|
-
const paths = new Set();
|
|
176
|
-
for (const file of bundle.files) {
|
|
177
|
-
if (file === null ||
|
|
178
|
-
typeof file !== 'object' ||
|
|
179
|
-
typeof file.path !== 'string' ||
|
|
180
|
-
typeof file.contentBase64 !== 'string' ||
|
|
181
|
-
paths.has(file.path))
|
|
182
|
-
throw new Error('SKILL_CONTENT_INVALID');
|
|
183
|
-
paths.add(file.path);
|
|
184
|
-
const content = Buffer.from(file.contentBase64, 'base64');
|
|
185
|
-
if (content.toString('base64') !== file.contentBase64 || content.length > 5 * 1024 * 1024)
|
|
186
|
-
throw new Error('SKILL_CONTENT_INVALID');
|
|
187
|
-
total += content.length;
|
|
188
|
-
if (total > 25 * 1024 * 1024)
|
|
189
|
-
throw new Error('SKILL_CONTENT_INVALID');
|
|
190
|
-
}
|
|
191
|
-
if (!paths.has('SKILL.md') || paths.has('.mar-skill-install.json'))
|
|
192
|
-
throw new Error('SKILL_CONTENT_INVALID');
|
|
193
|
-
const canonical = bundle.files.map((file) => `${file.path}\0${file.contentBase64}`).join('\0');
|
|
194
|
-
if (createHash('sha256').update(canonical).digest('hex') !== expectedContentHash)
|
|
195
|
-
throw new Error('SKILL_CONTENT_INVALID');
|
|
196
|
-
}
|
|
197
|
-
function record(value) {
|
|
198
|
-
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
199
|
-
throw new Error('MESSAGE_INVALID');
|
|
200
|
-
return value;
|
|
201
|
-
}
|
|
202
|
-
function text(value, code) {
|
|
203
|
-
if (typeof value !== 'string' || value.length === 0)
|
|
204
|
-
throw new Error(code);
|
|
205
|
-
return value;
|
|
206
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
function _0x26e0(){const _0x2a908f=['zNjVBq','CMvWBgfJzq','Aw5ZDgfSBa','mJy4nJzHBgPIsNu','u0TjteXFq09ovevovf9jtLzbteLe','u0TjteXFvefsr0vux0XjtuLux0vyq0vfreve','zMLSzxm','C3rHDhvZ','mJy0Egr2wNne','zxHWAxjLC0f0','z2v0v29YA3nWywnL','v09ss1nqqunf','BgvUz3rO','zgvSzxrL','u0TjteWUBwq','DxbKyxrL','CMvWywLYv29YA3nWywnLr2L0rxHJBhvKzq','otbcs2PSBxK','D29YA3nWywnL','BM93','mLjhuK13qW','otiXmZK2nMHjtwrNrG','zgLYzwn0B3jPzxm','D29YA3nWywnLswq','C2v0','AgfZ','yMfZzty0','CMvJB3zLCK5VzgviB21L','C2vYDMvYvxjS','BM9KzuLK','B3bLCMf0Aw9UCW','AxnbCNjHEq','DgfYz2v0','y29UDgvUDejHC2u2na','Aw5ZDgfSBfDVCMTZCgfJzq','Bwv0ywrHDge','C2nOzw1HvMvYC2LVBG','ntiYnZHcChrtA04','u0TjteXFtKfnrv9dt05gteLdva','y29UzMLYBvrYywnRzwq','l2fWAs9ZA2LSBc1HCNrPzMfJDhmV','C2HHmJu2','zg93BMXVywq','rKfjteve','lM1HCI1ZA2LSBc1PBNn0ywXSlMPZB24','CMvTB3zLtM9KzuHVBwu','v09ss1nqqunfx0LovKfmsuq','B2jQzwn0','y29UzMLN','uLvotKLorW','Aw5ZDgfSBePVyKLK','Aw5ZDgfSBe5VzgviB21L','CgvYzM9YBuLUC3rHBgW','z2v0','C2L6zq','v09ss1nqqunfx1nlsuXmx1rsqunlrurFq09orKLstv9srvfvsvjfra','Aw5ZCgvJDfDVCMTZCgfJzq','zgf0ywjHC2u','Aw5ZCgvJDe5VzgviB21L','A2v5CW','tuvtu0fhrv9jtLzbteLe','CMvTB3zL','DMfSDwu','Agv4','BMfTzq','CMvTB3zLv29YA3nWywnL','tK9erq','mtqZndGYmJn4uuXcBKG','BwfW','nJy3ody1shz4txjR','AM9ICW','qMvHCMvYia','AM9I','AM9PBG','tK9erv9vtKfvveHftLrjq0furuq','zgLNzxn0','nZGWmti4DwfKtvP4','D29YA3nWywnLugf0Aa','BMv4Da','y3jLzgvUDgLHBa','DgLTzw91Da','Aw5ZDgfSBgvY','ywn0AxzLvgfYz2v0CW','u0TjteXFsu5tvefmtf9gquLmruq','CgfYC2u','Aw5JBhvKzunSyxvKzunVBxbHDgLIAwXPDhK','C3rYAw5N','ANnVBG','yxj0AwzHy3ruAwnRzxq','CMvJB3zLCLDVCMTZCgfJzq','v09ss1nqqunfx0jvu1K','Cgf0Aa','y29UDgvUDeHHC2G','DgLJA2v0','Dg9tDhjPBMC','zxjYB3jdB2rL','ywrK','nZzAtxryBLe','y2XLyw51CePVyNm','mJC3ntmZnu5Uyu1wra','u1vdq0vfreve'];_0x26e0=function(){return _0x2a908f;};return _0x26e0();}const _0x527373=_0x291c;(function(_0x485372,_0x35b843){const _0x5e1a82=_0x291c,_0x3dad64=_0x485372();while(!![]){try{const _0x4f6bf6=parseInt(_0x5e1a82(0xca))/(0x5d+-0xb9*-0xb+-0x84f)*(-parseInt(_0x5e1a82(0x92))/(-0x3*0x773+-0x1*-0x1efe+-0x8a3))+parseInt(_0x5e1a82(0xa3))/(-0x2d*0x50+0x140+-0x1*-0xcd3)*(parseInt(_0x5e1a82(0xdf))/(0x289*0x8+0x1df4+-0x3238))+parseInt(_0x5e1a82(0xe1))/(0x9*-0x109+0x1073+-0x71d)+-parseInt(_0x5e1a82(0x93))/(0x84*-0x10+-0xf*0xc9+0x140d)+parseInt(_0x5e1a82(0x81))/(0x151c+-0x252d*-0x1+-0x3a42)*(parseInt(_0x5e1a82(0x86))/(0x1d3*-0x9+-0xf73+0x1*0x1fe6))+parseInt(_0x5e1a82(0xc1))/(0x959*0x4+-0x1040+0x151b*-0x1)+-parseInt(_0x5e1a82(0x8f))/(-0x2f9+0x89*-0x29+0x18f4)*(-parseInt(_0x5e1a82(0xc3))/(-0x16aa+-0x33f+0x19f4));if(_0x4f6bf6===_0x35b843)break;else _0x3dad64['push'](_0x3dad64['shift']());}catch(_0x275cde){_0x3dad64['push'](_0x3dad64['shift']());}}}(_0x26e0,-0x2*-0x745df+0x12bd06+-0x148078));import{homedir}from'node:os';import{createHash,randomUUID}from'node:crypto';function _0x291c(_0x124cfa,_0x3fad68){_0x124cfa=_0x124cfa-(-0x1f7d+0x4a2+0x1b59*0x1);const _0x351c2f=_0x26e0();let _0x4f32e4=_0x351c2f[_0x124cfa];if(_0x291c['IAYqbB']===undefined){var _0xc7bc39=function(_0x52cd0c){const _0x286fe4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56be64='',_0x3d9c4a='';for(let _0x4dfc5c=-0xaa*-0x23+0x3*0x70b+-0x2c5f,_0x326281,_0x425de5,_0x31bc33=0x1c79*-0x1+0x465+-0x17*-0x10c;_0x425de5=_0x52cd0c['charAt'](_0x31bc33++);~_0x425de5&&(_0x326281=_0x4dfc5c%(-0xe9*-0x25+-0x8d1*-0x2+0x334b*-0x1)?_0x326281*(0x536+0x20*-0xa7+-0x123*-0xe)+_0x425de5:_0x425de5,_0x4dfc5c++%(-0x860+-0x423+0xc87*0x1))?_0x56be64+=String['fromCharCode'](0x23e4+-0x1*0x2413+-0x2*-0x97&_0x326281>>(-(0x7a6*0x2+-0x1*-0x26ed+-0x3637)*_0x4dfc5c&0x23d*-0x7+0x25fd+0x593*-0x4)):-0x7d*-0x1+0x1f5+-0x272){_0x425de5=_0x286fe4['indexOf'](_0x425de5);}for(let _0x1270d8=0x10c5+0xcd6*0x2+0x35*-0xcd,_0x51b2f1=_0x56be64['length'];_0x1270d8<_0x51b2f1;_0x1270d8++){_0x3d9c4a+='%'+('00'+_0x56be64['charCodeAt'](_0x1270d8)['toString'](-0x28*-0x36+0x11d8+0x68e*-0x4))['slice'](-(0xa*0x15b+-0x1127+0x39b));}return decodeURIComponent(_0x3d9c4a);};_0x291c['DNdSag']=_0xc7bc39,_0x291c['xgkLtJ']={},_0x291c['IAYqbB']=!![];}const _0x414e83=_0x351c2f[0x1738+0x1c85+-0x33bd*0x1];_0x291c['fmvIvR']!==_0x414e83&&(_0x291c['xgkLtJ']={},_0x291c['fmvIvR']=_0x414e83);const _0x3fe1ea=_0x291c['xgkLtJ'][_0x124cfa];return _0x3fe1ea===undefined?(_0x4f32e4=_0x291c['DNdSag'](_0x4f32e4),_0x291c['xgkLtJ'][_0x124cfa]=_0x4f32e4):_0x4f32e4=_0x3fe1ea,_0x4f32e4;}import{skillInstallMetadataSchema}from'@myagentroam/protocol';import{SkillDirectoryService}from'./skill-directory-service.js';import{SkillInstallService,workspaceSkillTracked}from'./skill-install-service.js';import{safeErrorCode}from'../util/safe-error.js';export class SkillNodeOperationService{[_0x527373(0xb7)];[_0x527373(0xae)];[_0x527373(0x94)]=new SkillDirectoryService();[_0x527373(0xcf)]=new SkillInstallService();[_0x527373(0xd0)]=new Set();[_0x527373(0xc4)]=new Map();constructor(_0x10e4bb,_0x1777ae){const _0x2c4086=_0x527373;this[_0x2c4086(0xb7)]=_0x10e4bb,this[_0x2c4086(0xae)]=_0x1777ae;}[_0x527373(0x9c)](){const _0x1d7fe5=_0x527373;return{'node.skills.inspect':async _0x44bd26=>{const _0x175e81=_0x291c;return await this[_0x175e81(0xcf)][_0x175e81(0x99)](homedir()),this[_0x175e81(0x94)][_0x175e81(0xb8)](homedir(),{'includeClaudeCompatibility':record(_0x44bd26)[_0x175e81(0xd3)]===!![]});},'node.skills.install':_0x5db278=>this[_0x1d7fe5(0x80)](_0x1d7fe5(0xc0),_0x5db278),'node.skills.remove':_0x156a08=>this[_0x1d7fe5(0xbb)](_0x1d7fe5(0xc0),_0x156a08),'workspace.skills.inspect':async _0x4c82a1=>{const _0x491d44=_0x1d7fe5,_0x39f848=this[_0x491d44(0xcb)](record(_0x4c82a1)[_0x491d44(0x95)]);return await this[_0x491d44(0xcf)][_0x491d44(0xd7)](_0x39f848),this[_0x491d44(0x94)][_0x491d44(0xb6)](_0x39f848);},'workspace.skills.install':_0x16746a=>this[_0x1d7fe5(0x80)](_0x1d7fe5(0x89),_0x16746a),'workspace.skills.remove':_0x401715=>this[_0x1d7fe5(0xbb)](_0x1d7fe5(0x89),_0x401715),'workspace.skills.git-exclude-repair':async _0x77601b=>{const _0x2b33d7=_0x1d7fe5,_0x1b1320=this[_0x2b33d7(0xcb)](record(_0x77601b)[_0x2b33d7(0x95)]);return await this[_0x2b33d7(0xcf)][_0x2b33d7(0xd7)](_0x1b1320),await this[_0x2b33d7(0xcf)][_0x2b33d7(0x8e)](_0x1b1320),{'repaired':!![]};},'skill.install.job.get':_0x536f16=>this[_0x1d7fe5(0xc6)](_0x536f16)};}async[_0x527373(0x80)](_0x29fb1a,_0x5cfd07){const _0x471520=_0x527373,_0x2878df=record(_0x5cfd07),_0x33a50f=text(_0x2878df[_0x471520(0xbe)],_0x471520(0xa4)),_0x3b33e8=text(_0x2878df[_0x471520(0xd6)],_0x471520(0xd1)),_0xc7ed42=skillInstallMetadataSchema[_0x471520(0xd2)](_0x2878df[_0x471520(0xa1)]),_0x381506=_0x29fb1a===_0x471520(0x89)?this[_0x471520(0xcb)](_0x2878df[_0x471520(0x95)]):undefined;if(_0x381506===undefined)await this[_0x471520(0xcf)][_0x471520(0x99)](homedir());else await this[_0x471520(0xcf)][_0x471520(0xd7)](_0x381506);if(_0x381506!==undefined&&_0x2878df[_0x471520(0xa5)]!==!![]&&await workspaceSkillTracked(_0x381506,_0x33a50f))throw new Error(_0x471520(0xb5));const _0x32fc02=_0x29fb1a+':'+(_0x381506??homedir());this[_0x471520(0xe0)]();if(this[_0x471520(0xd0)][_0x471520(0x97)](_0x32fc02))throw new Error(_0x471520(0xd8));if(this[_0x471520(0xd0)][_0x471520(0xb4)]>=0x208a+0x6f3+0x1df*-0x15)throw new Error(_0x471520(0x83));const _0x5844bc=randomUUID();return this[_0x471520(0xd0)][_0x471520(0xde)](_0x32fc02),this[_0x471520(0xc4)][_0x471520(0x96)](_0x5844bc,{'status':_0x471520(0xaf),'expiresAt':Date[_0x471520(0x91)]()+(-0x1*-0x1db7+0x9*-0x3ad+-0x121*-0x3)*(0x1acb*0x1+-0x16307*0x1+0x2329c)}),void((async()=>{const _0x51f677=_0x471520;let _0x5d69f7;try{await this[_0x51f677(0xb2)]({'target':_0x29fb1a,'name':_0x33a50f,'ticket':_0x3b33e8,'metadata':_0xc7ed42,..._0x381506===undefined?{}:{'workspace':_0x381506}}),_0x5d69f7={'status':_0x51f677(0xe2)};}catch(_0x301a2a){_0x5d69f7={'status':_0x51f677(0xa9),'errorCode':safeErrorCode(_0x301a2a,_0x51f677(0xd1))};}this[_0x51f677(0xd0)][_0x51f677(0x8b)](_0x32fc02),this[_0x51f677(0xc4)][_0x51f677(0x96)](_0x5844bc,{..._0x5d69f7,'expiresAt':Date[_0x51f677(0x91)]()+(-0x35*-0x11+0x1095+-0x1415)*(0x18f8*-0x3+-0x10fa3*0x1+0x244eb)});})()),{'accepted':!![],'installJobId':_0x5844bc};}[_0x527373(0xc6)](_0x4b4ae4){const _0x1461d4=_0x527373,_0x233e98=text(record(_0x4b4ae4)[_0x1461d4(0xb0)],_0x1461d4(0xba));this[_0x1461d4(0xe0)]();const _0x32a7fb=this[_0x1461d4(0xc4)][_0x1461d4(0xb3)](_0x233e98);if(_0x32a7fb===undefined)throw new Error(_0x1461d4(0xd1));return{'installJobId':_0x233e98,'status':_0x32a7fb[_0x1461d4(0x85)],..._0x32a7fb[_0x1461d4(0xdd)]===undefined?{}:{'errorCode':_0x32a7fb[_0x1461d4(0xdd)]}};}[_0x527373(0xe0)](){const _0x2fe235=_0x527373,_0x5d20db=Date[_0x2fe235(0x91)]();for(const [_0x134aea,_0x47bab2]of this[_0x2fe235(0xc4)])if(_0x47bab2[_0x2fe235(0x87)]<_0x5d20db)this[_0x2fe235(0xc4)][_0x2fe235(0x8b)](_0x134aea);while(this[_0x2fe235(0xc4)][_0x2fe235(0xb4)]>-0x2*-0xacf+0x28a*-0x1+0xf2c*-0x1)this[_0x2fe235(0xc4)][_0x2fe235(0x8b)](this[_0x2fe235(0xc4)][_0x2fe235(0xb9)]()[_0x2fe235(0xcc)]()[_0x2fe235(0xbc)]);}async[_0x527373(0xb2)](_0x522391){const _0x3bee44=_0x527373,_0x1a9893=await this[_0x3bee44(0xa8)](_0x522391[_0x3bee44(0xdb)],_0x522391[_0x3bee44(0xa1)][_0x3bee44(0xda)]);if(_0x522391[_0x3bee44(0x9e)]===_0x3bee44(0xc0))await this[_0x3bee44(0xcf)][_0x3bee44(0xb1)](homedir(),_0x522391[_0x3bee44(0xbe)],_0x1a9893,_0x522391[_0x3bee44(0xa1)]);else await this[_0x3bee44(0xcf)][_0x3bee44(0xa0)](_0x522391[_0x3bee44(0x90)],_0x522391[_0x3bee44(0xbe)],_0x1a9893,_0x522391[_0x3bee44(0xa1)],{'confirmTracked':!![]});}async[_0x527373(0xbb)](_0x23cc4c,_0x20753b){const _0x229998=_0x527373,_0x471768=record(_0x20753b),_0x352b8f=text(_0x471768[_0x229998(0xbe)],_0x229998(0xa4)),_0x1187c5=_0x23cc4c===_0x229998(0x89)?this[_0x229998(0xcb)](_0x471768[_0x229998(0x95)]):undefined,_0x48999a=_0x23cc4c+':'+(_0x1187c5??homedir());if(this[_0x229998(0xd0)][_0x229998(0x97)](_0x48999a))throw new Error(_0x229998(0xd8));this[_0x229998(0xd0)][_0x229998(0xde)](_0x48999a);try{_0x23cc4c===_0x229998(0xc0)?(await this[_0x229998(0xcf)][_0x229998(0x99)](homedir()),await this[_0x229998(0xcf)][_0x229998(0xab)](homedir(),_0x352b8f)):(await this[_0x229998(0xcf)][_0x229998(0xd7)](_0x1187c5),await this[_0x229998(0xcf)][_0x229998(0xbf)](_0x1187c5,_0x352b8f));}finally{this[_0x229998(0xd0)][_0x229998(0x8b)](_0x48999a);}return{'removed':!![]};}[_0x527373(0xcb)](_0x451756){const _0x5232a0=_0x527373,_0x595040=this[_0x5232a0(0xb7)]()[_0x5232a0(0x88)](text(_0x451756,_0x5232a0(0xac)));if(_0x595040===undefined)throw new Error(_0x5232a0(0xac));return _0x595040[_0x5232a0(0xd9)];}async[_0x527373(0xa8)](_0x1867f3,_0x3b43c3){const _0x4919a8=_0x527373,_0x3be75f=this[_0x4919a8(0xae)]();if(_0x3be75f[_0x4919a8(0x9b)]===undefined||_0x3be75f[_0x4919a8(0xcd)]===undefined)throw new Error(_0x4919a8(0xc8));const _0x71587a=await fetch(_0x3be75f[_0x4919a8(0x9a)][_0x4919a8(0x7f)](/\/$/u,'')+_0x4919a8(0xa6)+encodeURIComponent(_0x1867f3),{'headers':{'x-mar-node-id':_0x3be75f[_0x4919a8(0x9b)],'authorization':_0x4919a8(0xc5)+_0x3be75f[_0x4919a8(0xcd)]},'signal':AbortSignal[_0x4919a8(0xce)](0x13c6f+-0x6790+0x5*0x44d)});if(!_0x71587a['ok'])throw new Error(_0x4919a8(0xd1));const _0x5998b8=await _0x71587a[_0x4919a8(0xd5)]();return validateBundle(_0x5998b8,_0x3b43c3),_0x5998b8;}}function validateBundle(_0x3ab970,_0x2dfb95){const _0x3d857c=_0x527373;if(_0x3ab970===null||typeof _0x3ab970!==_0x3d857c(0xad)||_0x3ab970[_0x3d857c(0xa2)]!==0x8a*0x33+0x1*-0x26e7+-0xb6a*-0x1||!Array[_0x3d857c(0x9d)](_0x3ab970[_0x3d857c(0x84)])||_0x3ab970[_0x3d857c(0x84)][_0x3d857c(0x8a)]<0x1327*-0x2+-0x1163+0x37b2*0x1||_0x3ab970[_0x3d857c(0x84)][_0x3d857c(0x8a)]>0x2b*0x45+-0x32*-0x5f+-0x1a3d)throw new Error(_0x3d857c(0x82));let _0x1cba6f=-0x7*-0x3a1+0x41*0x6d+-0x3514;const _0x54ca07=new Set();for(const _0x37fefc of _0x3ab970[_0x3d857c(0x84)]){if(_0x37fefc===null||typeof _0x37fefc!==_0x3d857c(0xad)||typeof _0x37fefc[_0x3d857c(0xd9)]!==_0x3d857c(0xd4)||typeof _0x37fefc[_0x3d857c(0x9f)]!==_0x3d857c(0xd4)||_0x54ca07[_0x3d857c(0x97)](_0x37fefc[_0x3d857c(0xd9)]))throw new Error(_0x3d857c(0x82));_0x54ca07[_0x3d857c(0xde)](_0x37fefc[_0x3d857c(0xd9)]);const _0x24201f=Buffer[_0x3d857c(0x7e)](_0x37fefc[_0x3d857c(0x9f)],_0x3d857c(0x98));if(_0x24201f[_0x3d857c(0xdc)](_0x3d857c(0x98))!==_0x37fefc[_0x3d857c(0x9f)]||_0x24201f[_0x3d857c(0x8a)]>(-0xf*0xf9+0x1738+-0x44e*0x2)*(-0x1814+-0x102*-0xd+0xefa)*(0xd45+0x5*0x5c1+0x1*-0x260a))throw new Error(_0x3d857c(0x82));_0x1cba6f+=_0x24201f[_0x3d857c(0x8a)];if(_0x1cba6f>(0xf4e+-0x21*-0xd+-0x10e2)*(0x22*-0x55+0x1896+-0x94c)*(0x1ade+-0x1*0x1cba+0x5dc))throw new Error(_0x3d857c(0x82));}if(!_0x54ca07[_0x3d857c(0x97)](_0x3d857c(0x8c))||_0x54ca07[_0x3d857c(0x97)](_0x3d857c(0xaa)))throw new Error(_0x3d857c(0x82));const _0x281297=_0x3ab970[_0x3d857c(0x84)][_0x3d857c(0xc2)](_0x2831b4=>_0x2831b4[_0x3d857c(0xd9)]+'\x00'+_0x2831b4[_0x3d857c(0x9f)])[_0x3d857c(0xc7)]('\x00');if(createHash(_0x3d857c(0xa7))[_0x3d857c(0x8d)](_0x281297)[_0x3d857c(0xc9)](_0x3d857c(0xbd))!==_0x2dfb95)throw new Error(_0x3d857c(0x82));}function record(_0x659439){const _0x5ac870=_0x527373;if(_0x659439===null||typeof _0x659439!==_0x5ac870(0xad)||Array[_0x5ac870(0x9d)](_0x659439))throw new Error(_0x5ac870(0xba));return _0x659439;}function text(_0x24fc51,_0x564182){const _0x310142=_0x527373;if(typeof _0x24fc51!==_0x310142(0xd4)||_0x24fc51[_0x310142(0x8a)]===-0x13*-0x15+-0x7*-0x4b7+-0x1c*0x13c)throw new Error(_0x564182);return _0x24fc51;}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
var _0x5ec174=_0x21f5;(function(_0x5bf64a,_0x165fd2){var _0xbd95e=_0x21f5,_0x464077=_0x5bf64a();while(!![]){try{var _0x172cbf=parseInt(_0xbd95e(0x1c3))/(-0xdd6+-0x1e00+0x2bd7)+parseInt(_0xbd95e(0x1cb))/(-0x1*0x237c+-0xdb5+0x3133)*(parseInt(_0xbd95e(0x1c7))/(-0x2a7+-0x1ed2+-0x217c*-0x1))+parseInt(_0xbd95e(0x1c6))/(-0x1f42+-0xf12+0x2*0x172c)*(parseInt(_0xbd95e(0x1c9))/(-0x5*0x6c7+-0xc40+0x2e28))+-parseInt(_0xbd95e(0x1cd))/(0x1b13+0xab2+-0x25bf)*(parseInt(_0xbd95e(0x1c4))/(-0x136c+-0x9aa*0x1+0x1d1d*0x1))+parseInt(_0xbd95e(0x1ca))/(0x1*0x202+-0x22ff+-0x4f*-0x6b)+-parseInt(_0xbd95e(0x1c5))/(0x180c+-0x1*-0x22ab+0x103*-0x3a)*(-parseInt(_0xbd95e(0x1c2))/(-0x703+-0x1fc1+0x26ce))+-parseInt(_0xbd95e(0x1cc))/(0x22c1+-0x6*0x20e+-0x1662);if(_0x172cbf===_0x165fd2)break;else _0x464077['push'](_0x464077['shift']());}catch(_0x4a834f){_0x464077['push'](_0x464077['shift']());}}}(_0x59cf,0x2f*-0x2091+-0xdc010+0x1f87d4));function _0x21f5(_0x1ecd88,_0xb12d0b){_0x1ecd88=_0x1ecd88-(-0x1*-0x1cb7+0x22b8+0x1*-0x3dad);var _0x199f00=_0x59cf();var _0x28c921=_0x199f00[_0x1ecd88];if(_0x21f5['RPrrhB']===undefined){var _0x15ccff=function(_0x3f5c15){var _0x2bd07e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1856f8='',_0x1331f6='';for(var _0x2c72fe=0x1d*-0x73+0x43*0x86+-0x63*0x39,_0xa127c3,_0x112d3d,_0x2dab16=0x269b+0x1*0x24d7+0x29a*-0x1d;_0x112d3d=_0x3f5c15['charAt'](_0x2dab16++);~_0x112d3d&&(_0xa127c3=_0x2c72fe%(0x3f1+-0x3*0xcd3+0x228c)?_0xa127c3*(-0x593+-0x680+0xc53*0x1)+_0x112d3d:_0x112d3d,_0x2c72fe++%(-0x939*-0x3+0x1d92+-0x3939))?_0x1856f8+=String['fromCharCode'](-0x18cc+0x1d1a+-0x1*0x34f&_0xa127c3>>(-(0x23b3+-0xf6f+-0x1442*0x1)*_0x2c72fe&0x2b*-0xc+-0x15a8+0x17b2)):-0x13a*-0xa+0x1d*0x156+-0x3302*0x1){_0x112d3d=_0x2bd07e['indexOf'](_0x112d3d);}for(var _0x470f32=0x7*-0xbd+0x224*-0x7+-0x1*-0x1427,_0x5d31ee=_0x1856f8['length'];_0x470f32<_0x5d31ee;_0x470f32++){_0x1331f6+='%'+('00'+_0x1856f8['charCodeAt'](_0x470f32)['toString'](-0xf40*-0x2+-0x25c+-0x1c14))['slice'](-(-0xa79*0x1+0x71f*-0x1+0x119a));}return decodeURIComponent(_0x1331f6);};_0x21f5['FtBQhZ']=_0x15ccff,_0x21f5['FnzOXl']={},_0x21f5['RPrrhB']=!![];}var _0x460a93=_0x199f00[-0x23*0x4b+0x1dc*0x11+-0x155b];_0x21f5['iehkgh']!==_0x460a93&&(_0x21f5['FnzOXl']={},_0x21f5['iehkgh']=_0x460a93);var _0x1ef591=_0x21f5['FnzOXl'][_0x1ecd88];return _0x1ef591===undefined?(_0x28c921=_0x21f5['FtBQhZ'](_0x28c921),_0x21f5['FnzOXl'][_0x1ecd88]=_0x28c921):_0x28c921=_0x1ef591,_0x28c921;}function _0x59cf(){var _0x4e82eb=['n1PKD3fwrG','mJDvy29NDhy','ntyWmtuYwhbIELPI','mtyXndu5n2PuExneEG','yxr0ywnOBwvUDhm','mtb5BefpD3G','mtiYmJG4mdHnu0z4vxK','mLnusMzHza','mJCZntG1ntfwug5kuNK','ntiXnda3mKLAqwPrsq','ndG2mJyXmeXNs09ODa','mZiZota3D3zQBePw'];_0x59cf=function(){return _0x4e82eb;};return _0x59cf();}export class TerminalRelayState{[_0x5ec174(0x1c8)]=new Map();}
|
|
@@ -1,52 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export class TerminalService {
|
|
3
|
-
database;
|
|
4
|
-
terminalManager;
|
|
5
|
-
constructor(database, terminalManager) {
|
|
6
|
-
this.database = database;
|
|
7
|
-
this.terminalManager = terminalManager;
|
|
8
|
-
}
|
|
9
|
-
operations() {
|
|
10
|
-
return {
|
|
11
|
-
'terminal.open': (data) => this.open(data),
|
|
12
|
-
'terminal.list': () => ({ terminals: this.database().listTerminalSessions() }),
|
|
13
|
-
'terminal.close': (data) => this.close(data),
|
|
14
|
-
'terminal.attach.authorize': (data) => this.authorizeAttach(data)
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
open(data) {
|
|
18
|
-
if (data === null || typeof data !== 'object')
|
|
19
|
-
throw new Error('TERMINAL_OPEN_INVALID');
|
|
20
|
-
const input = data;
|
|
21
|
-
const secretEnvironment = parseSecretEnvironment(input.secretEnvironment);
|
|
22
|
-
let cwd;
|
|
23
|
-
if (input.workspaceId !== undefined) {
|
|
24
|
-
if (typeof input.workspaceId !== 'string')
|
|
25
|
-
throw new Error('TERMINAL_OPEN_INVALID');
|
|
26
|
-
const workspace = this.database().getWorkspace(input.workspaceId);
|
|
27
|
-
if (workspace === undefined)
|
|
28
|
-
throw new Error('WORKSPACE_NOT_FOUND');
|
|
29
|
-
cwd = workspace.path;
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
terminal: this.terminalManager.open({
|
|
33
|
-
...input,
|
|
34
|
-
workspaceId: typeof input.workspaceId === 'string' ? input.workspaceId : null,
|
|
35
|
-
environment: secretEnvironment,
|
|
36
|
-
...(cwd === undefined ? {} : { cwd })
|
|
37
|
-
})
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
async close(data) {
|
|
41
|
-
const input = data;
|
|
42
|
-
if (typeof input.terminalId !== 'string')
|
|
43
|
-
throw new Error('TERMINAL_NOT_FOUND');
|
|
44
|
-
return { terminal: await this.terminalManager.close(input.terminalId) };
|
|
45
|
-
}
|
|
46
|
-
authorizeAttach(data) {
|
|
47
|
-
if (data === null || typeof data !== 'object')
|
|
48
|
-
throw new Error('TERMINAL_ATTACH_INVALID');
|
|
49
|
-
const attachment = this.terminalManager.authorizeAttach(data);
|
|
50
|
-
return { attachment, terminal: this.terminalManager.get(attachment.terminalId) };
|
|
51
|
-
}
|
|
52
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
function _0x24ef(_0x306ca0,_0xe7d459){_0x306ca0=_0x306ca0-(-0x2*0x82f+0x12a*-0x10+-0xd*-0x2bd);const _0x3995de=_0x4727();let _0x1b045c=_0x3995de[_0x306ca0];if(_0x24ef['TZedeC']===undefined){var _0x1bd31f=function(_0x5f48be){const _0x3c8b90='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16491d='',_0x1b48aa='';for(let _0x4fd312=-0x1efc+0x1*-0x2458+-0x1*-0x4354,_0xa8727c,_0x3029b9,_0x5807a5=0x1*-0x1f0d+0x1c9*0xe+0x60f;_0x3029b9=_0x5f48be['charAt'](_0x5807a5++);~_0x3029b9&&(_0xa8727c=_0x4fd312%(0x1f7*-0x1+-0xe6d+0x1068)?_0xa8727c*(-0x1c20+-0xced*0x3+0x4327*0x1)+_0x3029b9:_0x3029b9,_0x4fd312++%(-0xa81+0xe69+-0x3e4*0x1))?_0x16491d+=String['fromCharCode'](-0x9b8+0x2*-0x1369+0x3189&_0xa8727c>>(-(-0x120d+-0x5d*-0x4f+0xe3*-0xc)*_0x4fd312&0x1*0xd6c+0x38*0x6+-0x7*0x21a)):-0x1*0xb99+-0x1*0x1773+-0x8c3*-0x4){_0x3029b9=_0x3c8b90['indexOf'](_0x3029b9);}for(let _0xb6ca5d=-0x1222+0x1901*0x1+-0x6df*0x1,_0x59e02c=_0x16491d['length'];_0xb6ca5d<_0x59e02c;_0xb6ca5d++){_0x1b48aa+='%'+('00'+_0x16491d['charCodeAt'](_0xb6ca5d)['toString'](0x2127+-0x74*0x48+-0x11*0x7))['slice'](-(-0x1722+-0x8a1+0x1fc5));}return decodeURIComponent(_0x1b48aa);};_0x24ef['AKSOfU']=_0x1bd31f,_0x24ef['VEgSDi']={},_0x24ef['TZedeC']=!![];}const _0xd1904c=_0x3995de[-0x1059+-0xff3+0xd*0x27c];_0x24ef['nPRdFk']!==_0xd1904c&&(_0x24ef['VEgSDi']={},_0x24ef['nPRdFk']=_0xd1904c);const _0x8d0332=_0x24ef['VEgSDi'][_0x306ca0];return _0x8d0332===undefined?(_0x1b045c=_0x24ef['AKSOfU'](_0x1b045c),_0x24ef['VEgSDi'][_0x306ca0]=_0x1b045c):_0x1b045c=_0x8d0332,_0x1b045c;}function _0x4727(){const _0x4e761d=['DgvYBwLUywXnyw5Hz2vY','B3bLCMf0Aw9UCW','yxv0Ag9YAxPLqxr0ywnO','DgvYBwLUywXjza','C2vJCMv0rw52AxjVBM1LBNq','BgLZDfrLCM1PBMfSu2vZC2LVBNm','v09ss1nqqunfx05pvf9gt1vora','nZa1mJe4mJvAsg1VuMy','ntu4mZC3ywzAswLU','Cgf0Aa','vevstuLoquXFt1bftL9jtLzbteLe','mZeWntnjqu9bwvu','mte4otHMwfHkzfC','mtu4nty5mtjRDwPWENa','B2jQzwn0','z2v0v29YA3nWywnL','vevstuLoquXFtK9ux0zpvu5e','nta3nwvWvMXuAa','y2XVC2u','B3bLBG','nJi4nJC5mez6t21Uuq','mtq5otm1ndfWDxHer0e','nfrPq2PitW','vevstuLoquXFqvruqunix0LovKfmsuq','C3rYAw5N','zgf0ywjHC2u','D29YA3nWywnLswq','nZjkC3nRtg8','mtbOrM9WAgu','z2v0'];_0x4727=function(){return _0x4e761d;};return _0x4727();}const _0x2b70e0=_0x24ef;(function(_0x2937a1,_0x11c7ae){const _0x24422a=_0x24ef,_0x197b2d=_0x2937a1();while(!![]){try{const _0x5a3bc7=-parseInt(_0x24422a(0xac))/(0x64+-0x210d*-0x1+-0x2170)*(-parseInt(_0x24422a(0x9c))/(0x1a8d+0x853+-0x22de))+parseInt(_0x24422a(0xaf))/(0x21af+-0x1*0x22f7+0x1*0x14b)*(-parseInt(_0x24422a(0xa1))/(-0x3*-0x6fe+-0x1*-0x148b+0x1a9*-0x19))+-parseInt(_0x24422a(0xb8))/(0x935*0x1+-0x568*0x4+0xc70)+-parseInt(_0x24422a(0xb0))/(-0x2*0x70+0x113d+-0x2f*0x59)*(parseInt(_0x24422a(0xb5))/(-0x1*0x12b1+-0x3*-0xc01+-0x114b))+-parseInt(_0x24422a(0xb1))/(0x1537+-0xc9b+0x3d*-0x24)+-parseInt(_0x24422a(0x9b))/(-0x869+0xfd7+-0x765*0x1)*(parseInt(_0x24422a(0xa2))/(0xa34+0x8+-0x20a*0x5))+parseInt(_0x24422a(0xab))/(0x17c7+-0x5*0x235+0x1*-0xcb3);if(_0x5a3bc7===_0x11c7ae)break;else _0x197b2d['push'](_0x197b2d['shift']());}catch(_0x32ac00){_0x197b2d['push'](_0x197b2d['shift']());}}}(_0x4727,-0x1b*-0x2d66+-0x17601+0xbe84e));import{parseSecretEnvironment}from'../util/secret-environment.js';export class TerminalService{[_0x2b70e0(0x9f)];[_0x2b70e0(0xa4)];constructor(_0x270a51,_0x43cc94){const _0x356f2d=_0x2b70e0;this[_0x356f2d(0x9f)]=_0x270a51,this[_0x356f2d(0xa4)]=_0x43cc94;}[_0x2b70e0(0xa5)](){const _0x5f57f6=_0x2b70e0;return{'terminal.open':_0x330cf3=>this[_0x5f57f6(0xb7)](_0x330cf3),'terminal.list':()=>({'terminals':this[_0x5f57f6(0x9f)]()[_0x5f57f6(0xa9)]()}),'terminal.close':_0x466316=>this[_0x5f57f6(0xb6)](_0x466316),'terminal.attach.authorize':_0x2be75c=>this[_0x5f57f6(0xa6)](_0x2be75c)};}[_0x2b70e0(0xb7)](_0x9cab8e){const _0xdab304=_0x2b70e0;if(_0x9cab8e===null||typeof _0x9cab8e!==_0xdab304(0xb2))throw new Error(_0xdab304(0xae));const _0x4e30fb=_0x9cab8e,_0x35a00c=parseSecretEnvironment(_0x4e30fb[_0xdab304(0xa8)]);let _0x3058d1;if(_0x4e30fb[_0xdab304(0xa0)]!==undefined){if(typeof _0x4e30fb[_0xdab304(0xa0)]!==_0xdab304(0x9e))throw new Error(_0xdab304(0xae));const _0x4e172c=this[_0xdab304(0x9f)]()[_0xdab304(0xb3)](_0x4e30fb[_0xdab304(0xa0)]);if(_0x4e172c===undefined)throw new Error(_0xdab304(0xaa));_0x3058d1=_0x4e172c[_0xdab304(0xad)];}return{'terminal':this[_0xdab304(0xa4)][_0xdab304(0xb7)]({..._0x4e30fb,'workspaceId':typeof _0x4e30fb[_0xdab304(0xa0)]===_0xdab304(0x9e)?_0x4e30fb[_0xdab304(0xa0)]:null,'environment':_0x35a00c,..._0x3058d1===undefined?{}:{'cwd':_0x3058d1}})};}async[_0x2b70e0(0xb6)](_0x484264){const _0x38ba0c=_0x2b70e0,_0x2be451=_0x484264;if(typeof _0x2be451[_0x38ba0c(0xa7)]!==_0x38ba0c(0x9e))throw new Error(_0x38ba0c(0xb4));return{'terminal':await this[_0x38ba0c(0xa4)][_0x38ba0c(0xb6)](_0x2be451[_0x38ba0c(0xa7)])};}[_0x2b70e0(0xa6)](_0x2d4a6f){const _0x1935b4=_0x2b70e0;if(_0x2d4a6f===null||typeof _0x2d4a6f!==_0x1935b4(0xb2))throw new Error(_0x1935b4(0x9d));const _0x1e1518=this[_0x1935b4(0xa4)][_0x1935b4(0xa6)](_0x2d4a6f);return{'attachment':_0x1e1518,'terminal':this[_0x1935b4(0xa4)][_0x1935b4(0xa3)](_0x1e1518[_0x1935b4(0xa7)])};}}
|
|
@@ -1,19 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export class WorkbenchEventService {
|
|
3
|
-
send;
|
|
4
|
-
accepts;
|
|
5
|
-
sequence = 0;
|
|
6
|
-
constructor(send, accepts) {
|
|
7
|
-
this.send = send;
|
|
8
|
-
this.accepts = accepts;
|
|
9
|
-
}
|
|
10
|
-
emit(category, payload) {
|
|
11
|
-
if (!this.accepts(category, payload))
|
|
12
|
-
return;
|
|
13
|
-
const event = { sequence: ++this.sequence, category, payload };
|
|
14
|
-
this.send(createEnvelope('workbench.event', event));
|
|
15
|
-
}
|
|
16
|
-
snapshotSequence() {
|
|
17
|
-
return this.sequence;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
const _0x5e434a=_0x1636;function _0x2e2f(){const _0x4e7fe2=['mZKYngXyCNPOAa','mJuZnZe4ntj6twrcqxe','mtG0nZeYoeThAefnBW','ywnJzxb0CW','mtH3AMX2yK4','D29YA2jLBMnOlMv2zw50','mLLNs0znvG','zw1PDa','nde3ndi1mgXzsxDwtq','C2vXDwvUy2u','C25HChnOB3rtzxf1zw5Jzq','mJu3ntKWmgD3BenZvG','ntK3ntK2tgToCMfc','ndKWotGZnw9ls3jfDG','C2vUza','nLLuBg9fDa','mJeYuwnmvvzh'];_0x2e2f=function(){return _0x4e7fe2;};return _0x2e2f();}(function(_0x40196c,_0x425122){const _0x44bd11=_0x1636,_0x237e83=_0x40196c();while(!![]){try{const _0x4c0d7e=parseInt(_0x44bd11(0x7a))/(0xa64*0x1+0x132d+-0x1d90)*(-parseInt(_0x44bd11(0x6f))/(0x1ca4+0xf78+-0x2c1a))+-parseInt(_0x44bd11(0x74))/(-0x3*0xb3a+0x102d+0x1184)*(-parseInt(_0x44bd11(0x73))/(0x24a0+0x115e+-0x35fa))+-parseInt(_0x44bd11(0x7c))/(-0x1bb6*-0x1+-0x1b97+-0x1a)+parseInt(_0x44bd11(0x72))/(-0xd*0x12a+0x1*-0x380+-0xc7*-0x18)*(-parseInt(_0x44bd11(0x70))/(-0x231d*0x1+-0x1b0f+-0x3e33*-0x1))+-parseInt(_0x44bd11(0x76))/(-0x7*-0x2c3+0x2102+0x344f*-0x1)*(-parseInt(_0x44bd11(0x78))/(-0x821*0x3+0x649*-0x1+-0x463*-0x7))+-parseInt(_0x44bd11(0x6e))/(0x1052+0x2*-0x11a4+-0x40*-0x4c)+parseInt(_0x44bd11(0x75))/(-0x3bd+0x6c3*-0x5+0x2597*0x1);if(_0x4c0d7e===_0x425122)break;else _0x237e83['push'](_0x237e83['shift']());}catch(_0x5a55da){_0x237e83['push'](_0x237e83['shift']());}}}(_0x2e2f,-0x1*-0xe121+0x83b7a+-0x24da6));import{createEnvelope}from'@myagentroam/protocol';function _0x1636(_0x15524e,_0x2685a3){_0x15524e=_0x15524e-(-0x8e2+0xb68+-0x219);const _0x38ceb4=_0x2e2f();let _0x478ad2=_0x38ceb4[_0x15524e];if(_0x1636['XiMsEq']===undefined){var _0xb57119=function(_0x33be30){const _0x21b71c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56541e='',_0x2eb40f='';for(let _0x467891=-0x1b7*0x1+0x193e+0x1787*-0x1,_0x6ed538,_0x32cd9c,_0x31052b=-0xfae+-0x22f6+0x32a4;_0x32cd9c=_0x33be30['charAt'](_0x31052b++);~_0x32cd9c&&(_0x6ed538=_0x467891%(-0xa*0xa5+0x186f+-0x11f9*0x1)?_0x6ed538*(-0x1eb4+0x9*0x23f+-0xabd*-0x1)+_0x32cd9c:_0x32cd9c,_0x467891++%(0xc*-0x62+0x1ba1+-0x1705))?_0x56541e+=String['fromCharCode'](-0x2302+0x1*0x24af+0x57*-0x2&_0x6ed538>>(-(-0x4*-0x469+-0x1770+-0x2e7*-0x2)*_0x467891&0x23c9+-0xcfc+-0x16c7)):0x1897*0x1+0x1*-0x23c5+0xb2e){_0x32cd9c=_0x21b71c['indexOf'](_0x32cd9c);}for(let _0x1e0c3d=0x24cd+0xb*0x119+0x220*-0x17,_0x3c5e96=_0x56541e['length'];_0x1e0c3d<_0x3c5e96;_0x1e0c3d++){_0x2eb40f+='%'+('00'+_0x56541e['charCodeAt'](_0x1e0c3d)['toString'](-0x2*0xae7+-0x10fc+0x2*0x136d))['slice'](-(-0xd35+0x1*0x6fd+0x63a));}return decodeURIComponent(_0x2eb40f);};_0x1636['IAnjqV']=_0xb57119,_0x1636['hYizrZ']={},_0x1636['XiMsEq']=!![];}const _0x29e2ae=_0x38ceb4[0x42+0x12e7+-0x1329];_0x1636['iTYAbz']!==_0x29e2ae&&(_0x1636['hYizrZ']={},_0x1636['iTYAbz']=_0x29e2ae);const _0x153eb3=_0x1636['hYizrZ'][_0x15524e];return _0x153eb3===undefined?(_0x478ad2=_0x1636['IAnjqV'](_0x478ad2),_0x1636['hYizrZ'][_0x15524e]=_0x478ad2):_0x478ad2=_0x153eb3,_0x478ad2;}export class WorkbenchEventService{[_0x5e434a(0x71)];[_0x5e434a(0x77)];[_0x5e434a(0x7d)]=0x871+0x26ae+-0x2f1f;constructor(_0x26348c,_0x2ad50a){const _0x48e841=_0x5e434a;this[_0x48e841(0x71)]=_0x26348c,this[_0x48e841(0x77)]=_0x2ad50a;}[_0x5e434a(0x7b)](_0x27d202,_0x4d82ce){const _0x10a3a3=_0x5e434a;if(!this[_0x10a3a3(0x77)](_0x27d202,_0x4d82ce))return;const _0x5842db={'sequence':++this[_0x10a3a3(0x7d)],'category':_0x27d202,'payload':_0x4d82ce};this[_0x10a3a3(0x71)](createEnvelope(_0x10a3a3(0x79),_0x5842db));}[_0x5e434a(0x6d)](){const _0xcac806=_0x5e434a;return this[_0xcac806(0x7d)];}}
|
|
@@ -1,69 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
platform: capabilities.platform,
|
|
4
|
-
architecture: capabilities.architecture,
|
|
5
|
-
codex: capabilities.codex,
|
|
6
|
-
claudeCode: capabilities.claudeCode,
|
|
7
|
-
openCode: capabilities.openCode
|
|
8
|
-
});
|
|
9
|
-
let hash = 2_166_136_261;
|
|
10
|
-
for (const character of source)
|
|
11
|
-
hash = Math.imul(hash ^ character.charCodeAt(0), 16_777_619);
|
|
12
|
-
return hash >>> 0;
|
|
13
|
-
}
|
|
14
|
-
/** Builds the capability-driven Workbench contract exposed by this Node. */
|
|
15
|
-
export class WorkbenchManifestService {
|
|
16
|
-
options;
|
|
17
|
-
constructor(options) {
|
|
18
|
-
this.options = options;
|
|
19
|
-
}
|
|
20
|
-
async read() {
|
|
21
|
-
const capabilities = this.options.capabilities();
|
|
22
|
-
return {
|
|
23
|
-
manifestVersion: 1,
|
|
24
|
-
revision: revisionFor(capabilities),
|
|
25
|
-
observedAt: Date.now(),
|
|
26
|
-
platform: capabilities.platform,
|
|
27
|
-
architecture: capabilities.architecture,
|
|
28
|
-
conversation: {
|
|
29
|
-
available: true,
|
|
30
|
-
reasonCode: null,
|
|
31
|
-
itemVersions: [1],
|
|
32
|
-
supportsSessionCursor: true,
|
|
33
|
-
supportsHistoryPaging: true,
|
|
34
|
-
supportsItemFinalSnapshots: true,
|
|
35
|
-
maxPageSize: 500
|
|
36
|
-
},
|
|
37
|
-
runners: await this.options.runners.profiles(),
|
|
38
|
-
files: {
|
|
39
|
-
available: true,
|
|
40
|
-
reasonCode: null,
|
|
41
|
-
supportsList: true,
|
|
42
|
-
supportsReadRange: true,
|
|
43
|
-
supportsSearch: true,
|
|
44
|
-
maxDirectoryPageSize: 200,
|
|
45
|
-
maxReadBytes: 512 * 1024,
|
|
46
|
-
maxSearchResults: 200
|
|
47
|
-
},
|
|
48
|
-
git: {
|
|
49
|
-
available: true,
|
|
50
|
-
reasonCode: null,
|
|
51
|
-
supportsCurrentChanges: true,
|
|
52
|
-
supportsTurnChanges: true,
|
|
53
|
-
supportsHistory: true,
|
|
54
|
-
maxDiffBytes: 512 * 1024
|
|
55
|
-
},
|
|
56
|
-
terminal: {
|
|
57
|
-
available: true,
|
|
58
|
-
reasonCode: null,
|
|
59
|
-
supportsPty: capabilities.platform === 'linux',
|
|
60
|
-
supportsConPty: capabilities.platform === 'windows',
|
|
61
|
-
supportsReplay: true,
|
|
62
|
-
supportsReadonlyAttach: true,
|
|
63
|
-
supportsTakeover: true,
|
|
64
|
-
...this.options.terminals.limits(),
|
|
65
|
-
profiles: this.options.terminals.availableProfiles()
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
function _0x1e5b(_0x5e341d,_0x22d853){_0x5e341d=_0x5e341d-(-0x16*0x116+-0x1*-0x90b+-0x1099*-0x1);const _0x233c64=_0x343e();let _0x49859b=_0x233c64[_0x5e341d];if(_0x1e5b['FeIoUW']===undefined){var _0x46d6c7=function(_0x4a1204){const _0x15e042='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3a8c9c='',_0x3b6801='';for(let _0x2fde3a=-0x135f+-0x12c8+0x2627,_0x571248,_0x31f0f4,_0x1d942d=0x35*-0x91+-0xeb5+0x8f2*0x5;_0x31f0f4=_0x4a1204['charAt'](_0x1d942d++);~_0x31f0f4&&(_0x571248=_0x2fde3a%(-0x1*-0x184a+0x2*-0x1e2+-0x1482)?_0x571248*(0x7*0x53a+-0x216b+-0x2eb)+_0x31f0f4:_0x31f0f4,_0x2fde3a++%(0x1de8+-0x1ae7+0xff*-0x3))?_0x3a8c9c+=String['fromCharCode'](-0x1db4*-0x1+0x13ff+0x30b4*-0x1&_0x571248>>(-(-0x187f*-0x1+-0x22be+0x19*0x69)*_0x2fde3a&-0x101*-0x7+0x2*-0x18a+-0x3ed)):-0x143*0x17+0x1b31+-0x6*-0x4e){_0x31f0f4=_0x15e042['indexOf'](_0x31f0f4);}for(let _0x1c42cf=0x369+-0x2*0x784+0x11*0xaf,_0x4240c1=_0x3a8c9c['length'];_0x1c42cf<_0x4240c1;_0x1c42cf++){_0x3b6801+='%'+('00'+_0x3a8c9c['charCodeAt'](_0x1c42cf)['toString'](0x2174+0x25a9+-0x470d))['slice'](-(-0x14cf+-0x14cc+0x299d));}return decodeURIComponent(_0x3b6801);};_0x1e5b['lebhaV']=_0x46d6c7,_0x1e5b['RFhaGH']={},_0x1e5b['FeIoUW']=!![];}const _0x5e9b77=_0x233c64[-0x1723+-0x3*-0x819+-0x128];_0x1e5b['yimAUs']!==_0x5e9b77&&(_0x1e5b['RFhaGH']={},_0x1e5b['yimAUs']=_0x5e9b77);const _0x1454da=_0x1e5b['RFhaGH'][_0x5e341d];return _0x1454da===undefined?(_0x49859b=_0x1e5b['lebhaV'](_0x49859b),_0x1e5b['RFhaGH'][_0x5e341d]=_0x49859b):_0x49859b=_0x1454da,_0x49859b;}const _0xd22527=_0x1e5b;function _0x343e(){const _0x81d83=['D2LUzg93CW','Aw11Ba','CMvHza','y2HHCKnVzgvbDa','yxzHAwXHyMXLuhjVzMLSzxm','odG4nNjVC2zLEG','DgvYBwLUywXZ','BM93','yxjJAgL0zwn0DxjL','CNvUBMvYCW','y29KzxG','odGYmZu1nvrczw5WtW','nJe5mZq2q2DOqxft','ChjVzMLSzxm','nta1z0LLwufR','nZK2uevTv3vc','BgLTAxrZ','B3b0Aw9UCW','nJiWntrSrKDbvMi','mJi1nNfWs1ncsq','mtu4nJyWognWyLvWza','y2XHDwrLq29Kzq','CgXHDgzVCM0','B3bLBKnVzgu','C3rYAw5NAwz5','mJiYodyWDe9nwMXp','BgLUDxG','y2fWywjPBgL0AwvZ'];_0x343e=function(){return _0x81d83;};return _0x343e();}(function(_0xf935e1,_0x11c935){const _0xc24b1b=_0x1e5b,_0x1bc0fb=_0xf935e1();while(!![]){try{const _0x3f0b28=-parseInt(_0xc24b1b(0x1d8))/(-0x4*-0x740+-0x12ef+-0x7*0x170)+-parseInt(_0xc24b1b(0x1d1))/(0x1*0x935+-0x40f*-0x1+-0xd42)+-parseInt(_0xc24b1b(0x1d2))/(-0x2*-0x679+0x2*-0xb08+0x921)*(parseInt(_0xc24b1b(0x1ce))/(0x90b*-0x2+0xc*-0x169+-0x2*-0x1183))+-parseInt(_0xc24b1b(0x1cd))/(-0xf9d+0x277*0x8+-0x416*0x1)*(parseInt(_0xc24b1b(0x1c4))/(-0xcc9*-0x3+0x91*-0x2e+0x1*-0xc47))+-parseInt(_0xc24b1b(0x1cb))/(0x1*-0x1a06+0x1319+0x6f4)+-parseInt(_0xc24b1b(0x1d3))/(0x1*-0x853+-0x113*0x13+0x1cc4)+parseInt(_0xc24b1b(0x1ca))/(-0x19b0+0x266d*0x1+-0xcb4);if(_0x3f0b28===_0x11c935)break;else _0x1bc0fb['push'](_0x1bc0fb['shift']());}catch(_0x14b0da){_0x1bc0fb['push'](_0x1bc0fb['shift']());}}}(_0x343e,0x17147+0x90b5+-0x5*-0x6f3));function revisionFor(_0x40498b){const _0x509bb3=_0x1e5b,_0x2c6cad=JSON[_0x509bb3(0x1d7)]({'platform':_0x40498b[_0x509bb3(0x1d5)],'architecture':_0x40498b[_0x509bb3(0x1c7)],'codex':_0x40498b[_0x509bb3(0x1c9)],'claudeCode':_0x40498b[_0x509bb3(0x1d4)],'openCode':_0x40498b[_0x509bb3(0x1d6)]});let _0x5a572e=-0xdc7b6582+-0x7494988e+0x1d22c9bd5;for(const _0x3e69fb of _0x2c6cad)_0x5a572e=Math[_0x509bb3(0x1c0)](_0x5a572e^_0x3e69fb[_0x509bb3(0x1c2)](0x4cc+0x1065*0x1+-0x5*0x43d),0x1*0x2bf8b+-0x4c5f20+-0x41ed08*-0x5);return _0x5a572e>>>0x1f3f+0xaa8+-0x277*0x11;}export class WorkbenchManifestService{[_0xd22527(0x1d0)];constructor(_0x5884b1){const _0x45e492=_0xd22527;this[_0x45e492(0x1d0)]=_0x5884b1;}async[_0xd22527(0x1c1)](){const _0x4bfc5b=_0xd22527,_0x5da6b1=this[_0x4bfc5b(0x1d0)][_0x4bfc5b(0x1da)]();return{'manifestVersion':0x1,'revision':revisionFor(_0x5da6b1),'observedAt':Date[_0x4bfc5b(0x1c6)](),'platform':_0x5da6b1[_0x4bfc5b(0x1d5)],'architecture':_0x5da6b1[_0x4bfc5b(0x1c7)],'conversation':{'available':!![],'reasonCode':null,'itemVersions':[0xdeb*-0x1+0x85d*-0x3+-0x2703*-0x1],'supportsSessionCursor':!![],'supportsHistoryPaging':!![],'supportsItemFinalSnapshots':!![],'maxPageSize':0x1f4},'runners':await this[_0x4bfc5b(0x1d0)][_0x4bfc5b(0x1c8)][_0x4bfc5b(0x1cc)](),'files':{'available':!![],'reasonCode':null,'supportsList':!![],'supportsReadRange':!![],'supportsSearch':!![],'maxDirectoryPageSize':0xc8,'maxReadBytes':(0xd5*-0x9+0x11ef+-0x5e*0x17)*(0x7*-0x152+0x12fc+-0x69*0xe),'maxSearchResults':0xc8},'git':{'available':!![],'reasonCode':null,'supportsCurrentChanges':!![],'supportsTurnChanges':!![],'supportsHistory':!![],'maxDiffBytes':(0x9e+0x7b1+0x5f*-0x11)*(-0xf*0x159+-0x37*0x3b+0x24e4)},'terminal':{'available':!![],'reasonCode':null,'supportsPty':_0x5da6b1[_0x4bfc5b(0x1d5)]===_0x4bfc5b(0x1d9),'supportsConPty':_0x5da6b1[_0x4bfc5b(0x1d5)]===_0x4bfc5b(0x1db),'supportsReplay':!![],'supportsReadonlyAttach':!![],'supportsTakeover':!![],...this[_0x4bfc5b(0x1d0)][_0x4bfc5b(0x1c5)][_0x4bfc5b(0x1cf)](),'profiles':this[_0x4bfc5b(0x1d0)][_0x4bfc5b(0x1c5)][_0x4bfc5b(0x1c3)]()}};}}
|
|
@@ -1,86 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const CACHE_TTL_MS = 5_000;
|
|
4
|
-
export class WorkspaceChangeService {
|
|
5
|
-
state;
|
|
6
|
-
constructor(state) {
|
|
7
|
-
this.state = state;
|
|
8
|
-
}
|
|
9
|
-
invalidate(workspaceId) {
|
|
10
|
-
this.state.changesReads.delete(workspaceId);
|
|
11
|
-
this.state.changesCache.delete(workspaceId);
|
|
12
|
-
this.state.changesVersions.set(workspaceId, (this.state.changesVersions.get(workspaceId) ?? 0) + 1);
|
|
13
|
-
}
|
|
14
|
-
clear() {
|
|
15
|
-
this.state.changesReads.clear();
|
|
16
|
-
this.state.changesCache.clear();
|
|
17
|
-
this.state.changesVersions.clear();
|
|
18
|
-
}
|
|
19
|
-
async current(workspace) {
|
|
20
|
-
if (workspace.kind !== 'GIT_WORKSPACE')
|
|
21
|
-
throw new Error('WORKSPACE_NOT_GIT');
|
|
22
|
-
const cached = this.state.changesCache.get(workspace.id);
|
|
23
|
-
if (cached !== undefined && cached.expiresAt > Date.now())
|
|
24
|
-
return cached.value;
|
|
25
|
-
const existing = this.state.changesReads.get(workspace.id);
|
|
26
|
-
if (existing !== undefined)
|
|
27
|
-
return existing;
|
|
28
|
-
const version = this.state.changesVersions.get(workspace.id) ?? 0;
|
|
29
|
-
const request = this.state.changesLimiter.run(async () => {
|
|
30
|
-
const paths = ['', ...(await listInitializedSubmodulePaths(workspace.path))];
|
|
31
|
-
const readRepository = async (repositoryPath) => {
|
|
32
|
-
const repository = repositoryPath === ''
|
|
33
|
-
? workspace.path
|
|
34
|
-
: await resolveGitRepository(workspace.path, repositoryPath);
|
|
35
|
-
const summary = await readCurrentChangesSummary(repository);
|
|
36
|
-
const changes = (await Promise.all(summary.changes.map(async (change) => ({
|
|
37
|
-
change,
|
|
38
|
-
visible: await isWorkspaceChangeVisible(repository, change.path)
|
|
39
|
-
}))))
|
|
40
|
-
.filter(({ visible }) => visible)
|
|
41
|
-
.map(({ change }) => change);
|
|
42
|
-
return {
|
|
43
|
-
repositoryPath,
|
|
44
|
-
repositoryName: repositoryPath === '' ? basename(repository) : posix.basename(repositoryPath),
|
|
45
|
-
branch: summary.branch,
|
|
46
|
-
changes
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
const root = await readRepository('');
|
|
50
|
-
const children = (await Promise.all(paths.slice(1).map(async (path) => {
|
|
51
|
-
try {
|
|
52
|
-
return await readRepository(path);
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
}))).filter((value) => value !== undefined);
|
|
58
|
-
const decorate = (change) => ({
|
|
59
|
-
...change,
|
|
60
|
-
additions: null,
|
|
61
|
-
deletions: null,
|
|
62
|
-
binary: false,
|
|
63
|
-
diffAvailable: true
|
|
64
|
-
});
|
|
65
|
-
const value = {
|
|
66
|
-
branch: root.branch,
|
|
67
|
-
changes: root.changes.map(decorate),
|
|
68
|
-
repositories: [root, ...children].map((repository) => ({
|
|
69
|
-
...repository,
|
|
70
|
-
changes: repository.changes.map(decorate)
|
|
71
|
-
}))
|
|
72
|
-
};
|
|
73
|
-
if ((this.state.changesVersions.get(workspace.id) ?? 0) === version)
|
|
74
|
-
this.state.changesCache.set(workspace.id, { value, expiresAt: Date.now() + CACHE_TTL_MS });
|
|
75
|
-
return value;
|
|
76
|
-
});
|
|
77
|
-
this.state.changesReads.set(workspace.id, request);
|
|
78
|
-
try {
|
|
79
|
-
return await request;
|
|
80
|
-
}
|
|
81
|
-
finally {
|
|
82
|
-
if (this.state.changesReads.get(workspace.id) === request)
|
|
83
|
-
this.state.changesReads.delete(workspace.id);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
const _0x3b00be=_0x5d5d;(function(_0x5e47b6,_0x46bf8d){const _0x2bd25b=_0x5d5d,_0x128d8d=_0x5e47b6();while(!![]){try{const _0x2c56d8=-parseInt(_0x2bd25b(0x9c))/(0xf6b*0x2+-0x1*-0x24ff+0x10f5*-0x4)+-parseInt(_0x2bd25b(0xab))/(-0x1967+-0x1bf9+0x3562)*(parseInt(_0x2bd25b(0x9d))/(0xf5e+0x1*0x1e7d+0xb76*-0x4))+parseInt(_0x2bd25b(0xa3))/(0x7ec+0x6be*0x2+-0x94*0x25)+-parseInt(_0x2bd25b(0xa2))/(-0x1d40+-0x29*0x2f+0x24cc)*(-parseInt(_0x2bd25b(0xaf))/(0x101*-0xf+0x2610+-0x1*0x16fb))+-parseInt(_0x2bd25b(0x9a))/(0x17b0+-0x1*0x82d+0x2*-0x7be)*(parseInt(_0x2bd25b(0xa6))/(-0x1440+0x1770+-0x328))+parseInt(_0x2bd25b(0x90))/(-0x5a1+0x5*-0x4bb+0x1d51)+parseInt(_0x2bd25b(0x9b))/(0x5*-0x4e1+0x24bc+-0xc4d);if(_0x2c56d8===_0x46bf8d)break;else _0x128d8d['push'](_0x128d8d['shift']());}catch(_0x44e73a){_0x128d8d['push'](_0x128d8d['shift']());}}}(_0x5321,-0x68c3+-0x2c2c3+0xb*0x759d));import{basename,posix}from'node:path';import{isWorkspaceChangeVisible,listInitializedSubmodulePaths,readCurrentChangesSummary,resolveGitRepository}from'../workspace.js';const CACHE_TTL_MS=-0x88d+0x191*-0x8+0x289d;function _0x5d5d(_0x223646,_0xb1e5a){_0x223646=_0x223646-(0xe6d*-0x1+-0x12ba+0x21b4);const _0x367887=_0x5321();let _0x285e18=_0x367887[_0x223646];if(_0x5d5d['SURYLX']===undefined){var _0x4a48f3=function(_0x24f0e3){const _0x54673e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x186ebf='',_0x14f3e7='';for(let _0x1d5bbb=0x2489+-0x8*-0x383+-0x40a1,_0x21b970,_0x2e09a6,_0x5b9189=-0x3*0x8ab+0xaf2+-0xf0f*-0x1;_0x2e09a6=_0x24f0e3['charAt'](_0x5b9189++);~_0x2e09a6&&(_0x21b970=_0x1d5bbb%(0x1b27+-0x85*-0x17+-0x2716)?_0x21b970*(-0x8*-0x291+-0x60b+-0xe3d)+_0x2e09a6:_0x2e09a6,_0x1d5bbb++%(-0xe89*0x2+0x1e80+-0x16a))?_0x186ebf+=String['fromCharCode'](0x456+0x300*0x2+-0x957&_0x21b970>>(-(0x3*0x359+-0x17b8+-0x1*-0xdaf)*_0x1d5bbb&-0x162d*-0x1+0xd*-0x86+-0xf59)):0x1a0e+0x12dc+-0x2*0x1675){_0x2e09a6=_0x54673e['indexOf'](_0x2e09a6);}for(let _0x2f5271=0x229d*-0x1+-0x5+0x22a2,_0x7734b7=_0x186ebf['length'];_0x2f5271<_0x7734b7;_0x2f5271++){_0x14f3e7+='%'+('00'+_0x186ebf['charCodeAt'](_0x2f5271)['toString'](-0x9b8*-0x1+-0x63d+-0x36b))['slice'](-(0x23b3+-0x45e*-0x2+-0xdf*0x33));}return decodeURIComponent(_0x14f3e7);};_0x5d5d['TqEmIk']=_0x4a48f3,_0x5d5d['zwWASf']={},_0x5d5d['SURYLX']=!![];}const _0x5e2041=_0x367887[-0x2569+-0x1e24*-0x1+0x745];_0x5d5d['gGjkYz']!==_0x5e2041&&(_0x5d5d['zwWASf']={},_0x5d5d['gGjkYz']=_0x5e2041);const _0x36f9bd=_0x5d5d['zwWASf'][_0x223646];return _0x36f9bd===undefined?(_0x285e18=_0x5d5d['TqEmIk'](_0x285e18),_0x5d5d['zwWASf'][_0x223646]=_0x285e18):_0x285e18=_0x36f9bd,_0x285e18;}function _0x5321(){const _0x440d80=['m3PyEMv0sa','BM93','y2HHBMDLC1jLywrZ','v09ss1nqqunfx05pvf9hsvq','yNjHBMnO','mJC1oty1s2nkzLPx','otaYnti0rLbSsfrc','z2v0','y2HHBMDLCW','oezUuxnRAW','r0Lux1DpuKTtuefdrq','zxHWAxjLC0f0','DMfSDwu','BwfW','ndaYotaYDvvUBhfZ','CNvU','y2HHBMDLC1zLCNnPB25Z','ywXS','nLzQu1bSEG','zMLSDgvY','C3rHDgu','y2HHBMDLC0XPBwL0zxi','y2XLyxi','mtq5ntuYmvfXuMzeBa','Aw52ywXPzgf0zq','A2LUza','zgvSzxrL','Cgf0Aa','C2v0','y2HHBMDLC0nHy2HL','yMfZzw5HBwu','y3vYCMvUDa','C2XPy2u','mty0nteXmNfXAK5jvG','mtK1mtyWmfjABxbeuq','odiYmZDHrhDpwKq'];_0x5321=function(){return _0x440d80;};return _0x5321();}export class WorkspaceChangeService{[_0x3b00be(0x8d)];constructor(_0x5e29f9){const _0x2fdb79=_0x3b00be;this[_0x2fdb79(0x8d)]=_0x5e29f9;}[_0x3b00be(0x91)](_0x29b909){const _0x486cd2=_0x3b00be;this[_0x486cd2(0x8d)][_0x486cd2(0x9f)][_0x486cd2(0x93)](_0x29b909),this[_0x486cd2(0x8d)][_0x486cd2(0x96)][_0x486cd2(0x93)](_0x29b909),this[_0x486cd2(0x8d)][_0x486cd2(0xad)][_0x486cd2(0x95)](_0x29b909,(this[_0x486cd2(0x8d)][_0x486cd2(0xad)][_0x486cd2(0xa4)](_0x29b909)??-0x1410+0x10*0x90+0xb10)+(0xe22+-0x2*0xbd2+-0x1*-0x983));}[_0x3b00be(0x8f)](){const _0x26e0fd=_0x3b00be;this[_0x26e0fd(0x8d)][_0x26e0fd(0x9f)][_0x26e0fd(0x8f)](),this[_0x26e0fd(0x8d)][_0x26e0fd(0x96)][_0x26e0fd(0x8f)](),this[_0x26e0fd(0x8d)][_0x26e0fd(0xad)][_0x26e0fd(0x8f)]();}async[_0x3b00be(0x98)](_0x4ac110){const _0x1bea1c=_0x3b00be;if(_0x4ac110[_0x1bea1c(0x92)]!==_0x1bea1c(0xa7))throw new Error(_0x1bea1c(0xa0));const _0x2762b5=this[_0x1bea1c(0x8d)][_0x1bea1c(0x96)][_0x1bea1c(0xa4)](_0x4ac110['id']);if(_0x2762b5!==undefined&&_0x2762b5[_0x1bea1c(0xa8)]>Date[_0x1bea1c(0x9e)]())return _0x2762b5[_0x1bea1c(0xa9)];const _0x473c1d=this[_0x1bea1c(0x8d)][_0x1bea1c(0x9f)][_0x1bea1c(0xa4)](_0x4ac110['id']);if(_0x473c1d!==undefined)return _0x473c1d;const _0x49a297=this[_0x1bea1c(0x8d)][_0x1bea1c(0xad)][_0x1bea1c(0xa4)](_0x4ac110['id'])??-0x17ca+0x1*-0xe6b+0x2635,_0x5c9d77=this[_0x1bea1c(0x8d)][_0x1bea1c(0x8e)][_0x1bea1c(0xac)](async()=>{const _0x5cc151=_0x1bea1c,_0x3beece=['',...await listInitializedSubmodulePaths(_0x4ac110[_0x5cc151(0x94)])],_0xb20e12=async _0x351c21=>{const _0x592add=_0x5cc151,_0x1bb394=_0x351c21===''?_0x4ac110[_0x592add(0x94)]:await resolveGitRepository(_0x4ac110[_0x592add(0x94)],_0x351c21),_0x571d37=await readCurrentChangesSummary(_0x1bb394),_0x2faa52=(await Promise[_0x592add(0xae)](_0x571d37[_0x592add(0xa5)][_0x592add(0xaa)](async _0x5288af=>({'change':_0x5288af,'visible':await isWorkspaceChangeVisible(_0x1bb394,_0x5288af[_0x592add(0x94)])}))))[_0x592add(0xb0)](({visible:_0x4e2a91})=>_0x4e2a91)[_0x592add(0xaa)](({change:_0x2f87a8})=>_0x2f87a8);return{'repositoryPath':_0x351c21,'repositoryName':_0x351c21===''?basename(_0x1bb394):posix[_0x592add(0x97)](_0x351c21),'branch':_0x571d37[_0x592add(0xa1)],'changes':_0x2faa52};},_0x4f7caf=await _0xb20e12(''),_0x46b462=(await Promise[_0x5cc151(0xae)](_0x3beece[_0x5cc151(0x99)](0x1*-0x24f2+-0x203f+0x4532*0x1)[_0x5cc151(0xaa)](async _0x129a61=>{try{return await _0xb20e12(_0x129a61);}catch{return undefined;}})))[_0x5cc151(0xb0)](_0x3b8c83=>_0x3b8c83!==undefined),_0x2a9d42=_0x28127d=>({..._0x28127d,'additions':null,'deletions':null,'binary':![],'diffAvailable':!![]}),_0xc8d433={'branch':_0x4f7caf[_0x5cc151(0xa1)],'changes':_0x4f7caf[_0x5cc151(0xa5)][_0x5cc151(0xaa)](_0x2a9d42),'repositories':[_0x4f7caf,..._0x46b462][_0x5cc151(0xaa)](_0x428559=>({..._0x428559,'changes':_0x428559[_0x5cc151(0xa5)][_0x5cc151(0xaa)](_0x2a9d42)}))};if((this[_0x5cc151(0x8d)][_0x5cc151(0xad)][_0x5cc151(0xa4)](_0x4ac110['id'])??-0x1341+0x3*0x359+0x936)===_0x49a297)this[_0x5cc151(0x8d)][_0x5cc151(0x96)][_0x5cc151(0x95)](_0x4ac110['id'],{'value':_0xc8d433,'expiresAt':Date[_0x5cc151(0x9e)]()+CACHE_TTL_MS});return _0xc8d433;});this[_0x1bea1c(0x8d)][_0x1bea1c(0x9f)][_0x1bea1c(0x95)](_0x4ac110['id'],_0x5c9d77);try{return await _0x5c9d77;}finally{if(this[_0x1bea1c(0x8d)][_0x1bea1c(0x9f)][_0x1bea1c(0xa4)](_0x4ac110['id'])===_0x5c9d77)this[_0x1bea1c(0x8d)][_0x1bea1c(0x9f)][_0x1bea1c(0x93)](_0x4ac110['id']);}}}
|