apt-mcp-agent-setup 3.3.3 → 3.4.0

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 (109) hide show
  1. package/bin/cli.js +1 -1
  2. package/bundle/NOTICES.md +0 -0
  3. package/bundle/core.enc +0 -0
  4. package/bundle/mcp-rules.enc +0 -0
  5. package/bundle/skills-aso.enc +0 -0
  6. package/bundle/skills-ba.enc +0 -0
  7. package/bundle/skills-base.enc +0 -0
  8. package/bundle/skills-be.enc +0 -0
  9. package/bundle/skills-design.enc +0 -0
  10. package/bundle/skills-fe.enc +0 -0
  11. package/bundle/skills-marketing.enc +0 -0
  12. package/bundle/skills-mobile.enc +0 -0
  13. package/bundle/skills-pm.enc +0 -0
  14. package/integrity-manifest.json +109 -104
  15. package/package.json +1 -1
  16. package/release-check.js +73 -70
  17. package/src/backends/browser-tools.js +1 -1
  18. package/src/backends/index-command.js +1 -1
  19. package/src/backends/index-store.js +1 -1
  20. package/src/backends/memory-2026.8.31.json +34 -34
  21. package/src/backends/profiles.js +1 -1
  22. package/src/core/admission-fence.js +1 -1
  23. package/src/core/aso-import.js +1 -1
  24. package/src/core/caller-context.js +1 -1
  25. package/src/core/catalog.js +1 -1
  26. package/src/core/claude-caller-authority.js +1 -1
  27. package/src/core/claude-invocation.js +1 -1
  28. package/src/core/claude-native.js +1 -1
  29. package/src/core/claude-plan.js +1 -0
  30. package/src/core/claude-worker-transcript.js +1 -1
  31. package/src/core/codex-host-metadata.js +1 -1
  32. package/src/core/codex-transcript-receipt.js +1 -1
  33. package/src/core/context-metrics.js +1 -1
  34. package/src/core/doctor.js +1 -1
  35. package/src/core/draining-completion.js +1 -1
  36. package/src/core/execution.js +1 -1
  37. package/src/core/hook-bridge.js +1 -1
  38. package/src/core/host-adapters.js +1 -1
  39. package/src/core/ipc-envelope.js +1 -1
  40. package/src/core/memory-store.js +1 -1
  41. package/src/core/model-inventory.js +1 -1
  42. package/src/core/model-routing.js +1 -1
  43. package/src/core/native-dispatch.js +1 -1
  44. package/src/core/node-version.js +1 -1
  45. package/src/core/npm-cli.js +1 -1
  46. package/src/core/owned-lock.js +1 -1
  47. package/src/core/presentations.js +1 -1
  48. package/src/core/quality-artifacts.js +1 -1
  49. package/src/core/quality.js +1 -1
  50. package/src/core/resource-transaction.js +1 -1
  51. package/src/core/run-compatibility.js +1 -1
  52. package/src/core/runtime-info.js +1 -1
  53. package/src/core/runtime-ownership.js +1 -1
  54. package/src/core/session.js +1 -1
  55. package/src/core/skill-companions.js +1 -1
  56. package/src/core/skill-names.js +1 -1
  57. package/src/core/tool-contracts.js +1 -1
  58. package/src/core/update-control.js +1 -1
  59. package/src/core/upgrade-runs.js +1 -0
  60. package/src/core/upgrade-stop.js +1 -0
  61. package/src/core/workspace-generation.js +1 -1
  62. package/src/core/workspace-path.js +1 -1
  63. package/src/installer/bounded-command.js +1 -1
  64. package/src/installer/candidate-preflight.js +1 -1
  65. package/src/installer/connection-activation.js +1 -1
  66. package/src/installer/connection-supervisor.js +1 -1
  67. package/src/installer/deployment-draft.js +1 -1
  68. package/src/installer/gateway-context.js +1 -1
  69. package/src/installer/gateway-migration.js +1 -1
  70. package/src/installer/gateway-runtime.js +1 -1
  71. package/src/installer/global-setup.js +1 -1
  72. package/src/installer/hook-context-client.js +1 -1
  73. package/src/installer/hook-dispatcher.js +51 -51
  74. package/src/installer/host-hooks.js +1 -1
  75. package/src/installer/managed-config.js +1 -1
  76. package/src/installer/platform-config.js +1 -1
  77. package/src/installer/prerequisites.js +1 -1
  78. package/src/installer/presentations.js +1 -1
  79. package/src/installer/project-setup.js +1 -1
  80. package/src/installer/registration-closure.js +1 -0
  81. package/src/installer/registration-plan.js +1 -1
  82. package/src/installer/registration-receipt.js +1 -1
  83. package/src/installer/registrations.js +1 -1
  84. package/src/installer/runtime-activation.js +1 -1
  85. package/src/installer/runtime-child.js +1 -1
  86. package/src/installer/runtime-launcher.js +50 -50
  87. package/src/installer/runtime-lock.js +1 -1
  88. package/src/installer/runtime-store.js +1 -1
  89. package/src/installer/runtime-supervisor.js +1 -1
  90. package/src/installer/setup-wizard.js +1 -1
  91. package/src/installer/update-addons.js +1 -1
  92. package/src/installer/update-executor.js +1 -1
  93. package/src/installer/workspace-registry.js +1 -1
  94. package/src/installer/workspace-transaction.js +1 -1
  95. package/src/installer/workspace-update.js +1 -1
  96. package/src/license/crypto.js +1 -1
  97. package/src/license/fingerprint.js +1 -1
  98. package/src/license/terms.js +1 -1
  99. package/src/license/verify.js +1 -1
  100. package/src/presets/index.js +1 -1
  101. package/src/proxy/backends.js +1 -1
  102. package/src/proxy/browser-sessions.js +1 -1
  103. package/src/proxy/core-tools.js +1 -1
  104. package/src/proxy/pipeline.js +1 -1
  105. package/src/proxy/public-catalog.js +1 -1
  106. package/src/proxy/router.config.js +1 -1
  107. package/src/proxy/router.js +1 -1
  108. package/src/proxy/server.js +1 -1
  109. package/src/proxy/workspace-gateway.js +1 -1
package/release-check.js CHANGED
@@ -6,8 +6,8 @@ const { spawn, spawnSync, execFileSync } = require('child_process');
6
6
  const assert = require('assert/strict');
7
7
 
8
8
  // Standalone: this file is also shipped as the signed dist prepublish gate.
9
- async function handshake(installed, workspace, fixture, realBackends = false, launcherArgs = [installed.launcherPath, '--path', workspace]) {
10
- const gateway = launcherArgs.includes('--gateway');
9
+ async function handshake(installed, workspace, fixture, realBackends = false, launcherArgs = [installed.launcherPath, '--path', workspace]) {
10
+ const gateway = launcherArgs.includes('--gateway');
11
11
  const child = spawn(process.execPath, ['--require', fixture, ...launcherArgs], {
12
12
  windowsHide: true,
13
13
  env: { ...process.env, APT_TEST_RELEASE: installed.path, APT_GATE_REAL: realBackends ? '1' : '0', MCP_SKIP_LICENSE_CHECK: '1', MCP_SKIP_INTEGRITY_CHECK: '0' },
@@ -17,14 +17,14 @@ async function handshake(installed, workspace, fixture, realBackends = false, la
17
17
  const checkBootstrappedWorkspace = message => {
18
18
  const content = message.result?.content?.find(item => item.type === 'text');
19
19
  assert.ok(content, 'Missing bootstrap result');
20
- const bootstrap = JSON.parse(content.text);
21
- const actual = bootstrap.workspace;
20
+ const bootstrap = JSON.parse(content.text);
21
+ const actual = bootstrap.workspace;
22
22
  const identity = value => process.platform === 'win32' ? path.resolve(value).toLowerCase() : path.resolve(value);
23
- assert.equal(identity(actual), identity(fs.realpathSync(workspace)), 'Launcher ignored its workspace binding');
24
- assert.equal(bootstrap.runtime.loadedVersion, installed.version, 'Bootstrap did not report the extracted runtime version');
25
- assert.equal(bootstrap.runtime.currentVersion, installed.version, 'Bootstrap read the wrong runtime root');
26
- assert.equal(bootstrap.runtime.currentDigest, installed.digest, 'Bootstrap read a different runtime pointer');
27
- assert.equal(bootstrap.runtime.bindingSource, 'explicit', 'Launcher lost the explicit --path binding');
23
+ assert.equal(identity(actual), identity(fs.realpathSync(workspace)), 'Launcher ignored its workspace binding');
24
+ assert.equal(bootstrap.runtime.loadedVersion, installed.version, 'Bootstrap did not report the extracted runtime version');
25
+ assert.equal(bootstrap.runtime.currentVersion, installed.version, 'Bootstrap read the wrong runtime root');
26
+ assert.equal(bootstrap.runtime.currentDigest, installed.digest, 'Bootstrap read a different runtime pointer');
27
+ assert.equal(bootstrap.runtime.bindingSource, 'explicit', 'Launcher lost the explicit --path binding');
28
28
  };
29
29
  const checks = realBackends ? [
30
30
  ['session_bootstrap', {sessionId:'package-gate'}, checkBootstrappedWorkspace],
@@ -44,8 +44,8 @@ async function handshake(installed, workspace, fixture, realBackends = false, la
44
44
  assert.equal(result.authorizesEdits, false);
45
45
  assert.notEqual(result.workflow, 'implement');
46
46
  }]);
47
- if (gateway) checks[0][1].workspacePath = workspace;
48
- let completed = 0;
47
+ if (gateway) checks[0][1].workspacePath = workspace;
48
+ let completed = 0;
49
49
  const send = message => child.stdin.write(JSON.stringify({ jsonrpc: '2.0', ...message }) + '\n');
50
50
  const next = () => {
51
51
  if (completed === checks.length) return child.stdin.end();
@@ -125,11 +125,11 @@ function verifyPackagedQualityGate(installed, temp) {
125
125
  fs.mkdirSync(folder, { recursive: true });
126
126
  fs.writeFileSync(path.join(folder, 'SKILL.md'), skill);
127
127
  }
128
- const manager = new PipelineManager(workspace);
129
- manager.env = { ...process.env }; delete manager.env.NODE_TEST_CONTEXT;
130
- const malformed = manager.start({ task: 'wrong-workspace', pipeline: 'readonly', workspace: workspace });
131
- assert.equal(malformed.code, 'INVALID_WORKSPACE');
132
- assert.equal(manager.pendingCreations('wrong-workspace').length, 0);
128
+ const manager = new PipelineManager(workspace);
129
+ manager.env = { ...process.env }; delete manager.env.NODE_TEST_CONTEXT;
130
+ const malformed = manager.start({ task: 'wrong-workspace', pipeline: 'readonly', workspace: workspace });
131
+ assert.equal(malformed.code, 'INVALID_WORKSPACE');
132
+ assert.equal(manager.pendingCreations('wrong-workspace').length, 0);
133
133
  const plan = { criteria: [{ id: 'adds', expectedOutcome: 'add(2,3) is 5', source: 'user-request', checkIds: ['add-test'] }],
134
134
  checks: [{ id: 'add-test', criterionIds: ['adds'], format: 'node-tap', testIds: ['adds'], required: true }],
135
135
  reviews: [{ id: 'technical', required: true }] };
@@ -144,7 +144,7 @@ function verifyPackagedQualityGate(installed, temp) {
144
144
  const lowered = start({ task: 'web-lowered', qualityPlan: plan, productImpact: false });
145
145
  assert.equal(lowered.code, 'ACCEPTANCE_ALREADY_ACTIVE');
146
146
  assert.equal(lowered.task, 'web-quality');
147
- assert.equal(manager.reset({ task: 'web-quality', runId: routed.runId, sessionId: 'package-quality', confirm: true }).success, true);
147
+ assert.equal(manager.reset({ task: 'web-quality', runId: routed.runId, sessionId: 'package-quality', confirm: true }).success, true);
148
148
  const started = start({ task: 'functional-quality', qualityPlan: plan });
149
149
  assert.equal(started.success, true, JSON.stringify(started));
150
150
  const base = { task: 'functional-quality', runId: started.runId, sessionId: 'package-quality' };
@@ -237,38 +237,41 @@ async function main() {
237
237
  }
238
238
  execFileSync('tar', ['-xzf', archive || path.join(temp, packed[0].filename), '-C', temp], { windowsHide: true });
239
239
  const pkg = path.join(temp, 'package');
240
- if (!publicKey) publicKey = require(path.join(pkg, 'src/license/verify.js')).PRODUCTION_PUBLIC_KEY;
241
- const installer = require(path.join(pkg, 'src/installer/runtime-store.js'));
242
- const hostConfig = require(path.join(pkg, 'src/installer/platform-config.js'));
240
+ // npm packages expose signed runtime files under dist/ while development
241
+ // copies keep the same files at the repository root.
242
+ const runtimePackage = fs.existsSync(path.join(pkg, 'integrity-manifest.json')) ? pkg : path.join(pkg, 'dist');
243
+ if (!publicKey) publicKey = require(path.join(runtimePackage, 'src/license/verify.js')).PRODUCTION_PUBLIC_KEY;
244
+ const installer = require(path.join(runtimePackage, 'src/installer/runtime-store.js'));
245
+ const hostConfig = require(path.join(runtimePackage, 'src/installer/platform-config.js'));
243
246
  const runtimeRoot = path.join(temp, 'runtime tiếng Việt');
244
- const installed = installer.installRuntime(pkg, { root: runtimeRoot, publicKey });
247
+ const installed = installer.installRuntime(runtimePackage, { root: runtimeRoot, publicKey });
245
248
  verifyPackagedQualityGate(installed, temp);
246
- const globalConfig = path.join(temp, 'antigravity-global.json');
247
- process.env.APT_REGISTRATION_RECEIPT_ROOT = path.join(temp, 'registration-receipts');
248
- process.env.APT_WORKSPACE_REGISTRY_ROOT = path.join(temp, 'workspace-registry');
249
- const workspaceA = path.join(temp, 'workspace A');
250
- const workspaceB = path.join(temp, 'workspace B');
251
- fs.mkdirSync(workspaceA); fs.mkdirSync(workspaceB);
252
- const activationWorkspace = path.join(temp, 'runtime activation');
253
- const activationRun = path.join(activationWorkspace, '.agents', 'pipelines', 'unfinished', 'runs', 'run', 'state.json');
254
- fs.mkdirSync(path.dirname(activationRun), { recursive: true });
255
- fs.writeFileSync(path.join(activationWorkspace, '.agents', 'manifest.json'), JSON.stringify({ version: installed.version }));
256
- fs.writeFileSync(activationRun, JSON.stringify({ task: 'unfinished', schemaVersion: 2, status: 'active' }));
257
- const canonicalActivation = fs.realpathSync(activationWorkspace);
258
- const activationKey = process.platform === 'win32' ? canonicalActivation.toLowerCase() : canonicalActivation;
259
- const activationPin = path.join(runtimeRoot, 'workspaces', `${crypto.createHash('sha256').update(activationKey).digest('hex')}.json`);
260
- fs.mkdirSync(path.dirname(activationPin), { recursive: true });
261
- fs.writeFileSync(activationPin, JSON.stringify({ version: '3.0.2', digest: 'b'.repeat(64) }));
262
- const activation = require(path.join(pkg, 'src/installer/runtime-activation.js')).inspectRuntimeActivation(activationWorkspace, { runtimeRoot });
263
- // An unfinished run alone does not pin the entire workspace to the old
264
- // engine. The old disk pin still requires a new serving connection.
265
- assert.equal(activation.activationStatus, 'pending-reconnect');
266
- assert.equal(activation.activeRuns, 1);
267
- assert.equal(JSON.parse(fs.readFileSync(activationPin)).version, '3.0.2');
268
- hostConfig.deployProjectConfig('claude', workspaceA, installed.launcherPath);
269
- assert.equal(fs.existsSync(path.join(workspaceA, '.mcp.json')), false, 'project setup must not add a second MCP entry');
270
- const { buildHookConfig } = require(path.join(pkg, 'src/core/host-adapters.js'));
271
- const claudeHooks = buildHookConfig('claude-code', path.join(pkg, 'src/core/hook-bridge.js'), workspaceA).config.hooks;
249
+ const globalConfig = path.join(temp, 'antigravity-global.json');
250
+ process.env.APT_REGISTRATION_RECEIPT_ROOT = path.join(temp, 'registration-receipts');
251
+ process.env.APT_WORKSPACE_REGISTRY_ROOT = path.join(temp, 'workspace-registry');
252
+ const workspaceA = path.join(temp, 'workspace A');
253
+ const workspaceB = path.join(temp, 'workspace B');
254
+ fs.mkdirSync(workspaceA); fs.mkdirSync(workspaceB);
255
+ const activationWorkspace = path.join(temp, 'runtime activation');
256
+ const activationRun = path.join(activationWorkspace, '.agents', 'pipelines', 'unfinished', 'runs', 'run', 'state.json');
257
+ fs.mkdirSync(path.dirname(activationRun), { recursive: true });
258
+ fs.writeFileSync(path.join(activationWorkspace, '.agents', 'manifest.json'), JSON.stringify({ version: installed.version }));
259
+ fs.writeFileSync(activationRun, JSON.stringify({ task: 'unfinished', schemaVersion: 2, status: 'active' }));
260
+ const canonicalActivation = fs.realpathSync(activationWorkspace);
261
+ const activationKey = process.platform === 'win32' ? canonicalActivation.toLowerCase() : canonicalActivation;
262
+ const activationPin = path.join(runtimeRoot, 'workspaces', `${crypto.createHash('sha256').update(activationKey).digest('hex')}.json`);
263
+ fs.mkdirSync(path.dirname(activationPin), { recursive: true });
264
+ fs.writeFileSync(activationPin, JSON.stringify({ version: '3.0.2', digest: 'b'.repeat(64) }));
265
+ const activation = require(path.join(runtimePackage, 'src/installer/runtime-activation.js')).inspectRuntimeActivation(activationWorkspace, { runtimeRoot });
266
+ // An unfinished run alone does not pin the entire workspace to the old
267
+ // engine. The old disk pin still requires a new serving connection.
268
+ assert.equal(activation.activationStatus, 'pending-reconnect');
269
+ assert.equal(activation.activeRuns, 1);
270
+ assert.equal(JSON.parse(fs.readFileSync(activationPin)).version, '3.0.2');
271
+ hostConfig.deployProjectConfig('claude', workspaceA, installed.launcherPath);
272
+ assert.equal(fs.existsSync(path.join(workspaceA, '.mcp.json')), false, 'project setup must not add a second MCP entry');
273
+ const { buildHookConfig } = require(path.join(runtimePackage, 'src/core/host-adapters.js'));
274
+ const claudeHooks = buildHookConfig('claude-code', path.join(runtimePackage, 'src/core/hook-bridge.js'), workspaceA).config.hooks;
272
275
  for (const event of ['SessionStart', 'PreToolUse']) {
273
276
  const handler = claudeHooks[event][0].hooks[0];
274
277
  assert.equal(handler.command, 'node');
@@ -279,7 +282,7 @@ async function main() {
279
282
  assert.equal(result.status, 0, `${event}: ${result.stderr}`);
280
283
  assert.ok(JSON.parse(result.stdout));
281
284
  }
282
- const { SessionRuntime } = require(path.join(pkg, 'src/core/session.js'));
285
+ const { SessionRuntime } = require(path.join(runtimePackage, 'src/core/session.js'));
283
286
  const claudeSession = new SessionRuntime(workspaceA).status({ sessionId: 'claude-package-gate' });
284
287
  assert.deepEqual(claudeSession.hookObservations['claude-code'].events.sort(), ['PreToolUse', 'SessionStart']);
285
288
  fs.writeFileSync(globalConfig, JSON.stringify({ mcpServers: { custom: { command: 'custom' } } }));
@@ -287,17 +290,17 @@ async function main() {
287
290
  hostConfig.deployProjectConfig('antigravity', workspacePath, installed.launcherPath);
288
291
  hostConfig.configureIDE('antigravity', installed.launcherPath, { configPathOverride: globalConfig, projectPath: workspacePath });
289
292
  }
290
- const globalServers = JSON.parse(fs.readFileSync(globalConfig, 'utf8')).mcpServers;
291
- assert.deepEqual(Object.keys(globalServers).sort(), ['apt-mcp-agent', 'custom']);
292
- assert.deepEqual(globalServers['apt-mcp-agent'].args, [installed.launcherPath.replace(/\\/g, '/'), '--gateway', '--host', 'antigravity']);
293
- const enrolled = new (require(path.join(pkg, 'src/installer/workspace-registry.js')).WorkspaceRegistry)().list();
294
- assert.equal(enrolled.length, 2);
293
+ const globalServers = JSON.parse(fs.readFileSync(globalConfig, 'utf8')).mcpServers;
294
+ assert.deepEqual(Object.keys(globalServers).sort(), ['apt-mcp-agent', 'custom']);
295
+ assert.deepEqual(globalServers['apt-mcp-agent'].args, [installed.launcherPath.replace(/\\/g, '/'), '--gateway', '--host', 'antigravity']);
296
+ const enrolled = new (require(path.join(runtimePackage, 'src/installer/workspace-registry.js')).WorkspaceRegistry)().list();
297
+ assert.equal(enrolled.length, 2);
295
298
  assert.equal(globalServers.custom.command, 'custom');
296
- const packageHook = require(path.join(pkg, 'src/core/hook-bridge.js'));
297
- const packageLicense = require(path.join(pkg, 'src/license/verify.js'));
298
- const savedPublicKey = packageLicense.PRODUCTION_PUBLIC_KEY;
299
- const savedGlobalConfig = hostConfig.IDE_REGISTRY.antigravity.globalConfig;
300
- hostConfig.IDE_REGISTRY.antigravity.globalConfig = () => globalConfig;
299
+ const packageHook = require(path.join(runtimePackage, 'src/core/hook-bridge.js'));
300
+ const packageLicense = require(path.join(runtimePackage, 'src/license/verify.js'));
301
+ const savedPublicKey = packageLicense.PRODUCTION_PUBLIC_KEY;
302
+ const savedGlobalConfig = hostConfig.IDE_REGISTRY.antigravity.globalConfig;
303
+ hostConfig.IDE_REGISTRY.antigravity.globalConfig = () => globalConfig;
301
304
  packageLicense.PRODUCTION_PUBLIC_KEY = publicKey;
302
305
  try {
303
306
  const signedCli = path.join(installed.path, 'bin/cli.js').replace(/\\/g, '/');
@@ -310,12 +313,12 @@ async function main() {
310
313
  assert.equal(packageHook.isWriteTool('run_command', { command: 'npm test 2>&1 > sample.js' }, workspaceA), true);
311
314
  assert.equal(packageHook.isWriteTool('run_command', { command: `node "${signedCli}" update --project .` }, workspaceA), true);
312
315
  assert.equal(packageHook.isWriteTool('run_command', { command: `node "${signedCli}" doctor --project .; echo unsafe` }, workspaceA), true);
313
- } finally {
314
- packageLicense.PRODUCTION_PUBLIC_KEY = savedPublicKey;
315
- hostConfig.IDE_REGISTRY.antigravity.globalConfig = savedGlobalConfig;
316
- }
317
- for (const workspacePath of [workspaceA, workspaceB])
318
- assert.equal(fs.existsSync(path.join(workspacePath, '.agents/mcp_config.json')), false);
316
+ } finally {
317
+ packageLicense.PRODUCTION_PUBLIC_KEY = savedPublicKey;
318
+ hostConfig.IDE_REGISTRY.antigravity.globalConfig = savedGlobalConfig;
319
+ }
320
+ for (const workspacePath of [workspaceA, workspaceB])
321
+ assert.equal(fs.existsSync(path.join(workspacePath, '.agents/mcp_config.json')), false);
319
322
  const metadataWorkspace = path.join(temp, 'codex metadata workspace');
320
323
  fs.mkdirSync(metadataWorkspace);
321
324
  const metadataScript = path.join(temp, 'codex-metadata-fixture.js');
@@ -364,16 +367,16 @@ async function main() {
364
367
  if (file === path.join(root, 'src/proxy/server.js')) result.ProxyServer.prototype.checkLatestVersion = async () => {};
365
368
  return result;
366
369
  };`);
367
- for (const [index, workspacePath] of [workspaceA, workspaceB].entries()) {
368
- await handshake(installed, workspacePath, fixture, false, globalServers['apt-mcp-agent'].args);
369
- }
370
- // Legacy direct launch compatibility is a package gate, not a Claude native grant test.
371
- await handshake(installed, workspaceA, fixture);
370
+ for (const [index, workspacePath] of [workspaceA, workspaceB].entries()) {
371
+ await handshake(installed, workspacePath, fixture, false, globalServers['apt-mcp-agent'].args);
372
+ }
373
+ // Legacy direct launch compatibility is a package gate, not a Claude native grant test.
374
+ await handshake(installed, workspaceA, fixture);
372
375
  await handshake(installed, workspace, fixture);
373
376
  const good = fs.readFileSync(installed.launcherPath);
374
377
  for (const old of ['_0x5e52();', "require('./server.js');"]) {
375
378
  fs.writeFileSync(installed.launcherPath, old);
376
- installer.installRuntime(pkg, { root: runtimeRoot, publicKey });
379
+ installer.installRuntime(runtimePackage, { root: runtimeRoot, publicKey });
377
380
  assert.ok(fs.readFileSync(installed.launcherPath).equals(good));
378
381
  const backup = path.join(runtimeRoot, 'launcher-backups', crypto.createHash('sha256').update(old).digest('hex') + '.js');
379
382
  assert.equal(fs.readFileSync(backup, 'utf8'), old);
@@ -1 +1 @@
1
- const _0x3967dc=_0x39df;(function(_0x1f8ac4,_0x1217a3){const _0x128d8c=_0x39df,_0x4702b0=_0x1f8ac4();while(!![]){try{const _0x4adf0b=-parseInt(_0x128d8c(0x15a))/0x1+-parseInt(_0x128d8c(0x159))/0x2+-parseInt(_0x128d8c(0x155))/0x3*(-parseInt(_0x128d8c(0x166))/0x4)+-parseInt(_0x128d8c(0x154))/0x5*(-parseInt(_0x128d8c(0x153))/0x6)+-parseInt(_0x128d8c(0x15c))/0x7*(-parseInt(_0x128d8c(0x162))/0x8)+parseInt(_0x128d8c(0x156))/0x9*(-parseInt(_0x128d8c(0x152))/0xa)+-parseInt(_0x128d8c(0x167))/0xb*(-parseInt(_0x128d8c(0x15b))/0xc);if(_0x4adf0b===_0x1217a3)break;else _0x4702b0['push'](_0x4702b0['shift']());}catch(_0x34ff5a){_0x4702b0['push'](_0x4702b0['shift']());}}}(_0x18ec,0xb9358));const {tools}=require(_0x3967dc(0x15e)),_0x5788e1={};_0x5788e1[_0x3967dc(0x165)]=_0x3967dc(0x15f),_0x5788e1[_0x3967dc(0x168)]=_0x3967dc(0x160);function _0x39df(_0xebd510,_0x5932ce){_0xebd510=_0xebd510-0x152;const _0x18ec62=_0x18ec();let _0x39df15=_0x18ec62[_0xebd510];if(_0x39df['fRRCoP']===undefined){var _0x365524=function(_0x1fc4d2){const _0x2a611f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5788e1='',_0x2e8acd='';for(let _0x113880=0x0,_0x45cac3,_0x1f3262,_0x2e35bd=0x0;_0x1f3262=_0x1fc4d2['charAt'](_0x2e35bd++);~_0x1f3262&&(_0x45cac3=_0x113880%0x4?_0x45cac3*0x40+_0x1f3262:_0x1f3262,_0x113880++%0x4)?_0x5788e1+=String['fromCharCode'](0xff&_0x45cac3>>(-0x2*_0x113880&0x6)):0x0){_0x1f3262=_0x2a611f['indexOf'](_0x1f3262);}for(let _0x470e16=0x0,_0x2fdfde=_0x5788e1['length'];_0x470e16<_0x2fdfde;_0x470e16++){_0x2e8acd+='%'+('00'+_0x5788e1['charCodeAt'](_0x470e16)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e8acd);};_0x39df['iHEqbc']=_0x365524,_0x39df['ahdAIO']={},_0x39df['fRRCoP']=!![];}const _0x4977e9=_0x18ec62[0x0],_0x4cc6d8=_0xebd510+_0x4977e9,_0x1b6439=_0x39df['ahdAIO'][_0x4cc6d8];return!_0x1b6439?(_0x39df15=_0x39df['iHEqbc'](_0x39df15),_0x39df['ahdAIO'][_0x4cc6d8]=_0x39df15):_0x39df15=_0x1b6439,_0x39df15;}const _0x2e8acd={};function _0x18ec(){const _0x4335c5=['Aw5WDxrty2HLBwe','ChjVCgvYDgLLCW','DhLWzq','mJCWmZG4D2HmEe9N','mJK3teP2sxzA','zgvZy3jPChrPB24','mta3mtaYotbLALLluhe','mte4mZHlBLfKBhq','mtvYCe5TtKS','mZnyEg5KEMO','owX3yMHstq','v29YA2vYigLKzw50Axr5oYbKzwzHDwX0CYb0BYbJB29YzgLUyxrVCI4','zxHWB3j0CW','otqXmdjNEMPHwhm','nti0nZK1zxLPEfLY','mZy5mta4EgvwBwPY','mtrnrxftuw8','BwfW','lI9ICM93C2vYlxrVB2XZltaUmc44mI5QC29U','C3rYAw5N','u3rHyMXLihrHC2SGAwrLBNrPDhK7ihjLDxnLigzVCIb0AgLZihrHC2SU','yxb0vgfZAW','mZi4nJa0oenNCgzvta'];_0x18ec=function(){return _0x4335c5;};return _0x18ec();}_0x2e8acd['type']=_0x3967dc(0x15f),_0x2e8acd['description']=_0x3967dc(0x157),module[_0x3967dc(0x158)]=tools[_0x3967dc(0x15d)](_0x113880=>({..._0x113880,'inputSchema':{..._0x113880['inputSchema'],'properties':{..._0x113880[_0x3967dc(0x163)][_0x3967dc(0x164)],'aptTask':_0x5788e1,'aptWorker':_0x2e8acd},'required':[..._0x113880['inputSchema']['required']||[],_0x3967dc(0x161)]}}));
1
+ const _0x1205b1=_0x8c8c;(function(_0x557442,_0x45fb39){const _0x5b9883=_0x8c8c,_0x534746=_0x557442();while(!![]){try{const _0x398a31=-parseInt(_0x5b9883(0x19c))/0x1+parseInt(_0x5b9883(0x1a1))/0x2*(parseInt(_0x5b9883(0x1a2))/0x3)+parseInt(_0x5b9883(0x1a5))/0x4+parseInt(_0x5b9883(0x19f))/0x5*(-parseInt(_0x5b9883(0x1a8))/0x6)+parseInt(_0x5b9883(0x1a3))/0x7*(-parseInt(_0x5b9883(0x197))/0x8)+-parseInt(_0x5b9883(0x1a9))/0x9+parseInt(_0x5b9883(0x1a4))/0xa*(parseInt(_0x5b9883(0x1a0))/0xb);if(_0x398a31===_0x45fb39)break;else _0x534746['push'](_0x534746['shift']());}catch(_0xfe5e35){_0x534746['push'](_0x534746['shift']());}}}(_0x4451,0xc3ef5));const {tools}=require(_0x1205b1(0x199)),_0x74e322={};function _0x4451(){const _0x3059e9=['ChjVCgvYDgLLCW','ntzqtvLdyNi','BwfW','lI9ICM93C2vYlxrVB2XZltaUmc44mI5QC29U','zgvZy3jPChrPB24','zxHWB3j0CW','mZK2mta4uLLQqxrT','C3rYAw5N','u3rHyMXLihrHC2SGAwrLBNrPDhK7ihjLDxnLigzVCIb0AgLZihrHC2SU','mtq1y01HBNL6','mJe0mteWmtztCxjfBwe','mNP3B01YyG','mtC3odC0nuvlqu1Twa','mJyWodK3yxnbuND5','mtbuwhz2Dui','ntC5mZKXnKXXr0zQzG','Aw5WDxrty2HLBwe','DhLWzq','mJiZmtK0rNnou2Dk','mtmWndu3mJvKrKnHEuC'];_0x4451=function(){return _0x3059e9;};return _0x4451();}function _0x8c8c(_0x1b946f,_0x60ec91){_0x1b946f=_0x1b946f-0x196;const _0x445155=_0x4451();let _0x8c8cbb=_0x445155[_0x1b946f];if(_0x8c8c['InGTWk']===undefined){var _0x2addd2=function(_0x25b3fc){const _0x4665d3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x74e322='',_0x433f0d='';for(let _0x4113cf=0x0,_0x4a7260,_0x23ec17,_0x414d03=0x0;_0x23ec17=_0x25b3fc['charAt'](_0x414d03++);~_0x23ec17&&(_0x4a7260=_0x4113cf%0x4?_0x4a7260*0x40+_0x23ec17:_0x23ec17,_0x4113cf++%0x4)?_0x74e322+=String['fromCharCode'](0xff&_0x4a7260>>(-0x2*_0x4113cf&0x6)):0x0){_0x23ec17=_0x4665d3['indexOf'](_0x23ec17);}for(let _0x5ab710=0x0,_0xfa4d85=_0x74e322['length'];_0x5ab710<_0xfa4d85;_0x5ab710++){_0x433f0d+='%'+('00'+_0x74e322['charCodeAt'](_0x5ab710)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x433f0d);};_0x8c8c['LSVMjk']=_0x2addd2,_0x8c8c['KEFxsC']={},_0x8c8c['InGTWk']=!![];}const _0x46c2e0=_0x445155[0x0],_0x1512b3=_0x1b946f+_0x46c2e0,_0x30c28d=_0x8c8c['KEFxsC'][_0x1512b3];return!_0x30c28d?(_0x8c8cbb=_0x8c8c['LSVMjk'](_0x8c8cbb),_0x8c8c['KEFxsC'][_0x1512b3]=_0x8c8cbb):_0x8c8cbb=_0x30c28d,_0x8c8cbb;}_0x74e322[_0x1205b1(0x1a7)]='string',_0x74e322[_0x1205b1(0x19a)]=_0x1205b1(0x19e);const _0x433f0d={};_0x433f0d[_0x1205b1(0x1a7)]=_0x1205b1(0x19d),_0x433f0d['description']='Worker\x20identity;\x20defaults\x20to\x20coordinator.',module[_0x1205b1(0x19b)]=tools[_0x1205b1(0x198)](_0x4113cf=>({..._0x4113cf,'inputSchema':{..._0x4113cf[_0x1205b1(0x1a6)],'properties':{..._0x4113cf[_0x1205b1(0x1a6)][_0x1205b1(0x196)],'aptTask':_0x74e322,'aptWorker':_0x433f0d},'required':[..._0x4113cf[_0x1205b1(0x1a6)]['required']||[],'aptTask']}}));
@@ -1 +1 @@
1
- const _0x3e0539=_0x2000;(function(_0x1c4adf,_0x2a8209){const _0x49f354=_0x2000,_0x967f02=_0x1c4adf();while(!![]){try{const _0x1e5252=parseInt(_0x49f354(0x1a1))/0x1+parseInt(_0x49f354(0x1a8))/0x2+-parseInt(_0x49f354(0x19a))/0x3*(parseInt(_0x49f354(0x1ae))/0x4)+parseInt(_0x49f354(0x1ad))/0x5+parseInt(_0x49f354(0x1a3))/0x6+parseInt(_0x49f354(0x194))/0x7+-parseInt(_0x49f354(0x18d))/0x8;if(_0x1e5252===_0x2a8209)break;else _0x967f02['push'](_0x967f02['shift']());}catch(_0x24fd6e){_0x967f02['push'](_0x967f02['shift']());}}}(_0x5c5f,0x26061));const {execFile}=require(_0x3e0539(0x1ac));function _0x5c5f(){const _0x58a12f=['y2f1C2u','mZa0nJC0rgjpEw1M','su5ervHFqLvjterFrKfjteve','su5ervHFu0LhtKfm','C3rKB3v0','y2HPBgrFChjVy2vZCW','mtq5odaZnuPwBLDNzq','mtu4ofLHr1vHra','Dg9ju09tDhjPBMC','AxnjBNrLz2vY','su5ervHFqLvtwq','mJaWmZK1mNLjrfvryq','y29Kzq','zMLSDgvY','CNvUsw5KzxHdB21Tyw5K','BwvZC2fNzq','AM9PBG','BM93','ntK4nZe3rLzvrNHf','su5ervHFq09suLvqva','C3rKzxjY','Aw5KzxHuAw1LB3v0','zxHWB3j0CW','A2LSBgvK','mtKWnvnmrvPcsG','zgLHz25VC3rPyW','yxnZAwDU','C2XPy2u','C2LNBMfS','DxrMoa','su5ervHFveLnru9vva','ndyXmdHpEhLquKy','DgLTzw91Da','ndq4nta2B0Huzef5','AxntywzLsw50zwDLCG','qvbux0Lorevyx1rjtuvpvvrFtvmGBxvZDcbIzsbHihbVC2L0AxzLigLUDgvNzxiGyMvSB3CGmJe0nZq4mZy0oa','DgvZDa'];_0x5c5f=function(){return _0x58a12f;};return _0x5c5f();}function indexTimeout(_0x45d7b6=process.env){const _0x823534=_0x3e0539,_0x4afbb1=_0x45d7b6['APT_INDEX_TIMEOUT_MS'];if(_0x4afbb1===undefined||_0x4afbb1==='')return 0x1e*0x3c*0x3e8;const _0x186a70=Number(_0x4afbb1);if(!Number[_0x823534(0x1a4)](_0x186a70)||_0x186a70<0x1||_0x186a70>0x7fffffff)throw new Error(_0x823534(0x1a5));return _0x186a70;}function runIndexCommand(_0x38b468,_0x16ba7f,_0x2b284e={}){const _0x2477f7=_0x3e0539,_0x462dcd=Date['now'](),_0x2460f0=_0x2b284e[_0x2477f7(0x1a2)]??indexTimeout();return new Promise((_0x22464b,_0xd625f1)=>{const _0x119d35=_0x2477f7,_0x49667c={'windowsHide':!![],'encoding':_0x119d35(0x19f),'maxBuffer':0x4*0x400*0x400,..._0x2b284e};_0x49667c['timeout']=_0x2460f0,execFile(_0x38b468,_0x16ba7f,_0x49667c,(_0x20b0d6,_0x495a21,_0x2d7447)=>{const _0x4d0d96=_0x119d35,_0x20cc56=Date[_0x4d0d96(0x193)](),_0xac26d0=Boolean(_0x20b0d6?.[_0x4d0d96(0x199)]&&_0x20cc56-_0x462dcd>=_0x2460f0),_0x5aa0dc={'executable':_0x38b468,'args':_0x16ba7f,'startedAt':new Date(_0x462dcd)['toISOString'](),'endedAt':new Date(_0x20cc56)[_0x4d0d96(0x18a)](),'durationMs':_0x20cc56-_0x462dcd,'exitCode':_0x20b0d6?Number[_0x4d0d96(0x18b)](_0x20b0d6['code'])?_0x20b0d6[_0x4d0d96(0x18e)]:null:0x0,'signal':_0x20b0d6?.[_0x4d0d96(0x19e)]||null,'timedOut':_0xac26d0,'stdout':String(_0x495a21||'')[_0x4d0d96(0x19d)](-0x3e80),'stderr':String(_0x2d7447||'')[_0x4d0d96(0x19d)](-0x3e80)},_0x171afa={};_0x171afa[_0x4d0d96(0x1ab)]=_0x495a21,_0x171afa[_0x4d0d96(0x196)]=_0x2d7447,_0x171afa[_0x4d0d96(0x19b)]=_0x5aa0dc;if(!_0x20b0d6)return _0x22464b(_0x171afa);const _0x1614bb=[_0x2d7447,_0x495a21,_0x20b0d6[_0x4d0d96(0x191)]][_0x4d0d96(0x18f)](Boolean)[_0x4d0d96(0x192)]('\x0a'),_0x40ee45=_0xac26d0?_0x4d0d96(0x1a0):/database disk image is malformed|file is not a database|SQLITE_CORRUPT|SQLITE_NOTADB/i['test'](_0x1614bb)?_0x4d0d96(0x195):/database is locked|SQLITE_BUSY|locked by another process/i[_0x4d0d96(0x1a6)](_0x1614bb)?_0x4d0d96(0x18c):_0x20b0d6[_0x4d0d96(0x19e)]?_0x4d0d96(0x1aa):_0x4d0d96(0x1a9),_0x4441d5={};_0x4441d5['code']=_0x40ee45,_0x4441d5[_0x4d0d96(0x19b)]=_0x5aa0dc,_0x4441d5[_0x4d0d96(0x1a7)]=_0x20b0d6,_0xd625f1(Object[_0x4d0d96(0x19c)](new Error(_0x1614bb['slice'](-0x3e80)),_0x4441d5));});});}function _0x2000(_0x385472,_0x276957){_0x385472=_0x385472-0x18a;const _0x5c5fa7=_0x5c5f();let _0x2000e3=_0x5c5fa7[_0x385472];if(_0x2000['baiIoK']===undefined){var _0x4e775d=function(_0x2b601f){const _0x514609='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e1504='',_0x35013d='';for(let _0x222ca3=0x0,_0x2ca6c4,_0x45d7b6,_0x4afbb1=0x0;_0x45d7b6=_0x2b601f['charAt'](_0x4afbb1++);~_0x45d7b6&&(_0x2ca6c4=_0x222ca3%0x4?_0x2ca6c4*0x40+_0x45d7b6:_0x45d7b6,_0x222ca3++%0x4)?_0x4e1504+=String['fromCharCode'](0xff&_0x2ca6c4>>(-0x2*_0x222ca3&0x6)):0x0){_0x45d7b6=_0x514609['indexOf'](_0x45d7b6);}for(let _0x186a70=0x0,_0x38b468=_0x4e1504['length'];_0x186a70<_0x38b468;_0x186a70++){_0x35013d+='%'+('00'+_0x4e1504['charCodeAt'](_0x186a70)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x35013d);};_0x2000['TGbzRK']=_0x4e775d,_0x2000['HfeoOY']={},_0x2000['baiIoK']=!![];}const _0x5f532b=_0x5c5fa7[0x0],_0x41cee9=_0x385472+_0x5f532b,_0x4998ea=_0x2000['HfeoOY'][_0x41cee9];return!_0x4998ea?(_0x2000e3=_0x2000['TGbzRK'](_0x2000e3),_0x2000['HfeoOY'][_0x41cee9]=_0x2000e3):_0x2000e3=_0x4998ea,_0x2000e3;}const _0x2ca6c4={};_0x2ca6c4[_0x3e0539(0x197)]=indexTimeout,_0x2ca6c4[_0x3e0539(0x190)]=runIndexCommand,module[_0x3e0539(0x198)]=_0x2ca6c4;
1
+ const _0xaa0c84=_0x59e6;(function(_0x4bef93,_0x2d4043){const _0x3ce3a4=_0x59e6,_0x14061f=_0x4bef93();while(!![]){try{const _0x284271=parseInt(_0x3ce3a4(0xc0))/0x1+parseInt(_0x3ce3a4(0xb9))/0x2*(-parseInt(_0x3ce3a4(0xb3))/0x3)+parseInt(_0x3ce3a4(0xc5))/0x4*(parseInt(_0x3ce3a4(0xad))/0x5)+parseInt(_0x3ce3a4(0xa9))/0x6*(parseInt(_0x3ce3a4(0xa4))/0x7)+-parseInt(_0x3ce3a4(0xba))/0x8+-parseInt(_0x3ce3a4(0xc4))/0x9+-parseInt(_0x3ce3a4(0xc1))/0xa;if(_0x284271===_0x2d4043)break;else _0x14061f['push'](_0x14061f['shift']());}catch(_0x57e679){_0x14061f['push'](_0x14061f['shift']());}}}(_0x15af,0x33a66));const {execFile}=require(_0xaa0c84(0xaa));function _0x59e6(_0xb30e18,_0x28511d){_0xb30e18=_0xb30e18-0xa2;const _0x15afde=_0x15af();let _0x59e674=_0x15afde[_0xb30e18];if(_0x59e6['OfeWMf']===undefined){var _0x7f9dd4=function(_0x3dce23){const _0x14c354='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d4598='',_0x55306e='';for(let _0x253663=0x0,_0x22a139,_0x32188a,_0x43bdc6=0x0;_0x32188a=_0x3dce23['charAt'](_0x43bdc6++);~_0x32188a&&(_0x22a139=_0x253663%0x4?_0x22a139*0x40+_0x32188a:_0x32188a,_0x253663++%0x4)?_0x2d4598+=String['fromCharCode'](0xff&_0x22a139>>(-0x2*_0x253663&0x6)):0x0){_0x32188a=_0x14c354['indexOf'](_0x32188a);}for(let _0x29a22f=0x0,_0x398fbc=_0x2d4598['length'];_0x29a22f<_0x398fbc;_0x29a22f++){_0x55306e+='%'+('00'+_0x2d4598['charCodeAt'](_0x29a22f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x55306e);};_0x59e6['oumOfl']=_0x7f9dd4,_0x59e6['TPElic']={},_0x59e6['OfeWMf']=!![];}const _0x5a5726=_0x15afde[0x0],_0x22cd23=_0xb30e18+_0x5a5726,_0x1651f7=_0x59e6['TPElic'][_0x22cd23];return!_0x1651f7?(_0x59e674=_0x59e6['oumOfl'](_0x59e674),_0x59e6['TPElic'][_0x22cd23]=_0x59e674):_0x59e674=_0x1651f7,_0x59e674;}function indexTimeout(_0x32188a=process.env){const _0x4bf2fb=_0xaa0c84,_0x43bdc6=_0x32188a[_0x4bf2fb(0xbf)];if(_0x43bdc6===undefined||_0x43bdc6==='')return 0x1e*0x3c*0x3e8;const _0x29a22f=Number(_0x43bdc6);if(!Number[_0x4bf2fb(0xbd)](_0x29a22f)||_0x29a22f<0x1||_0x29a22f>0x7fffffff)throw new Error('APT_INDEX_TIMEOUT_MS\x20must\x20be\x20a\x20positive\x20integer\x20below\x202147483648');return _0x29a22f;}function runIndexCommand(_0x398fbc,_0x6a43f3,_0x1dc742={}){const _0x54c39a=_0xaa0c84,_0x49328a=Date['now'](),_0x8c2e02=_0x1dc742[_0x54c39a(0xac)]??indexTimeout();return new Promise((_0xd0cd83,_0x597ba4)=>{const _0x15ff48=_0x54c39a,_0x4c14e1={'windowsHide':!![],'encoding':_0x15ff48(0xb4),'maxBuffer':0x4*0x400*0x400,..._0x1dc742};_0x4c14e1[_0x15ff48(0xac)]=_0x8c2e02,execFile(_0x398fbc,_0x6a43f3,_0x4c14e1,(_0x162850,_0x46c263,_0x589f69)=>{const _0x1f193d=_0x15ff48,_0x270ba3=Date['now'](),_0x2dd239=Boolean(_0x162850?.[_0x1f193d(0xb6)]&&_0x270ba3-_0x49328a>=_0x8c2e02),_0x2b9d56={'executable':_0x398fbc,'args':_0x6a43f3,'startedAt':new Date(_0x49328a)[_0x1f193d(0xae)](),'endedAt':new Date(_0x270ba3)['toISOString'](),'durationMs':_0x270ba3-_0x49328a,'exitCode':_0x162850?Number['isInteger'](_0x162850[_0x1f193d(0xaf)])?_0x162850['code']:null:0x0,'signal':_0x162850?.[_0x1f193d(0xab)]||null,'timedOut':_0x2dd239,'stdout':String(_0x46c263||'')['slice'](-0x3e80),'stderr':String(_0x589f69||'')[_0x1f193d(0xa6)](-0x3e80)},_0x2ae13e={};_0x2ae13e[_0x1f193d(0xa5)]=_0x46c263,_0x2ae13e[_0x1f193d(0xa3)]=_0x589f69,_0x2ae13e[_0x1f193d(0xbe)]=_0x2b9d56;if(!_0x162850)return _0xd0cd83(_0x2ae13e);const _0x139bdd=[_0x589f69,_0x46c263,_0x162850[_0x1f193d(0xc2)]][_0x1f193d(0xb7)](Boolean)['join']('\x0a'),_0x1d73c1=_0x2dd239?_0x1f193d(0xb0):/database disk image is malformed|file is not a database|SQLITE_CORRUPT|SQLITE_NOTADB/i[_0x1f193d(0xb2)](_0x139bdd)?_0x1f193d(0xbb):/database is locked|SQLITE_BUSY|locked by another process/i['test'](_0x139bdd)?_0x1f193d(0xb5):_0x162850[_0x1f193d(0xab)]?_0x1f193d(0xbc):_0x1f193d(0xb1),_0x1517c3={};_0x1517c3[_0x1f193d(0xaf)]=_0x1d73c1,_0x1517c3[_0x1f193d(0xbe)]=_0x2b9d56,_0x1517c3[_0x1f193d(0xa2)]=_0x162850,_0x597ba4(Object[_0x1f193d(0xa7)](new Error(_0x139bdd[_0x1f193d(0xa6)](-0x3e80)),_0x1517c3));});});}const _0x22a139={};_0x22a139[_0xaa0c84(0xc3)]=indexTimeout,_0x22a139[_0xaa0c84(0xa8)]=runIndexCommand,module[_0xaa0c84(0xb8)]=_0x22a139;function _0x15af(){const _0x404c58=['nJK0mJm5rgrMreLk','DxrMoa','su5ervHFqLvtwq','A2LSBgvK','zMLSDgvY','zxHWB3j0CW','mM9ey3DxBW','mtu4mZKYAvLvuvbd','su5ervHFq09suLvqva','su5ervHFu0LhtKfm','AxntywzLsw50zwDLCG','zgLHz25VC3rPyW','qvbux0Lorevyx1rjtuvpvvrFtvm','oduXodHduvbfthe','ndaZmtqWCePqD1Hc','BwvZC2fNzq','Aw5KzxHuAw1LB3v0','nJK3ndKXC3rMshHq','mJbIAKP6r0C','y2f1C2u','C3rKzxjY','mZK5odeYB1zpv25S','C3rKB3v0','C2XPy2u','yxnZAwDU','CNvUsw5KzxHdB21Tyw5K','mZbeyMjAs3a','y2HPBgrFChjVy2vZCW','C2LNBMfS','DgLTzw91Da','mJa5ode1BefbD3nK','Dg9ju09tDhjPBMC','y29Kzq','su5ervHFveLnru9vva','su5ervHFqLvjterFrKfjteve','DgvZDa'];_0x15af=function(){return _0x404c58;};return _0x15af();}
@@ -1 +1 @@
1
- const _0x5da13b=_0x1a5f;(function(_0x509925,_0x4d8cbb){const _0x42a18b=_0x1a5f,_0x25fa47=_0x509925();while(!![]){try{const _0x683a90=parseInt(_0x42a18b(0x257))/0x1*(-parseInt(_0x42a18b(0x201))/0x2)+-parseInt(_0x42a18b(0x25a))/0x3+parseInt(_0x42a18b(0x2a5))/0x4+-parseInt(_0x42a18b(0x290))/0x5*(parseInt(_0x42a18b(0x299))/0x6)+parseInt(_0x42a18b(0x249))/0x7*(-parseInt(_0x42a18b(0x2ba))/0x8)+parseInt(_0x42a18b(0x225))/0x9*(parseInt(_0x42a18b(0x242))/0xa)+parseInt(_0x42a18b(0x20a))/0xb*(parseInt(_0x42a18b(0x206))/0xc);if(_0x683a90===_0x4d8cbb)break;else _0x25fa47['push'](_0x25fa47['shift']());}catch(_0x739588){_0x25fa47['push'](_0x25fa47['shift']());}}}(_0x4ba4,0xf1be1));const fs=require('fs'),path=require(_0x5da13b(0x28d)),crypto=require(_0x5da13b(0x227)),cp=require('child_process'),cacheHost=require('os')[_0x5da13b(0x294)]()+':'+process['platform']+':'+process['arch'],{runIndexCommand,indexTimeout}=require(_0x5da13b(0x275)),{identity,sameWorkspace,containsWorkspace}=require(_0x5da13b(0x217)),{acquireRuntimeLock}=require(_0x5da13b(0x2a9)),run=runIndexCommand,hash=_0x3c560e=>crypto[_0x5da13b(0x287)](_0x5da13b(0x218))[_0x5da13b(0x27a)](_0x3c560e)[_0x5da13b(0x253)](_0x5da13b(0x244)),bridge=path[_0x5da13b(0x203)](__dirname,_0x5da13b(0x24f)),fail=(_0x2ee511,_0x5bfd3d)=>Object[_0x5da13b(0x1f1)](new Error(_0x5bfd3d),{'code':_0x2ee511}),spelling=_0x344edc=>process['platform']===_0x5da13b(0x263)?path[_0x5da13b(0x25e)](_0x344edc)[_0x5da13b(0x212)]():path[_0x5da13b(0x25e)](_0x344edc);function _0x1a5f(_0x33e4da,_0x54b7e9){_0x33e4da=_0x33e4da-0x1ee;const _0x4ba4cb=_0x4ba4();let _0x1a5fbd=_0x4ba4cb[_0x33e4da];if(_0x1a5f['zoyRKV']===undefined){var _0x4e55c7=function(_0x1159b7){const _0x1a90f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51758d='',_0x12eb74='';for(let _0x5c666c=0x0,_0x329531,_0x4f69bf,_0x2f4da3=0x0;_0x4f69bf=_0x1159b7['charAt'](_0x2f4da3++);~_0x4f69bf&&(_0x329531=_0x5c666c%0x4?_0x329531*0x40+_0x4f69bf:_0x4f69bf,_0x5c666c++%0x4)?_0x51758d+=String['fromCharCode'](0xff&_0x329531>>(-0x2*_0x5c666c&0x6)):0x0){_0x4f69bf=_0x1a90f9['indexOf'](_0x4f69bf);}for(let _0x4315cb=0x0,_0x3ca3a4=_0x51758d['length'];_0x4315cb<_0x3ca3a4;_0x4315cb++){_0x12eb74+='%'+('00'+_0x51758d['charCodeAt'](_0x4315cb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x12eb74);};_0x1a5f['waswyk']=_0x4e55c7,_0x1a5f['hmbwOX']={},_0x1a5f['zoyRKV']=!![];}const _0x56870d=_0x4ba4cb[0x0],_0x9b7ce6=_0x33e4da+_0x56870d,_0x2aab6b=_0x1a5f['hmbwOX'][_0x9b7ce6];return!_0x2aab6b?(_0x1a5fbd=_0x1a5f['waswyk'](_0x1a5fbd),_0x1a5f['hmbwOX'][_0x9b7ce6]=_0x1a5fbd):_0x1a5fbd=_0x2aab6b,_0x1a5fbd;}function rejectLink(_0x2a064b){const _0x330ba7=_0x5da13b;try{if(fs[_0x330ba7(0x2ce)](_0x2a064b)['isSymbolicLink']())throw fail(_0x330ba7(0x24e),_0x330ba7(0x1fa));}catch(_0x44b27d){if(_0x44b27d[_0x330ba7(0x234)]!==_0x330ba7(0x226))throw _0x44b27d;}}function safeDirectory(_0x32d36e,_0x24fb5d){const _0x6b2dcb=_0x5da13b;if(path[_0x6b2dcb(0x1f6)](_0x24fb5d)||_0x24fb5d[_0x6b2dcb(0x21c)](/[\\/]/)[_0x6b2dcb(0x27f)]('..'))throw fail('UNSAFE_INDEX',_0x6b2dcb(0x280));let _0x52388a=_0x32d36e;for(const _0x43c8a6 of _0x24fb5d[_0x6b2dcb(0x21c)](/[\\/]/)[_0x6b2dcb(0x26b)](Boolean)){_0x52388a=path[_0x6b2dcb(0x203)](_0x52388a,_0x43c8a6),rejectLink(_0x52388a);const _0x2e00d4={};_0x2e00d4['recursive']=!![],fs[_0x6b2dcb(0x26c)](_0x52388a,_0x2e00d4);if(!containsWorkspace(_0x32d36e,_0x52388a))throw fail('UNSAFE_INDEX',_0x6b2dcb(0x280));}return _0x52388a;}function atomic(_0xdce2f4,_0x257f01){const _0x1877c7=_0x5da13b;rejectLink(_0xdce2f4);const _0x4e0cae=_0xdce2f4+'.'+crypto['randomUUID']()+_0x1877c7(0x22d);try{const _0x1b3665=fs[_0x1877c7(0x20e)](_0x4e0cae,'wx');try{fs['writeFileSync'](_0x1b3665,JSON[_0x1877c7(0x28f)](_0x257f01)),fs[_0x1877c7(0x282)](_0x1b3665);}finally{fs[_0x1877c7(0x23d)](_0x1b3665);}fs['renameSync'](_0x4e0cae,_0xdce2f4);}finally{const _0x435195={};_0x435195[_0x1877c7(0x233)]=!![],fs[_0x1877c7(0x214)](_0x4e0cae,_0x435195);}}function read(_0x41fd29){const _0x1443f1=_0x5da13b;try{return rejectLink(_0x41fd29),JSON[_0x1443f1(0x2c6)](fs[_0x1443f1(0x237)](_0x41fd29,_0x1443f1(0x26a)));}catch(_0x490ca1){if(_0x490ca1[_0x1443f1(0x234)]===_0x1443f1(0x226))return null;throw _0x490ca1;}}function classify(_0x50bf4d){const _0x521f15=_0x5da13b;if(/database disk image is malformed|file is not a database|SQLITE_CORRUPT|SQLITE_NOTADB/i[_0x521f15(0x2b3)](_0x50bf4d))return _0x521f15(0x271);if(/not indexed|no index|not initialized|no codegraph project|index (?:missing|invalid|corrupt)/i[_0x521f15(0x2b3)](_0x50bf4d))return'INDEX_MISSING';return'BACKEND_QUERY_FAILED';}function responseError(_0x4e2f65){const _0x286a04=_0x5da13b,_0x2717f9=_0x4e2f65?.[_0x286a04(0x28c)],_0x590bb4=_0x2717f9?.[_0x286a04(0x2bf)],_0x8b2421=_0x2717f9?.[_0x286a04(0x224)]?.['filter'](_0x52a130=>_0x52a130[_0x286a04(0x2c4)]===_0x286a04(0x273))[_0x286a04(0x278)](_0x44f60c=>_0x44f60c[_0x286a04(0x273)])[_0x286a04(0x203)]('\x0a'),_0x5ed1ef=_0x4e2f65?.[_0x286a04(0x239)]?.[_0x286a04(0x2a2)]||typeof _0x4e2f65?.['error']===_0x286a04(0x2b8)&&_0x4e2f65[_0x286a04(0x239)]||_0x590bb4?.[_0x286a04(0x239)]||_0x8b2421||_0x286a04(0x1fe);return fail(classify(_0x5ed1ef),String(_0x5ed1ef)['slice'](0x0,0x640));}function snapshot(_0x128d3b){const _0x47bf6e=_0x5da13b,_0x29d2b2=[],_0x5b527d=new Set([_0x47bf6e(0x265),_0x47bf6e(0x200),_0x47bf6e(0x205),_0x47bf6e(0x255),_0x47bf6e(0x29e),'.code-review-graph',_0x47bf6e(0x258),_0x47bf6e(0x20c),'venv','__pycache__','dist',_0x47bf6e(0x2b0)]),_0x469539=_0x5b4138=>{const _0x5bb243=_0x47bf6e,_0x38f249={};_0x38f249['withFileTypes']=!![];for(const _0x170b84 of fs[_0x5bb243(0x229)](_0x5b4138,_0x38f249)[_0x5bb243(0x284)]((_0x3935a6,_0x28483b)=>_0x3935a6[_0x5bb243(0x267)][_0x5bb243(0x2bd)](_0x28483b[_0x5bb243(0x267)]))){if(_0x5b527d[_0x5bb243(0x250)](_0x170b84[_0x5bb243(0x267)])||_0x170b84[_0x5bb243(0x267)]['startsWith']('.codegraph-')||_0x170b84[_0x5bb243(0x267)][_0x5bb243(0x27f)](_0x5bb243(0x1fd))||_0x170b84['isSymbolicLink']())continue;const _0x2889d3=path['join'](_0x5b4138,_0x170b84[_0x5bb243(0x267)]);if(_0x170b84['isDirectory']())_0x469539(_0x2889d3);else{if(_0x170b84[_0x5bb243(0x223)]())_0x29d2b2['push']([path[_0x5bb243(0x268)](_0x128d3b,_0x2889d3)[_0x5bb243(0x2ac)](/\\/g,'/'),hash(fs[_0x5bb243(0x237)](_0x2889d3))]);}}};return _0x469539(_0x128d3b),hash(JSON[_0x47bf6e(0x28f)](_0x29d2b2));}function live(_0x478ce9){const _0x2c3f1b=_0x5da13b;if(!Number[_0x2c3f1b(0x2c3)](_0x478ce9)||_0x478ce9<=0x0)return![];try{return process[_0x2c3f1b(0x24d)](_0x478ce9,0x0),!![];}catch(_0x4d37e0){return _0x4d37e0[_0x2c3f1b(0x234)]!==_0x2c3f1b(0x254);}}class IndexStore{constructor(_0x96c43d,_0x56bde0,_0x1acfa5){const _0x5d535b=_0x5da13b;this[_0x5d535b(0x2c2)]=_0x96c43d,this['workspace']=fs[_0x5d535b(0x2af)](_0x56bde0),this[_0x5d535b(0x213)]=_0x1acfa5,this[_0x5d535b(0x2a7)]=safeDirectory(this[_0x5d535b(0x2ab)],_0x5d535b(0x28e)+_0x96c43d);if(!containsWorkspace(this[_0x5d535b(0x2ab)],this['directory']))throw fail(_0x5d535b(0x24e),'Backend\x20state\x20escapes\x20workspace');this[_0x5d535b(0x21d)]=path[_0x5d535b(0x203)](this[_0x5d535b(0x2a7)],_0x5d535b(0x24a)),this[_0x5d535b(0x23a)]=safeDirectory(this[_0x5d535b(0x2ab)],_0x5d535b(0x28e)+_0x96c43d+_0x5d535b(0x29d)),this[_0x5d535b(0x1f9)]=path['join'](this[_0x5d535b(0x23a)],crypto[_0x5d535b(0x21f)]()+_0x5d535b(0x293));if(_0x96c43d===_0x5d535b(0x2a0)){const _0x45e73c=path[_0x5d535b(0x203)](this[_0x5d535b(0x2ab)],_0x5d535b(0x20b));if(!fs[_0x5d535b(0x289)](_0x45e73c))fs[_0x5d535b(0x26c)](_0x45e73c);const _0x132760=_0x1acfa5[_0x5d535b(0x22c)]||_0x5d535b(0x23c);if(!/^\.agents\/\.data\/graph(?:-[0-9]+\.[0-9]+\.[0-9]+)?$/[_0x5d535b(0x2b3)](_0x132760))throw fail(_0x5d535b(0x24e),_0x5d535b(0x2a3));this[_0x5d535b(0x26f)]={..._0x1acfa5[_0x5d535b(0x26f)],'CRG_DATA_DIR':path[_0x5d535b(0x203)](this[_0x5d535b(0x2ab)],_0x132760)};const _0x5b0973=this['resolveReview']();this[_0x5d535b(0x240)]=_0x5b0973[_0x5d535b(0x2c8)],this[_0x5d535b(0x27c)]=_0x5b0973[_0x5d535b(0x27c)],this[_0x5d535b(0x2aa)]=_0x5b0973['source'];}else{this[_0x5d535b(0x26f)]=_0x1acfa5[_0x5d535b(0x26f)]||{};if(_0x1acfa5[_0x5d535b(0x22c)]&&!/^\.codegraph(?:-[a-z0-9]+-[a-z0-9]+)?$/[_0x5d535b(0x2b3)](_0x1acfa5[_0x5d535b(0x22c)]))throw fail('UNSAFE_INDEX',_0x5d535b(0x279));this[_0x5d535b(0x240)]=path['join'](this[_0x5d535b(0x2ab)],_0x1acfa5[_0x5d535b(0x22c)]||'.codegraph'),this[_0x5d535b(0x27c)]=path[_0x5d535b(0x203)](this[_0x5d535b(0x240)],_0x5d535b(0x281));}const _0x1a57a1=this[_0x5d535b(0x20f)]();try{this[_0x5d535b(0x204)]();}finally{_0x1a57a1();}}[_0x5da13b(0x259)](){const _0x2752a5=_0x5da13b,_0x5c3007=cp[_0x2752a5(0x23f)](this[_0x2752a5(0x213)]['command'],[bridge,'inspect',this[_0x2752a5(0x2ab)]],{'env':{...process.env,...this[_0x2752a5(0x26f)]},'windowsHide':!![],'encoding':'utf8','timeout':0x3a98});return JSON['parse'](_0x5c3007);}[_0x5da13b(0x204)](){const _0x2e6f15=_0x5da13b,_0x560915=this['kind']===_0x2e6f15(0x1ff)?this[_0x2e6f15(0x240)]:path['join'](this['workspace'],this['profile'][_0x2e6f15(0x22c)]||'.agents/.data/graph'),_0x57c985=fs[_0x2e6f15(0x289)](this['cache']);if(!_0x57c985&&spelling(this[_0x2e6f15(0x240)])===spelling(_0x560915)){safeDirectory(this[_0x2e6f15(0x2ab)],path[_0x2e6f15(0x268)](this[_0x2e6f15(0x2ab)],this['cache']));if(!containsWorkspace(this[_0x2e6f15(0x2ab)],this[_0x2e6f15(0x240)]))throw fail('UNSAFE_INDEX','Cache\x20escapes\x20workspace');atomic(path[_0x2e6f15(0x203)](this[_0x2e6f15(0x240)],_0x2e6f15(0x283)),{'owner':_0x2e6f15(0x2cc),'workspace':this[_0x2e6f15(0x2ab)],'kind':this[_0x2e6f15(0x2c2)],'host':cacheHost});}}['adoptLegacy'](){const _0x21069b=_0x5da13b;if(this[_0x21069b(0x1f3)]())return!![];const _0x5c224e=this[_0x21069b(0x2c2)]===_0x21069b(0x1ff)?_0x21069b(0x29e):'.agents/.data/graph';if(spelling(this[_0x21069b(0x240)])!==spelling(path[_0x21069b(0x203)](this[_0x21069b(0x2ab)],_0x5c224e)))return![];if(identity(this[_0x21069b(0x240)])!==spelling(path[_0x21069b(0x203)](this['workspace'],_0x5c224e)))return![];const _0x39a15b=read(path[_0x21069b(0x203)](this[_0x21069b(0x2ab)],_0x21069b(0x2c0))),_0x36038d=_0x21069b(0x209),_0x67ee0=_0x39a15b?.[_0x21069b(0x2b4)]?.[_0x36038d];if(!_0x67ee0||!_0x39a15b['files']?.[_0x21069b(0x27f)](_0x36038d))return![];const _0x4a8a40=path[_0x21069b(0x203)](this[_0x21069b(0x2ab)],_0x36038d);rejectLink(path[_0x21069b(0x25b)](_0x4a8a40)),rejectLink(_0x4a8a40);if(hash(fs[_0x21069b(0x237)](_0x4a8a40))!==_0x67ee0)return![];for(const _0x38a010 of['','-wal','-shm'])rejectLink(this['database']+_0x38a010);this[_0x21069b(0x28b)]();if(this[_0x21069b(0x295)]())throw fail(_0x21069b(0x27e),_0x21069b(0x2b2));const _0x284f4a={};return _0x284f4a['manifestVersion']=_0x39a15b['version'],_0x284f4a[_0x21069b(0x291)]=_0x36038d,_0x284f4a[_0x21069b(0x253)]=_0x67ee0,atomic(path[_0x21069b(0x203)](this[_0x21069b(0x240)],_0x21069b(0x283)),{'owner':_0x21069b(0x2cc),'workspace':this['workspace'],'kind':this[_0x21069b(0x2c2)],'provenance':_0x284f4a}),!![];}[_0x5da13b(0x1f3)](){const _0x29c752=_0x5da13b;try{const _0x36b08d=read(path['join'](this[_0x29c752(0x240)],'.apt-managed.json'));for(const _0x34776d of['',_0x29c752(0x23e),'-shm'])rejectLink(this[_0x29c752(0x27c)]+_0x34776d);const _0x19e593=identity(this['cache']),_0x3d95e2=this[_0x29c752(0x2c2)]===_0x29c752(0x1ff)?[this[_0x29c752(0x213)]['cacheDirectory']||_0x29c752(0x29e),_0x29c752(0x29e),'.agents/.data/code']:[this['profile'][_0x29c752(0x22c)]||'.agents/.data/graph'];return _0x36b08d?.['owner']===_0x29c752(0x2cc)&&sameWorkspace(_0x36b08d[_0x29c752(0x2ab)],this['workspace'])&&_0x3d95e2[_0x29c752(0x1f8)](_0x4d612b=>{const _0x1ea616=_0x29c752,_0x51385d=path['resolve'](this[_0x1ea616(0x2ab)],_0x4d612b);return _0x19e593===(process['platform']===_0x1ea616(0x263)?_0x51385d[_0x1ea616(0x212)]():_0x51385d);});}catch{return![];}}[_0x5da13b(0x20f)](){const _0x3e4dc4=_0x5da13b;rejectLink(this['lockPath']);const _0x21f4dd=acquireRuntimeLock(this[_0x3e4dc4(0x21d)],0x0,cacheHost);if(!_0x21f4dd)throw fail(_0x3e4dc4(0x27e),_0x3e4dc4(0x21a));return _0x21f4dd;}[_0x5da13b(0x1f7)](_0x2da388=null,_0x11e6b4=![]){const _0x352fc1=_0x5da13b,_0x48a976=_0x11e6b4?null:this[_0x352fc1(0x20f)]();try{atomic(this[_0x352fc1(0x1f9)],{'ownerPid':process[_0x352fc1(0x1fc)],'childPid':_0x2da388,'workspace':this['workspace'],'host':cacheHost});}finally{_0x48a976?.();}}[_0x5da13b(0x264)](){const _0x426b22=_0x5da13b,_0x3ef388={};_0x3ef388['force']=!![],fs['rmSync'](this[_0x426b22(0x1f9)],_0x3ef388);}[_0x5da13b(0x295)](){const _0x2eb47c=_0x5da13b;return fs[_0x2eb47c(0x229)](this[_0x2eb47c(0x23a)])['filter'](_0x185179=>_0x185179[_0x2eb47c(0x248)]('.json'))[_0x2eb47c(0x1f8)](_0x7fca7c=>{const _0x145fa4=_0x2eb47c,_0x56bec5=path[_0x145fa4(0x203)](this[_0x145fa4(0x23a)],_0x7fca7c);if(_0x56bec5===this[_0x145fa4(0x1f9)])return![];const _0x4b52e0=read(_0x56bec5);if(!_0x4b52e0||_0x4b52e0['host']!==cacheHost||live(_0x4b52e0[_0x145fa4(0x1fb)])||live(_0x4b52e0[_0x145fa4(0x235)]))return!![];return fs[_0x145fa4(0x232)](_0x56bec5),![];});}[_0x5da13b(0x28b)](){const _0x20d36e=_0x5da13b;for(const _0x316887 of[_0x20d36e(0x23b),_0x20d36e(0x2b1)]){const _0x24e828=path[_0x20d36e(0x203)](this[_0x20d36e(0x240)],_0x316887);if(!fs[_0x20d36e(0x289)](_0x24e828))continue;rejectLink(_0x24e828);const _0x112ffe=fs['readFileSync'](_0x24e828,_0x20d36e(0x26a))[_0x20d36e(0x207)]();let _0x921a98;try{_0x921a98=_0x316887===_0x20d36e(0x2b1)?JSON[_0x20d36e(0x2c6)](_0x112ffe)['pid']:Number(_0x112ffe);}catch{}if(!Number[_0x20d36e(0x2c3)](_0x921a98)||_0x921a98<=0x0||live(_0x921a98)||Date[_0x20d36e(0x2c9)]()-fs[_0x20d36e(0x1f5)](_0x24e828)[_0x20d36e(0x272)]<0x1d4c0)throw fail('INDEX_BUSY',_0x20d36e(0x274)+_0x316887+'\x20requires\x20its\x20owning\x20backend\x20to\x20stop');}}async[_0x5da13b(0x230)](){const _0x1de52d=_0x5da13b;if(!fs[_0x1de52d(0x289)](this[_0x1de52d(0x27c)])){if([_0x1de52d(0x23e),_0x1de52d(0x243)]['some'](_0xc1c538=>fs[_0x1de52d(0x289)](this['database']+_0xc1c538)))throw fail(_0x1de52d(0x271),_0x1de52d(0x24c));return;}for(const _0x129b69 of['',_0x1de52d(0x23e),_0x1de52d(0x243)])rejectLink(this[_0x1de52d(0x27c)]+_0x129b69);this[_0x1de52d(0x2c2)]===_0x1de52d(0x1ff)?await run(this[_0x1de52d(0x213)][_0x1de52d(0x256)],[...this[_0x1de52d(0x213)]['args'][_0x1de52d(0x2ad)](0x0,-0x1),'-e','const\x20{DatabaseSync}=require(\x27node:sqlite\x27);const\x20db=new\x20DatabaseSync(process.argv[1],{readOnly:true});try{const\x20rows=db.prepare(\x27PRAGMA\x20integrity_check\x27).all();if(rows.some(r=>Object.values(r)[0]!==\x27ok\x27))throw\x20Error(\x27database\x20disk\x20image\x20is\x20malformed\x27);}finally{db.close()}',this['database']],{'timeout':indexTimeout()}):await run(this[_0x1de52d(0x213)]['command'],['-c',_0x1de52d(0x29b),this[_0x1de52d(0x27c)]],{'timeout':indexTimeout()});}async['migrateLegacy'](){const _0x5017b9=_0x5da13b;if(this[_0x5017b9(0x2c2)]!=='codegraph'||!this[_0x5017b9(0x213)][_0x5017b9(0x22c)]||fs['existsSync'](this['database']))return![];const _0x455126=path[_0x5017b9(0x203)](this[_0x5017b9(0x2ab)],'.codegraph');if(!fs[_0x5017b9(0x289)](path['join'](_0x455126,_0x5017b9(0x281))))return![];const _0x209888=Object[_0x5017b9(0x1f1)](Object[_0x5017b9(0x260)](Object[_0x5017b9(0x221)](this)),this,{'cache':_0x455126,'database':path[_0x5017b9(0x203)](_0x455126,_0x5017b9(0x281)),'env':{...this[_0x5017b9(0x26f)],'CODEGRAPH_DIR':'.codegraph'}});try{const _0x190e59=read(path[_0x5017b9(0x203)](_0x455126,'.apt-managed.json'));if(_0x190e59?.[_0x5017b9(0x251)]!==cacheHost){const _0xda24ee={};return _0xda24ee[_0x5017b9(0x211)]=_0x5017b9(0x2cd),_0xda24ee[_0x5017b9(0x26e)]=_0x5017b9(0x298),this['legacyMigration']=_0xda24ee,![];}_0x209888[_0x5017b9(0x28b)]();if(_0x209888[_0x5017b9(0x295)]()||!_0x209888['owned']()&&!_0x209888[_0x5017b9(0x2cb)]())return![];await _0x209888[_0x5017b9(0x230)]();}catch(_0x132057){const _0x229a30={};return _0x229a30[_0x5017b9(0x211)]='preserved',_0x229a30[_0x5017b9(0x26e)]=_0x132057[_0x5017b9(0x234)]||_0x132057['message'],this[_0x5017b9(0x261)]=_0x229a30,![];}if(!this[_0x5017b9(0x1f3)]()||fs[_0x5017b9(0x229)](this['cache'])[_0x5017b9(0x1f8)](_0x2bed1b=>_0x2bed1b!==_0x5017b9(0x283)))return![];const _0x8245f1=this[_0x5017b9(0x240)]+_0x5017b9(0x1fd)+crypto[_0x5017b9(0x21f)]();fs[_0x5017b9(0x288)](this['cache'],_0x8245f1);try{fs[_0x5017b9(0x288)](_0x455126,this[_0x5017b9(0x240)]);}catch(_0x2e5631){fs[_0x5017b9(0x288)](_0x8245f1,this[_0x5017b9(0x240)]);throw _0x2e5631;}return this[_0x5017b9(0x261)]={'status':'migrated','from':_0x455126,'to':this['cache']},!![];}async[_0x5da13b(0x2b0)](){const _0x136340=_0x5da13b;if(!this['owned']()&&!this[_0x136340(0x2cb)]())throw fail(_0x136340(0x24e),_0x136340(0x228));if(this['kind']===_0x136340(0x1ff)){const _0x4c4b46=fs[_0x136340(0x289)](this[_0x136340(0x27c)]),_0x495d02=await run(this[_0x136340(0x213)][_0x136340(0x256)],[...this[_0x136340(0x213)][_0x136340(0x2be)],_0x4c4b46?_0x136340(0x27d):'init',this[_0x136340(0x2ab)],_0x4c4b46?_0x136340(0x2c1):'--yes'],{'cwd':this[_0x136340(0x2ab)],'env':{...process.env,...this['env']},'windowsHide':!![],'timeout':indexTimeout(),'maxBuffer':0x4*0x400*0x400});this[_0x136340(0x222)]=_0x495d02[_0x136340(0x2a1)];return;}const _0x3f6b59=this['resolveReview']();if(path[_0x136340(0x25e)](_0x3f6b59['database'])!==path[_0x136340(0x25e)](this['database']))throw fail('INDEX_PATH_CHANGED','Review\x20registry\x20changed\x20the\x20active\x20database');const _0x398459=snapshot(this[_0x136340(0x2ab)]);try{const _0x3bbf67=await run(this[_0x136340(0x213)][_0x136340(0x256)],[bridge,_0x136340(0x2b0),this[_0x136340(0x2ab)]],{'cwd':this[_0x136340(0x2ab)],'env':{...process.env,...this[_0x136340(0x26f)]},'windowsHide':!![],'timeout':indexTimeout(),'maxBuffer':0x4*0x400*0x400});JSON[_0x136340(0x2c6)](_0x3bbf67[_0x136340(0x26d)]),this['lastBuild']=_0x3bbf67[_0x136340(0x2a1)];}catch(_0x2d8ab1){let _0x2b3a6b=_0x2d8ab1[_0x136340(0x2a2)];try{_0x2b3a6b=JSON[_0x136340(0x2c6)](_0x2d8ab1[_0x136340(0x2a1)]?.['stdout'])[_0x136340(0x239)]||_0x2b3a6b;}catch{}throw Object['assign'](fail(_0x2d8ab1['code']||classify(_0x2b3a6b),_0x2b3a6b),{'diagnostic':_0x2d8ab1['diagnostic']});}if(_0x398459!==snapshot(this[_0x136340(0x2ab)]))throw fail(_0x136340(0x21e),_0x136340(0x292));atomic(path[_0x136340(0x203)](this[_0x136340(0x2a7)],_0x136340(0x29f)),{'workspace':this['workspace'],'snapshot':_0x398459,'version':this['profile'][_0x136340(0x2b9)],'database':this[_0x136340(0x27c)],'builtAt':new Date()[_0x136340(0x202)]()});}async['refresh'](){const _0x2b3a2d=_0x5da13b,_0x9e4ee9=this['lock']();try{const _0x504c5f=read(path['join'](this[_0x2b3a2d(0x2a7)],_0x2b3a2d(0x29f)));if(!_0x504c5f||_0x504c5f['version']!==this[_0x2b3a2d(0x213)][_0x2b3a2d(0x2b9)]||_0x504c5f['database']!==this[_0x2b3a2d(0x27c)]||!fs[_0x2b3a2d(0x289)](this[_0x2b3a2d(0x27c)])||_0x504c5f['snapshot']!==snapshot(this[_0x2b3a2d(0x2ab)]))await this[_0x2b3a2d(0x2b0)]();return read(path[_0x2b3a2d(0x203)](this[_0x2b3a2d(0x2a7)],_0x2b3a2d(0x29f)));}finally{_0x9e4ee9();}}async[_0x5da13b(0x20d)](_0x35cd9c=![]){const _0x1839cd=_0x5da13b,_0xf381a5=_0x35cd9c?null:this['lock'](),_0x410e51=path['join'](this['directory'],_0x1839cd(0x1ee));let _0xaa9502;try{if(!this[_0x1839cd(0x1f3)]())throw fail(_0x1839cd(0x24e),_0x1839cd(0x236));if(this[_0x1839cd(0x295)]())throw fail(_0x1839cd(0x27e),'Another\x20live\x20backend\x20is\x20using\x20the\x20cache');this[_0x1839cd(0x28b)]();if(this[_0x1839cd(0x2c2)]===_0x1839cd(0x2a0)&&spelling(this['resolveReview']()['database'])!==spelling(this['database']))throw fail(_0x1839cd(0x219),_0x1839cd(0x247));const _0x3268dc=fs[_0x1839cd(0x289)](this[_0x1839cd(0x240)])?fs[_0x1839cd(0x2af)](this['cache']):null,_0x3728f7=_0x3268dc?_0x3268dc+'.apt-backup-'+crypto[_0x1839cd(0x21f)]():null;_0xaa9502={'status':_0x1839cd(0x1f4),'backup':_0x3728f7,'workspace':this[_0x1839cd(0x2ab)],'at':new Date()[_0x1839cd(0x202)]()},atomic(_0x410e51,_0xaa9502);if(_0x3728f7)fs[_0x1839cd(0x288)](_0x3268dc,_0x3728f7);const _0x478846={};_0x478846[_0x1839cd(0x208)]=!![],fs[_0x1839cd(0x26c)](this[_0x1839cd(0x240)],_0x478846),atomic(path['join'](this[_0x1839cd(0x240)],_0x1839cd(0x283)),{'owner':_0x1839cd(0x2cc),'workspace':this[_0x1839cd(0x2ab)],'kind':this[_0x1839cd(0x2c2)]}),await this[_0x1839cd(0x2b0)]();const _0x487f45={..._0xaa9502};return _0x487f45['status']=_0x1839cd(0x1f2),atomic(_0x410e51,_0x487f45),_0x3728f7;}catch(_0x1b705a){if(_0xaa9502)atomic(_0x410e51,{..._0xaa9502,'status':'failed','reason':_0x1b705a['message']});throw _0x1b705a;}finally{_0xf381a5?.();}}async[_0x5da13b(0x2b6)](_0x3d319a,_0x5d8d63){const _0x514756=_0x5da13b;if(![_0x514756(0x25d),'INDEX_CORRUPT'][_0x514756(0x27f)](_0x5d8d63[_0x514756(0x234)])||!this[_0x514756(0x1f3)]())return![];let _0xbe1569;try{_0xbe1569=this['lock']();}catch(_0x449f6a){const _0x488408={};return _0x488408[_0x514756(0x211)]=_0x514756(0x25f),_0x488408[_0x514756(0x26e)]=_0x449f6a[_0x514756(0x2a2)],_0x3d319a[_0x514756(0x245)]=_0x488408,![];}const _0x5a03ae=path[_0x514756(0x203)](this[_0x514756(0x2a7)],_0x514756(0x1ee));try{if(this['kind']===_0x514756(0x2a0)&&spelling(this[_0x514756(0x259)]()[_0x514756(0x27c)])!==spelling(this['database']))throw fail('INDEX_PATH_CHANGED',_0x514756(0x247));if(this[_0x514756(0x295)]()){const _0x3059a9={};return _0x3059a9[_0x514756(0x211)]=_0x514756(0x25f),_0x3059a9['reason']=_0x514756(0x246),_0x3d319a[_0x514756(0x245)]=_0x3059a9,![];}const _0x535296=hash(fs['existsSync'](this['database'])?fs[_0x514756(0x237)](this['database']):_0x514756(0x25c)),_0x393dfe=read(_0x5a03ae);if(_0x393dfe&&_0x393dfe['status']!==_0x514756(0x2b5)&&(_0x393dfe['fingerprint']===_0x535296||_0x393dfe[_0x514756(0x269)]===_0x535296))return _0x3d319a[_0x514756(0x245)]=_0x393dfe,![];const _0x1ef049=fs['realpathSync'](this[_0x514756(0x240)]),_0x96a23a=_0x1ef049+_0x514756(0x1fd)+crypto[_0x514756(0x21f)](),_0x480f2a=read(path['join'](_0x1ef049,_0x514756(0x283))),_0x1765db={'status':_0x514756(0x1f4),'fingerprint':_0x535296,'backup':_0x96a23a,'workspace':this[_0x514756(0x2ab)],'at':new Date()[_0x514756(0x202)]()};atomic(_0x5a03ae,_0x1765db),_0x3d319a[_0x514756(0x245)]=_0x1765db;const _0x344133=_0x3d319a['generation']===undefined?undefined:_0x3d319a[_0x514756(0x286)]+0x1;await _0x3d319a[_0x514756(0x270)]();if(_0x3d319a[_0x514756(0x286)]!==_0x344133)throw fail(_0x514756(0x2ae),'Backend\x20was\x20stopped\x20during\x20recovery');this[_0x514756(0x28b)]();if(!this[_0x514756(0x1f3)]())throw fail(_0x514756(0x24e),_0x514756(0x266));fs[_0x514756(0x288)](_0x1ef049,_0x96a23a),fs['mkdirSync'](_0x1ef049),atomic(path[_0x514756(0x203)](_0x1ef049,_0x514756(0x283)),_0x480f2a),await this[_0x514756(0x2b0)]();if(_0x3d319a['generation']!==_0x344133)throw fail(_0x514756(0x2ae),_0x514756(0x29c));_0x3d319a[_0x514756(0x297)](![],!![]);const _0x58f844={..._0x1765db};return _0x58f844[_0x514756(0x211)]=_0x514756(0x1f2),_0x3d319a['indexRecovery']=_0x58f844,atomic(_0x5a03ae,_0x3d319a[_0x514756(0x245)]),!![];}catch(_0x393056){const _0x2aae65=hash(fs['existsSync'](this[_0x514756(0x27c)])?fs[_0x514756(0x237)](this['database']):_0x514756(0x25c));return _0x3d319a['indexRecovery']={..._0x3d319a[_0x514756(0x245)]||{},'status':_0x514756(0x29a),'failedFingerprint':_0x2aae65,'reason':_0x393056[_0x514756(0x2a2)]},atomic(_0x5a03ae,_0x3d319a[_0x514756(0x245)]),![];}finally{_0xbe1569();}}['recovered'](_0x508324){const _0x55460d=_0x5da13b;_0x508324['indexRecovery']={..._0x508324[_0x55460d(0x245)],'status':'recovered'},atomic(path[_0x55460d(0x203)](this[_0x55460d(0x2a7)],_0x55460d(0x1ee)),_0x508324[_0x55460d(0x245)]);}}const _0x16182e={};_0x16182e[_0x5da13b(0x22e)]=IndexStore,_0x16182e[_0x5da13b(0x28a)]=snapshot,_0x16182e[_0x5da13b(0x1f0)]=responseError,_0x16182e[_0x5da13b(0x21b)]=classify,_0x16182e[_0x5da13b(0x2ca)]=atomic,module['exports']=_0x16182e;require[_0x5da13b(0x238)]===module&&(async()=>{const _0x1a4cd8=_0x5da13b,_0x54d9bc=require(_0x1a4cd8(0x22b)),_0x4e170b=fs[_0x1a4cd8(0x2af)](process['argv'][0x2]),_0x1490a8=safeDirectory(_0x4e170b,_0x1a4cd8(0x2c7)),_0x4cf18f={'workspace':_0x4e170b,'startedAt':new Date()[_0x1a4cd8(0x202)](),'status':_0x1a4cd8(0x220),'backends':[]},_0x26d783=path[_0x1a4cd8(0x203)](_0x1490a8,'index-build-last.json');atomic(_0x26d783,_0x4cf18f);for(const [_0x8b90de,_0x5454e8]of[[_0x1a4cd8(0x1ff),_0x54d9bc['codegraph']],[_0x1a4cd8(0x2a0),_0x54d9bc[_0x1a4cd8(0x1ef)]]]){let _0x245239,_0x15356f;const _0x470d4a={'backend':_0x8b90de,'workspace':_0x4e170b,'startedAt':new Date()[_0x1a4cd8(0x202)](),'status':_0x1a4cd8(0x220)};_0x4cf18f['backends'][_0x1a4cd8(0x285)](_0x470d4a);try{const _0xfbfc9d=_0x5454e8(),_0x1fbf36={};_0x1fbf36[_0x1a4cd8(0x2b9)]=_0xfbfc9d[_0x1a4cd8(0x2b9)],_0x1fbf36[_0x1a4cd8(0x262)]=_0xfbfc9d[_0x1a4cd8(0x256)],Object[_0x1a4cd8(0x1f1)](_0x470d4a,_0x1fbf36),_0x245239=new IndexStore(_0x8b90de,_0x4e170b,_0xfbfc9d);const _0x4867e5={};_0x4867e5[_0x1a4cd8(0x240)]=_0x245239[_0x1a4cd8(0x240)],_0x4867e5[_0x1a4cd8(0x27c)]=_0x245239[_0x1a4cd8(0x27c)],_0x4867e5['pathSource']=_0x245239[_0x1a4cd8(0x2aa)]||_0x1a4cd8(0x213),Object[_0x1a4cd8(0x1f1)](_0x470d4a,_0x4867e5),_0x15356f=_0x245239[_0x1a4cd8(0x20f)]();if(_0x245239['otherUsers']())throw fail(_0x1a4cd8(0x27e),'A\x20live\x20backend\x20is\x20using\x20the\x20index;\x20restart\x20it\x20before\x20rebuilding');await _0x245239[_0x1a4cd8(0x24b)](),_0x470d4a[_0x1a4cd8(0x261)]=_0x245239['legacyMigration']||null,_0x245239[_0x1a4cd8(0x28b)]();try{await _0x245239[_0x1a4cd8(0x230)](),await _0x245239['build']();}catch(_0x5f4fdb){if(_0x5f4fdb[_0x1a4cd8(0x234)]!==_0x1a4cd8(0x271)||!_0x245239['owned']()&&!_0x245239['adoptLegacy']())throw _0x5f4fdb;_0x470d4a[_0x1a4cd8(0x210)]=_0x1a4cd8(0x22f),_0x470d4a[_0x1a4cd8(0x277)]=await _0x245239[_0x1a4cd8(0x20d)](!![]);}Object[_0x1a4cd8(0x1f1)](_0x470d4a,_0x245239[_0x1a4cd8(0x222)],{'status':'built','functionalReady':![],'recoveryStatus':_0x470d4a[_0x1a4cd8(0x210)]||_0x1a4cd8(0x215)}),_0x15356f(),_0x15356f=null;const {BackendProcess:_0x46892a}=require('../proxy/backends'),_0xb0210e=_0x8b90de==='codegraph'?[..._0xfbfc9d[_0x1a4cd8(0x2be)],_0x1a4cd8(0x231),_0x1a4cd8(0x22a)]:_0xfbfc9d[_0x1a4cd8(0x2be)],_0x57e0d5=new _0x46892a(_0x8b90de,_0xfbfc9d[_0x1a4cd8(0x256)],_0xb0210e,{'cwd':_0x4e170b,'env':{..._0xfbfc9d['env'],..._0x245239['env']},'maxRetries':0x0});_0x57e0d5[_0x1a4cd8(0x2a4)]=_0x245239;try{_0x57e0d5[_0x1a4cd8(0x297)](![]);const _0x4142a4={};_0x4142a4[_0x1a4cd8(0x267)]=_0x1a4cd8(0x2b7),_0x4142a4[_0x1a4cd8(0x2b9)]='1';const _0x2cdac8={};_0x2cdac8[_0x1a4cd8(0x27b)]='2024-11-05',_0x2cdac8[_0x1a4cd8(0x216)]={},_0x2cdac8['clientInfo']=_0x4142a4,await _0x57e0d5[_0x1a4cd8(0x2a8)](_0x2cdac8);if(!_0x57e0d5['functionalReady'])throw fail('INDEX_PROBE_FAILED',_0x1a4cd8(0x252));_0x470d4a[_0x1a4cd8(0x2c5)]=!![],_0x470d4a['backup']&&(_0x57e0d5[_0x1a4cd8(0x245)]=read(path[_0x1a4cd8(0x203)](_0x245239[_0x1a4cd8(0x2a7)],'recovery.json')),_0x245239[_0x1a4cd8(0x2b5)](_0x57e0d5),_0x470d4a[_0x1a4cd8(0x210)]=_0x1a4cd8(0x2b5));}finally{await _0x57e0d5['stopAndWait']();}}catch(_0x474c20){Object[_0x1a4cd8(0x1f1)](_0x470d4a,_0x474c20[_0x1a4cd8(0x2a1)],{'status':_0x1a4cd8(0x29a),'reasonCode':_0x474c20[_0x1a4cd8(0x234)]||_0x1a4cd8(0x2bc),'message':_0x474c20[_0x1a4cd8(0x2a2)]});if(_0x245239){const _0x2711ea=read(path[_0x1a4cd8(0x203)](_0x245239[_0x1a4cd8(0x2a7)],'recovery.json'));if(_0x2711ea)Object[_0x1a4cd8(0x1f1)](_0x470d4a,{'recoveryStatus':_0x2711ea[_0x1a4cd8(0x211)],'backup':_0x2711ea[_0x1a4cd8(0x277)]});}console[_0x1a4cd8(0x239)]('['+_0x8b90de+']\x20'+_0x470d4a[_0x1a4cd8(0x2bb)]+':\x20'+_0x474c20[_0x1a4cd8(0x2a2)]),process[_0x1a4cd8(0x241)]=0x2;}finally{_0x15356f?.(),_0x470d4a['endedAt']=new Date()[_0x1a4cd8(0x202)](),atomic(_0x26d783,_0x4cf18f);}}_0x4cf18f['status']=process[_0x1a4cd8(0x241)]?_0x1a4cd8(0x29a):_0x1a4cd8(0x2a6),_0x4cf18f[_0x1a4cd8(0x296)]=new Date()['toISOString'](),atomic(_0x26d783,_0x4cf18f);})()[_0x5da13b(0x276)](_0x5dca4f=>{const _0x3ef069=_0x5da13b;console[_0x3ef069(0x239)](_0x5dca4f['message']),process[_0x3ef069(0x241)]=0x1;});function _0x4ba4(){const _0x2fa323=['C3rVCefUzfDHAxq','su5ervHFq09suLvqva','BxrPBwvnCW','Dgv4Da','q2fJAguGBg9JAYa','lI9PBMrLEc1JB21Tyw5K','y2f0y2G','yMfJA3vW','BwfW','sw52ywXPzcbdB2rLr3jHCgGGy2fJAguGzgLYzwn0B3j5','DxbKyxrL','ChjVDg9JB2XwzxjZAw9U','zgf0ywjHC2u','Aw5KzxG','su5ervHFqLvtwq','Aw5JBhvKzxm','sw5KzxGGzgLYzwn0B3j5igvZy2fWzxmGD29YA3nWywnL','y29KzwDYyxbOlMrI','zNn5BMntEw5J','lMfWDc1Tyw5Hz2vKlMPZB24','C29YDa','ChvZAa','z2vUzxjHDgLVBG','y3jLyxrLsgfZAa','CMvUyw1Lu3LUyW','zxHPC3rZu3LUyW','C25HChnOB3q','y2HLy2ToyxrPDMvmB2nRCW','CMvZDwX0','Cgf0Aa','lMfNzw50CY9YDw50Aw1Ll2jHy2TLBMrZlW','C3rYAw5NAwz5','nvL0AMzvqq','zgvWBg95zwq','v29YA3nWywnLignOyw5NzwqGzhvYAw5NigDYyxbOigj1AwXKoYbYzxrYEsbIzwzVCMuGAw1Wywn0igfUywX5C2LZ','lMPZB24','Ag9ZDg5HBwu','B3rOzxjvC2vYCW','zw5KzwrbDa','C3rHCNq','su5ervHFse9tvf9vtLzfuKLgsuve','odG0ndeYnNnjChntqW','zMfPBgvK','Aw1WB3j0ihnXBgL0ztmSC3LZlhbHDgHSAwi7igm9C3fSAxrLmY5JB25Uzwn0khbHDgHSAwiUugf0AcHZExmUyxjNDLSXxsKUyxnFDxjPkcKRjZ9TB2rLpxjVjYX1CMK9vhj1zsK7ihjVD3m9yY5LEgvJDxrLkcDquKfhtueGAw50zwDYAxr5x2nOzwnRjYKUzMv0y2HHBgWOktSGyY5JBg9ZzsGPoYbHC3nLCNqGywXSkhjBmf09psDVAYCGzM9YihiGAw4GCM93CYKSicDKyxrHyMfZzsbKAxnRigLTywDLigLZig1HBgzVCM1LzcC','qMfJA2vUzcb3yxmGC3rVChbLzcb3AgLSzsbYzwj1AwXKAw5NigL0CYbPBMrLEa','l3vZzxjZ','lMnVzgvNCMfWAa','CMvJzwLWDc5QC29U','y29Kzs1YzxzPzxCTz3jHCgG','zgLHz25VC3rPyW','BwvZC2fNzq','sw52ywXPzcbYzxzPzxCGz3jHCgGGy2fJAguGzgLYzwn0B3j5','Aw5KzxHtDg9Yzq','ntCWmde0mervtvDryG','yNvPBhq','zgLYzwn0B3j5','Aw5PDgLHBgL6zq','lI4Vy29Yzs9VD25Lzc1SB2nR','Cgf0AfnVDxjJzq','D29YA3nWywnL','CMvWBgfJzq','C2XPy2u','uKvdt1zfuLLFq0foq0vmteve','CMvHBhbHDgHtEw5J','yNvPBgq','zgfLBw9UlNbPza','qw5VDgHLCIbIywnRzw5KigLZihvZAw5NihrOzsbSzwDHy3KGy2fJAgu','DgvZDa','BwfUywDLzezPBgviyxnOzxm','CMvJB3zLCMvK','CMvJB3zLCG','yxb0lwLUzgv4lxzLCMLMAwnHDgLVBG','C3rYAw5N','DMvYC2LVBG','ndm0ngHjCvzhAW','CMvHC29Uq29Kzq','su5ervHFu0vuvvbFrKfjteve','Bg9JywXLq29TCgfYzq','yxjNCW','C3rYDwn0DxjLzenVBNrLBNq','lMfNzw50CY9Tyw5PzMvZDc5QC29U','ls1MB3jJzq','A2LUza','AxntywzLsw50zwDLCG','DhLWzq','zNvUy3rPB25HBfjLywr5','CgfYC2u','lMfNzw50CY9YDw50Aw1Ll2jHy2TLBMrZ','zgf0yurPCMvJDg9YEq','BM93','yxrVBwLJ','ywrVChrmzwDHy3K','yxb0lw1JCc1Hz2vUDa','ChjLC2vYDMvK','Bhn0yxrtEw5J','CMvJB3zLCNKUANnVBG','CMv2Awv3','CMvZCg9UC2vfCNjVCG','yxnZAwDU','CMvIDwLSDa','B3DUzwq','CMvJB3zLCMLUzW','C3rHDfn5BMm','AxnbyNnVBhv0zq','CMvNAxn0zxi','C29Tzq','DxnLCKzPBgu','sw5KzxGGBwv0ywrHDgeGBxvZDcbUB3qGyMuGysbZEw1IB2XPyYbSAw5R','B3DUzxjqAwq','CgLK','lMfWDc1IywnRDxaT','qMfJA2vUzcbXDwvYEsbMywLSzwq','y29KzwDYyxbO','lNn2BG','mZy2odm0BhjwAgXy','Dg9ju09tDhjPBMC','AM9PBG','ChjLCgfYzq','lMfNzw50CW','nde4mdC0mfHXtNrABW','DhjPBq','CMvJDxjZAxzL','lMfNzw50CY9WCM94Es9IywnRzw5KCY5QCW','ntv5vhPuwuK','lMnVzguTCMv2Awv3lwDYyxbO','lNzLBNy','C3rHBMrHBg9UzvjLyNvPBgq','B3bLBLn5BMm','Bg9JAW','CMvJB3zLCNLtDgf0Dxm','C3rHDhvZ','Dg9mB3DLCKnHC2u','ChjVzMLSzq','CM1tEw5J','BM90lw5LzwrLza','y2fWywjPBgL0AwvZ','lI4Vy29Yzs93B3jRC3bHy2uTCgf0Aa','C2HHmJu2','su5ervHFuefusf9dsefor0ve','sw5KzxGGBwfPBNrLBMfUy2uGAxmGyNvZEtSGCMv0CNKGywz0zxiGDgHLign1CNjLBNqGB3bLCMf0Aw9UigzPBMLZAgvZ','y2XHC3nPzNK','C3bSAxq','Bg9JA1bHDgG','r1jbueHFq0HbtKDfra','CMfUzg9Tvvvjra','CNvUBMLUzW','z2v0uhjVDg90ExbLt2y','BgfZDej1AwXK','AxngAwXL','y29UDgvUDa','ovHsuvPzwa','ru5pru5u','y3j5ChrV','q2fJAguGB3DUzxjZAgLWigLZig5VDcbWCM92zw47ign1C3rVBsbPBMrLEgvZig11C3qGyMuGBwfUywDLzcbZzxbHCMf0zwX5','CMvHzgrPCLn5BMm','ls1Ty3a','lI9WCM9MAwXLCW','y2fJAgveAxjLy3rVCNK','lNrTCa','sw5KzxHtDg9Yzq','CxvHCMfUDgLUAw5N','y2HLy2TeyxrHyMfZzq','C2vYDMu','Dw5SAw5Ru3LUyW','zM9Yy2u','y29Kzq','y2HPBgrqAwq','q2fJAguGB3DUzxjZAgLWigLZig5VDcbWCM92zw4','CMvHzezPBgvtEw5J','BwfPBG','zxjYB3i','DxnLCNm','y29KzwDYyxbOlMXVy2S','lMfNzw50CY8Uzgf0ys9NCMfWAa','y2XVC2vtEw5J','lxDHBa','zxHLy0zPBgvtEw5J','y2fJAgu','zxHPDenVzgu','mtu2otmXotbvCg5Wt1u','lxnOBq','Agv4','Aw5KzxHszwnVDMvYEq','qw5VDgHLCIbSAxzLigjHy2TLBMqGAxmGDxnPBMCGDgHLignHy2HL','uMv2Awv3ihjLz2LZDhj5ignOyw5NzwqGDgHLigfJDgL2zsbKyxrHyMfZzq','zw5KC1DPDgG','mta1ndjvANLNAgC','y2fJAguUBg9JAW','BwLNCMf0zuXLz2fJEq','rgf0ywjHC2uGAxmGBwLZC2LUzYbIDxqGu1fmAxrLihnPzgvJyxjZihjLBwfPBJSGChjLC2vYDMuGDgHLBsbIzwzVCMuGCMvIDwLSzgLUzW','A2LSBa','vu5tquzfx0Lorevy','CMv2Awv3x2DYyxbOlNb5','AgfZ','Ag9ZDa','qMfJA2vUzcbKAwqGBM90ihbHC3mGAxrZigz1BMn0Aw9UywWGChjVyMu','zgLNzxn0','rvnsq0G','lM1LBw9YEq','y29TBwfUza','mNvsDuzvsW','BM9Kzv9TB2r1BgvZ','CMvZB2X2zvjLDMLLDW','mZi2mJyXn3DOr2fuDW','zgLYBMfTzq','BwLZC2LUzW','su5ervHFtuLtu0LorW','CMvZB2X2zq','yNvZEq','y3jLyxrL','BgvNywn5twLNCMf0Aw9U','zxHLy3v0ywjSzq','D2LUmZi','Dw5YzwDPC3rLCG','lMDPDa','q2fJAguGB3DUzxjZAgLWignOyw5NzwqGyMvMB3jLihjLy292zxj5','BMfTzq','CMvSyxrPDMu','zMfPBgvKrMLUz2vYChjPBNq','DxrMoa','zMLSDgvY','BwTKAxjtEw5J','C3rKB3v0','CMvHC29U','zw52'];_0x4ba4=function(){return _0x2fa323;};return _0x4ba4();}
1
+ const _0x1ac04c=_0x587d;(function(_0x16abe1,_0x4305c6){const _0x48dc3a=_0x587d,_0x21aefd=_0x16abe1();while(!![]){try{const _0x2f7f6a=-parseInt(_0x48dc3a(0x1db))/0x1*(parseInt(_0x48dc3a(0x1ab))/0x2)+parseInt(_0x48dc3a(0x1d9))/0x3+parseInt(_0x48dc3a(0x1b0))/0x4+-parseInt(_0x48dc3a(0x147))/0x5+-parseInt(_0x48dc3a(0x179))/0x6+parseInt(_0x48dc3a(0x168))/0x7+parseInt(_0x48dc3a(0x18f))/0x8*(parseInt(_0x48dc3a(0x108))/0x9);if(_0x2f7f6a===_0x4305c6)break;else _0x21aefd['push'](_0x21aefd['shift']());}catch(_0x14278f){_0x21aefd['push'](_0x21aefd['shift']());}}}(_0xe110,0x5f6b4));const fs=require('fs'),path=require(_0x1ac04c(0x1b6)),crypto=require(_0x1ac04c(0x14d)),cp=require(_0x1ac04c(0x140)),cacheHost=require('os')[_0x1ac04c(0x12b)]()+':'+process[_0x1ac04c(0x1cd)]+':'+process[_0x1ac04c(0x1c5)],{runIndexCommand,indexTimeout}=require(_0x1ac04c(0x18d)),{identity,sameWorkspace,containsWorkspace}=require(_0x1ac04c(0x1a9)),{acquireRuntimeLock}=require(_0x1ac04c(0x104)),run=runIndexCommand,hash=_0x11684e=>crypto[_0x1ac04c(0x170)](_0x1ac04c(0x113))[_0x1ac04c(0x15d)](_0x11684e)[_0x1ac04c(0x157)](_0x1ac04c(0x193)),bridge=path[_0x1ac04c(0x173)](__dirname,'review_graph.py'),fail=(_0x3a1031,_0xa28b8a)=>Object[_0x1ac04c(0x10a)](new Error(_0xa28b8a),{'code':_0x3a1031}),spelling=_0x12d306=>process['platform']===_0x1ac04c(0x196)?path[_0x1ac04c(0x19b)](_0x12d306)['toLowerCase']():path[_0x1ac04c(0x19b)](_0x12d306);function rejectLink(_0x55924f){const _0x1d4445=_0x1ac04c;try{if(fs['lstatSync'](_0x55924f)[_0x1d4445(0x195)]())throw fail(_0x1d4445(0x12e),_0x1d4445(0x1c8));}catch(_0x2fd594){if(_0x2fd594[_0x1d4445(0x15f)]!==_0x1d4445(0x10d))throw _0x2fd594;}}function _0xe110(){const _0x416c32=['uKvdt1zfuLLFq0foq0vmteve','CMvWBgfJzq','y29TBwfUza','zw5KzwrbDa','q2fJAguGB3DUzxjZAgLWigLZig5VDcbWCM92zw47ign1C3rVBsbPBMrLEgvZig11C3qGyMuGBwfUywDLzcbZzxbHCMf0zwX5','CMvZDwX0','ChjLC2vYDMvK','BwfPBG','zgLNzxn0','CMvSyxrPDMu','ls15zxm','Aw5KzxGTyNvPBgqTBgfZDc5QC29U','y29KzwDYyxbO','Dg9ju09tDhjPBMC','DxbKyxrL','uMv2Awv3ihjLz2LZDhj5ignOyw5NzwqGDgHLigfJDgL2zsbKyxrHyMfZzq','y29Kzq','lM1LBw9YEq','BwvZC2fNzq','DxnLCKzPBgu','AxnbyNnVBhv0zq','CxvHCMfUDgLUAw5N','CMvIDwLSDa','BwTKAxjtEw5J','C2vYDMu','mtiZmdeWm05gBNjhEq','y2XPzw50sw5MBW','yNvZEq','su5ervHFtuLtu0LorW','C3rVCefUzfDHAxq','x19WEwnHy2HLx18','CgfYC2u','qKfds0vorf9rvuvswv9gquLmruq','y3jLyxrLsgfZAa','zxHPC3rZu3LUyW','su5ervHFse9tvf9vtLzfuKLgsuve','AM9PBG','rgf0ywjHC2uGAxmGBwLZC2LUzYbIDxqGu1fmAxrLihnPzgvJyxjZihjLBwfPBJSGChjLC2vYDMuGDgHLBsbIzwzVCMuGCMvIDwLSzgLUzW','su5ervHFq09suLvqva','BMfTzq','Aw5KzxG','BgfZDej1AwXK','mZu5mZq0offmCwnQAq','Bg9JA1bHDgG','zgf0ywjHC2u','C3rHCNrZv2L0Aa','yxjNCW','C29Tzq','Aw5KzxHszwnVDMvYEq','C3bSAxq','y29UDgvUDa','yxb0lwLUzgv4lxzLCMLMAwnHDgLVBG','BwLZC2LUzW','A2LSBa','lMfNzw50CY8Uzgf0ys9JB2rL','zw52','ywrVChrmzwDHy3K','q2fJAguGB3DUzxjZAgLWignOyw5NzwqGyMvMB3jLihjLy292zxj5','y2XHC3nPzNK','DMvUDG','ChjVDg9JB2XwzxjZAw9U','zgLHz25VC3rPyW','lI9PBMrLEc1JB21Tyw5K','zxjYB3i','mJa3mtG4ogTmq01frW','lMfWDc1Tyw5Hz2vKlMPZB24','C3rHBMrHBg9UzvjLyNvPBgq','CMvJB3zLCMLUzW','Agv4','CgLK','AxntEw1IB2XPy0XPBMS','D2LUmZi','q2fJAguGBg9JAYa','y2fJAguUBg9JAW','B3DUzwq','B3DUzxi','CMvZB2X2zq','CMvJzwLWDc5QC29U','ihjLCxvPCMvZigL0CYbVD25PBMCGyMfJA2vUzcb0BYbZDg9W','Aw5KzxHtDg9Yzq','Bg9JywXLq29TCgfYzq','lMfNzw50CW','zNn5BMntEw5J','lxDHBa','su5ervHFuefusf9dsefor0ve','qMfJA2vUzcb3yxmGC3rVChbLzcb3AgLSzsbYzwj1AwXKAw5NigL0CYbPBMrLEa','lMPZB24','ChjLCgfYzq','D29YA3nWywnL','Aw5JBhvKzxm','lI4Vy29Yzs93B3jRC3bHy2uTCgf0Aa','zgvWBg95zwq','mM5Aze9LvG','BwfW','BwfUywDLzezPBgviyxnOzxm','DhLWzq','y29KzwDYyxbOlMXVy2S','mtyZnJeWnfrlref6wa','Dg9mB3DLCKnHC2u','lMfNzw50CY9YDw50Aw1Ll2jHy2TLBMrZ','lNn2BG','qw5VDgHLCIbSAxzLigjHy2TLBMqGAxmGDxnPBMCGDgHLignHy2HL','zM9Yy2u','Cgf0Aa','su5ervHFqLvtwq','BgvNywn5twLNCMf0Aw9U','CMvHBhbHDgHtEw5J','l3vZzxjZ','qMfJA2vUzcbKAwqGBM90ihbHC3mGAxrZigz1BMn0Aw9UywWGChjVyMu','zMfPBgvKrMLUz2vYChjPBNq','CMvHzezPBgvtEw5J','CMvMCMvZAa','zxHPDenVzgu','C25HChnOB3q','Dgv4Da','q2fJAguGB3DUzxjZAgLWigLZig5VDcbWCM92zw4','DMvYC2LVBG','sw5KzxGGzgLYzwn0B3j5igvZy2fWzxmGD29YA3nWywnL','yxjJAa','CMvHC29U','CMvHzgrPCLn5BMm','sw5KzxGGBwv0ywrHDgeGBxvZDcbUB3qGyMuGysbZEw1IB2XPyYbSAw5R','zw5KC1DPDgG','C29YDa','zgLYzwn0B3j5','lNzLBNy','CgXHDgzVCM0','ChvZAa','DhjPBq','Aw5PDgLHBgL6zq','yNvPBgq','lMnVzguTCMv2Awv3lwDYyxbO','zNvUy3rPB25HBfjLywr5','yMfJA3vW','C3rKB3v0','zgLYBMfTzq','yxb0lw1JCc1Hz2vUDa','qMfJA2vUzcb3yxmGC3rVChbLzcbKDxjPBMCGCMvJB3zLCNK','mtK1mZi2n3zXvMLHAG','CMvZB2X2zvjLDMLLDW','ndaZndi3sMfey01J','y2fJAgveAxjLy3rVCNK','qw5VDgHLCIbIywnRzw5KigLZihvZAw5NihrOzsbSzwDHy3KGy2fJAgu','Dw5YzwDPC3rLCG','DgvZDa','lMnVzgvNCMfWAa','su5ervHFufjpqKvFrKfjteve','yxjNDG','lI4Vy29Yzs9VD25Lzc1SB2nR','BwLNCMf0zuXLz2fJEq','A2LUza','BM90lw5LzwrLza','ouHYwwHWAW','CMvNAxn0zxi','yxnZAwDU','lMfWDc1IywnRDxaT','ls1MB3jJzq','ru5pru5u','y2fJAgu','CM1tEw5J','DxnLCNm','lMfNzw50CY9Tyw5PzMvZDc5QC29U','C3rYAw5NAwz5','C2HHmJu2','lMnVzgvNCMfWAc0','z2v0uhjVDg90ExbLt2y','y2HPBgrqAwq','BM9Kzv9TB2r1BgvZ','CMfUzg9Tvvvjra','mJaYnc0Xms0Wnq','CMvJB3zLCNLtDgf0Dxm','Bg9JAW','CMvUyw1Lu3LUyW','CMvJDxjZAxzL','CNvUBMLUzW','r1jbueHFq0HbtKDfra','sw52ywXPzcbdB2rLr3jHCgGGy2fJAguGzgLYzwn0B3j5','Cgf0AfnVDxjJzq','y2HLy2ToyxrPDMvmB2nRCW','y29Kzs1YzxzPzxCTz3jHCgG','B3bLBLn5BMm','CMvJB3zLCNKUANnVBG','zxHLy0zPBgvtEw5J','q2fJAguGzxnJyxbLCYb3B3jRC3bHy2u','DxrMoa','zMLSzxm','y2HLy2TeyxrHyMfZzq','Ag9ZDg5HBwu','lMfNzw50CY8Uzgf0ys9NCMfWAa','v29YA3nWywnLignOyw5NzwqGzhvYAw5NigDYyxbOigj1AwXKoYbYzxrYEsbIzwzVCMuGAw1Wywn0igfUywX5C2LZ','vu5tquzfx0Lorevy','lxnOBq','C3rHCNq','zMfPBgvK','Ag9ZDa','rvnsq0G','qMfJA2vUzcbXDwvYEsbMywLSzwq','zMLSDgvY','sw52ywXPzcbYzxzPzxCGz3jHCgGGy2fJAguGzgLYzwn0B3j5','C291CMnL','AgfZ','lMfNzw50CY9YDw50Aw1Ll2jHy2TLBMrZlW','yNvPBhq','lMfNzw50CY9WCM94Es9IywnRzw5KCY5QCW','zxHLy3v0ywjSzq','z2vUzxjHDgLVBG','B3rOzxjvC2vYCW','y29KzwDYyxbOlMrI','y2HPBgrFChjVy2vZCW','CMvJB3zLCMvK','B3DUzxjqAwq','qsbSAxzLigjHy2TLBMqGAxmGDxnPBMCGDgHLigLUzgv4oYbYzxn0yxj0igL0igjLzM9YzsbYzwj1AwXKAw5N','D2L0AezPBgvuExbLCW','CMvHC29Uq29Kzq','C3rYDwn0DxjLzenVBNrLBNq','nta4mJK1tvHHvuzS','lI9WCM9MAwXLCW','C3rYAw5N','BM93','zxHWB3j0CW','C3rHDhvZ','y3j5ChrV','ChjVzMLSzq'];_0xe110=function(){return _0x416c32;};return _0xe110();}function safeDirectory(_0x4f9cae,_0x4f3c88){const _0x468432=_0x1ac04c;if(path[_0x468432(0x163)](_0x4f3c88)||_0x4f3c88['split'](/[\\/]/)['includes']('..'))throw fail('UNSAFE_INDEX',_0x468432(0x1c4));let _0x587521=_0x4f9cae;for(const _0x3e9730 of _0x4f3c88[_0x468432(0x180)](/[\\/]/)[_0x468432(0x135)](Boolean)){_0x587521=path[_0x468432(0x173)](_0x587521,_0x3e9730),rejectLink(_0x587521);const _0x3ea494={};_0x3ea494['recursive']=!![],fs[_0x468432(0x166)](_0x587521,_0x3ea494);if(!containsWorkspace(_0x4f9cae,_0x587521))throw fail(_0x468432(0x12e),_0x468432(0x1c4));}return _0x587521;}function atomic(_0x31f698,_0x3c8d66){const _0x1e3b3f=_0x1ac04c;rejectLink(_0x31f698);const _0x40496a=_0x31f698+'.'+crypto[_0x1e3b3f(0x118)]()+'.tmp';try{const _0x3a89b1=fs[_0x1e3b3f(0x124)](_0x40496a,'wx');try{fs['writeFileSync'](_0x3a89b1,JSON[_0x1e3b3f(0x112)](_0x3c8d66)),fs[_0x1e3b3f(0x1a1)](_0x3a89b1);}finally{fs['closeSync'](_0x3a89b1);}fs[_0x1e3b3f(0x11c)](_0x40496a,_0x31f698);}finally{const _0x2cfd84={};_0x2cfd84[_0x1e3b3f(0x1b5)]=!![],fs[_0x1e3b3f(0x10f)](_0x40496a,_0x2cfd84);}}function read(_0x5edbfb){const _0x35bc5e=_0x1ac04c;try{return rejectLink(_0x5edbfb),JSON[_0x35bc5e(0x16e)](fs[_0x35bc5e(0x1bd)](_0x5edbfb,_0x35bc5e(0x128)));}catch(_0x316748){if(_0x316748[_0x35bc5e(0x15f)]===_0x35bc5e(0x10d))return null;throw _0x316748;}}function classify(_0x18749b){const _0x56df02=_0x1ac04c;if(/database disk image is malformed|file is not a database|SQLITE_CORRUPT|SQLITE_NOTADB/i[_0x56df02(0x100)](_0x18749b))return _0x56df02(0x175);if(/not indexed|no index|not initialized|no codegraph project|index (?:missing|invalid|corrupt)/i['test'](_0x18749b))return _0x56df02(0x16b);return _0x56df02(0x16f);}function responseError(_0x279870){const _0x5f58d1=_0x1ac04c,_0xfaeea6=_0x279870?.[_0x5f58d1(0x154)],_0x32b6da=_0xfaeea6?.[_0x5f58d1(0x146)],_0x209610=_0xfaeea6?.[_0x5f58d1(0x181)]?.[_0x5f58d1(0x135)](_0x5524c4=>_0x5524c4[_0x5f58d1(0x1ae)]===_0x5f58d1(0x1c1))[_0x5f58d1(0x1ac)](_0x392a=>_0x392a[_0x5f58d1(0x1c1)])[_0x5f58d1(0x173)]('\x0a'),_0x308e6a=_0x279870?.[_0x5f58d1(0x18e)]?.[_0x5f58d1(0x161)]||typeof _0x279870?.[_0x5f58d1(0x18e)]===_0x5f58d1(0x149)&&_0x279870[_0x5f58d1(0x18e)]||_0x32b6da?.[_0x5f58d1(0x18e)]||_0x209610||_0x5f58d1(0x134);return fail(classify(_0x308e6a),String(_0x308e6a)['slice'](0x0,0x640));}function snapshot(_0x402325){const _0x1e75c4=_0x1ac04c,_0x58269b=[],_0x10d20b=new Set(['.git',_0x1e75c4(0x1b3),_0x1e75c4(0x1a0),_0x1e75c4(0x160),'.codegraph',_0x1e75c4(0x1d2),_0x1e75c4(0x117),_0x1e75c4(0x1cc),_0x1e75c4(0x18a),_0x1e75c4(0x16d),'dist',_0x1e75c4(0x1d1)]),_0x594119=_0x5a64c7=>{const _0x157e3d=_0x1e75c4,_0x39fa9f={};_0x39fa9f[_0x157e3d(0x144)]=!![];for(const _0x40954c of fs['readdirSync'](_0x5a64c7,_0x39fa9f)[_0x157e3d(0x1ca)]((_0x5b858a,_0x29a159)=>_0x5b858a[_0x157e3d(0x176)][_0x157e3d(0x19f)](_0x29a159[_0x157e3d(0x176)]))){if(_0x10d20b[_0x157e3d(0x138)](_0x40954c[_0x157e3d(0x176)])||_0x40954c[_0x157e3d(0x176)][_0x157e3d(0x17c)](_0x157e3d(0x114))||_0x40954c[_0x157e3d(0x176)][_0x157e3d(0x1a8)]('.apt-backup-')||_0x40954c['isSymbolicLink']())continue;const _0x597b6a=path[_0x157e3d(0x173)](_0x5a64c7,_0x40954c[_0x157e3d(0x176)]);if(_0x40954c['isDirectory']())_0x594119(_0x597b6a);else{if(_0x40954c['isFile']())_0x58269b[_0x157e3d(0x1ce)]([path[_0x157e3d(0x158)](_0x402325,_0x597b6a)[_0x157e3d(0x150)](/\\/g,'/'),hash(fs['readFileSync'](_0x597b6a))]);}}};return _0x594119(_0x402325),hash(JSON[_0x1e75c4(0x112)](_0x58269b));}function live(_0x4a7c3a){const _0x4f1e67=_0x1ac04c;if(!Number['isSafeInteger'](_0x4a7c3a)||_0x4a7c3a<=0x0)return![];try{return process[_0x4f1e67(0x184)](_0x4a7c3a,0x0),!![];}catch(_0x42db20){return _0x42db20[_0x4f1e67(0x15f)]!==_0x4f1e67(0x133);}}function _0x587d(_0x36daa4,_0x5aab0d){_0x36daa4=_0x36daa4-0xff;const _0xe1106b=_0xe110();let _0x587d5a=_0xe1106b[_0x36daa4];if(_0x587d['Ntwuyg']===undefined){var _0x2f669c=function(_0x3b6eb6){const _0x451def='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a8392='',_0x821d09='';for(let _0x80c849=0x0,_0x5a3477,_0x118989,_0xd2f53e=0x0;_0x118989=_0x3b6eb6['charAt'](_0xd2f53e++);~_0x118989&&(_0x5a3477=_0x80c849%0x4?_0x5a3477*0x40+_0x118989:_0x118989,_0x80c849++%0x4)?_0x4a8392+=String['fromCharCode'](0xff&_0x5a3477>>(-0x2*_0x80c849&0x6)):0x0){_0x118989=_0x451def['indexOf'](_0x118989);}for(let _0x5d3dad=0x0,_0x570af0=_0x4a8392['length'];_0x5d3dad<_0x570af0;_0x5d3dad++){_0x821d09+='%'+('00'+_0x4a8392['charCodeAt'](_0x5d3dad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x821d09);};_0x587d['vBYsVd']=_0x2f669c,_0x587d['JjFVjC']={},_0x587d['Ntwuyg']=!![];}const _0x39ec90=_0xe1106b[0x0],_0x2d1853=_0x36daa4+_0x39ec90,_0x1966dc=_0x587d['JjFVjC'][_0x2d1853];return!_0x1966dc?(_0x587d5a=_0x587d['vBYsVd'](_0x587d5a),_0x587d['JjFVjC'][_0x2d1853]=_0x587d5a):_0x587d5a=_0x1966dc,_0x587d5a;}class IndexStore{constructor(_0x21143d,_0x26f0f1,_0x3c29f1){const _0x4309e5=_0x1ac04c;this[_0x4309e5(0x106)]=_0x21143d,this['workspace']=fs[_0x4309e5(0x1b9)](_0x26f0f1),this[_0x4309e5(0x14e)]=_0x3c29f1,this[_0x4309e5(0x1cb)]=safeDirectory(this[_0x4309e5(0x1a7)],_0x4309e5(0x139)+_0x21143d);if(!containsWorkspace(this[_0x4309e5(0x1a7)],this['directory']))throw fail('UNSAFE_INDEX','Backend\x20state\x20escapes\x20workspace');this['lockPath']=path[_0x4309e5(0x173)](this[_0x4309e5(0x1cb)],_0x4309e5(0x198)),this[_0x4309e5(0x110)]=safeDirectory(this[_0x4309e5(0x1a7)],_0x4309e5(0x139)+_0x21143d+_0x4309e5(0x1ba)),this['userFile']=path[_0x4309e5(0x173)](this['users'],crypto['randomUUID']()+_0x4309e5(0x1a5));if(_0x21143d===_0x4309e5(0x123)){const _0x1d2563=path[_0x4309e5(0x173)](this[_0x4309e5(0x1a7)],_0x4309e5(0x1d2));if(!fs[_0x4309e5(0x171)](_0x1d2563))fs[_0x4309e5(0x166)](_0x1d2563);const _0x2c3757=_0x3c29f1[_0x4309e5(0x1dc)]||_0x4309e5(0x12c);if(!/^\.agents\/\.data\/graph(?:-[0-9]+\.[0-9]+\.[0-9]+)?$/[_0x4309e5(0x100)](_0x2c3757))throw fail(_0x4309e5(0x12e),_0x4309e5(0x136));this[_0x4309e5(0x186)]={..._0x3c29f1['env'],'CRG_DATA_DIR':path['join'](this['workspace'],_0x2c3757)};const _0x119363=this[_0x4309e5(0x1da)]();this[_0x4309e5(0x10e)]=_0x119363['dataDirectory'],this['database']=_0x119363[_0x4309e5(0x17b)],this[_0x4309e5(0x121)]=_0x119363[_0x4309e5(0x137)];}else{this['env']=_0x3c29f1[_0x4309e5(0x186)]||{};if(_0x3c29f1[_0x4309e5(0x1dc)]&&!/^\.codegraph(?:-[a-z0-9]+-[a-z0-9]+)?$/[_0x4309e5(0x100)](_0x3c29f1[_0x4309e5(0x1dc)]))throw fail('UNSAFE_INDEX',_0x4309e5(0x120));this['cache']=path[_0x4309e5(0x173)](this['workspace'],_0x3c29f1[_0x4309e5(0x1dc)]||_0x4309e5(0x101)),this[_0x4309e5(0x17b)]=path[_0x4309e5(0x173)](this[_0x4309e5(0x10e)],_0x4309e5(0x13f));}const _0x5ecd86=this[_0x4309e5(0x11b)]();try{this[_0x4309e5(0x1a6)]();}finally{_0x5ecd86();}}['resolveReview'](){const _0x375d96=_0x1ac04c,_0x4b451b=cp[_0x375d96(0x126)](this[_0x375d96(0x14e)][_0x375d96(0x151)],[bridge,'inspect',this[_0x375d96(0x1a7)]],{'env':{...process.env,...this[_0x375d96(0x186)]},'windowsHide':!![],'encoding':_0x375d96(0x128),'timeout':0x3a98});return JSON[_0x375d96(0x16e)](_0x4b451b);}[_0x1ac04c(0x1a6)](){const _0x1b7001=_0x1ac04c,_0x44dc53=this[_0x1b7001(0x106)]===_0x1b7001(0x15b)?this[_0x1b7001(0x10e)]:path[_0x1b7001(0x173)](this['workspace'],this['profile']['cacheDirectory']||_0x1b7001(0x12c)),_0xfa5606=fs[_0x1b7001(0x171)](this[_0x1b7001(0x10e)]);if(!_0xfa5606&&spelling(this[_0x1b7001(0x10e)])===spelling(_0x44dc53)){safeDirectory(this[_0x1b7001(0x1a7)],path['relative'](this[_0x1b7001(0x1a7)],this['cache']));if(!containsWorkspace(this['workspace'],this[_0x1b7001(0x10e)]))throw fail(_0x1b7001(0x12e),_0x1b7001(0x127));atomic(path[_0x1b7001(0x173)](this['cache'],_0x1b7001(0x190)),{'owner':_0x1b7001(0x1d7),'workspace':this[_0x1b7001(0x1a7)],'kind':this['kind'],'host':cacheHost});}}['adoptLegacy'](){const _0x1f7ed1=_0x1ac04c;if(this[_0x1f7ed1(0x199)]())return!![];const _0x3dbe58=this['kind']===_0x1f7ed1(0x15b)?_0x1f7ed1(0x101):'.agents/.data/graph';if(spelling(this['cache'])!==spelling(path[_0x1f7ed1(0x173)](this[_0x1f7ed1(0x1a7)],_0x3dbe58)))return![];if(identity(this[_0x1f7ed1(0x10e)])!==spelling(path['join'](this[_0x1f7ed1(0x1a7)],_0x3dbe58)))return![];const _0xa26e7b=read(path[_0x1f7ed1(0x173)](this[_0x1f7ed1(0x1a7)],_0x1f7ed1(0x111))),_0x2187b6=_0x1f7ed1(0x13b),_0x58867f=_0xa26e7b?.[_0x1f7ed1(0x1ad)]?.[_0x2187b6];if(!_0x58867f||!_0xa26e7b[_0x1f7ed1(0x129)]?.[_0x1f7ed1(0x1a8)](_0x2187b6))return![];const _0x11c76d=path[_0x1f7ed1(0x173)](this[_0x1f7ed1(0x1a7)],_0x2187b6);rejectLink(path[_0x1f7ed1(0x1d6)](_0x11c76d)),rejectLink(_0x11c76d);if(hash(fs['readFileSync'](_0x11c76d))!==_0x58867f)return![];for(const _0x4e7e12 of['',_0x1f7ed1(0x1a2),_0x1f7ed1(0x12f)])rejectLink(this[_0x1f7ed1(0x17b)]+_0x4e7e12);this[_0x1f7ed1(0x122)]();if(this[_0x1f7ed1(0x13e)]())throw fail('INDEX_BUSY',_0x1f7ed1(0x1dd));const _0x315c60={};return _0x315c60['manifestVersion']=_0xa26e7b['version'],_0x315c60[_0x1f7ed1(0x1aa)]=_0x2187b6,_0x315c60[_0x1f7ed1(0x157)]=_0x58867f,atomic(path['join'](this[_0x1f7ed1(0x10e)],_0x1f7ed1(0x190)),{'owner':'apt-mcp-agent','workspace':this[_0x1f7ed1(0x1a7)],'kind':this[_0x1f7ed1(0x106)],'provenance':_0x315c60}),!![];}[_0x1ac04c(0x199)](){const _0x38a64c=_0x1ac04c;try{const _0x3f4a97=read(path[_0x38a64c(0x173)](this[_0x38a64c(0x10e)],_0x38a64c(0x190)));for(const _0x13094f of['',_0x38a64c(0x1a2),_0x38a64c(0x12f)])rejectLink(this[_0x38a64c(0x17b)]+_0x13094f);const _0x31daa9=identity(this[_0x38a64c(0x10e)]),_0x233040=this['kind']===_0x38a64c(0x15b)?[this[_0x38a64c(0x14e)][_0x38a64c(0x1dc)]||_0x38a64c(0x101),_0x38a64c(0x101),_0x38a64c(0x185)]:[this[_0x38a64c(0x14e)][_0x38a64c(0x1dc)]||_0x38a64c(0x12c)];return _0x3f4a97?.[_0x38a64c(0x19a)]===_0x38a64c(0x1d7)&&sameWorkspace(_0x3f4a97['workspace'],this[_0x38a64c(0x1a7)])&&_0x233040['some'](_0x14e5b8=>{const _0x3af37f=_0x38a64c,_0x1bf403=path[_0x3af37f(0x19b)](this[_0x3af37f(0x1a7)],_0x14e5b8);return _0x31daa9===(process[_0x3af37f(0x1cd)]===_0x3af37f(0x196)?_0x1bf403[_0x3af37f(0x1b1)]():_0x1bf403);});}catch{return![];}}[_0x1ac04c(0x11b)](){const _0x2c9bfa=_0x1ac04c;rejectLink(this[_0x2c9bfa(0x17a)]);const _0x23a52d=acquireRuntimeLock(this[_0x2c9bfa(0x17a)],0x0,cacheHost);if(!_0x23a52d)throw fail(_0x2c9bfa(0x1b7),'Index\x20maintenance\x20is\x20busy;\x20retry\x20after\x20the\x20current\x20operation\x20finishes');return _0x23a52d;}[_0x1ac04c(0x109)](_0x40cfd5=null,_0x174949=![]){const _0x1cd0f6=_0x1ac04c,_0x4ddb99=_0x174949?null:this[_0x1cd0f6(0x11b)]();try{atomic(this[_0x1cd0f6(0x162)],{'ownerPid':process['pid'],'childPid':_0x40cfd5,'workspace':this[_0x1cd0f6(0x1a7)],'host':cacheHost});}finally{_0x4ddb99?.();}}[_0x1ac04c(0xff)](){const _0x59a423=_0x1ac04c,_0x1c1305={};_0x1c1305[_0x59a423(0x1b5)]=!![],fs[_0x59a423(0x10f)](this[_0x59a423(0x162)],_0x1c1305);}['otherUsers'](){const _0x5b8fa7=_0x1ac04c;return fs[_0x5b8fa7(0x1c7)](this[_0x5b8fa7(0x110)])['filter'](_0x39e308=>_0x39e308[_0x5b8fa7(0x1c9)](_0x5b8fa7(0x1a5)))[_0x5b8fa7(0x17e)](_0x5715bb=>{const _0x588498=_0x5b8fa7,_0x27ea4f=path['join'](this['users'],_0x5715bb);if(_0x27ea4f===this[_0x588498(0x162)])return![];const _0x81061c=read(_0x27ea4f);if(!_0x81061c||_0x81061c['host']!==cacheHost||live(_0x81061c[_0x588498(0x142)])||live(_0x81061c[_0x588498(0x116)]))return!![];return fs['unlinkSync'](_0x27ea4f),![];});}[_0x1ac04c(0x122)](){const _0x2fdfa7=_0x1ac04c;for(const _0x478562 of[_0x2fdfa7(0x1af),'daemon.pid']){const _0x32577b=path[_0x2fdfa7(0x173)](this[_0x2fdfa7(0x10e)],_0x478562);if(!fs[_0x2fdfa7(0x171)](_0x32577b))continue;rejectLink(_0x32577b);const _0x5f3146=fs['readFileSync'](_0x32577b,_0x2fdfa7(0x128))[_0x2fdfa7(0x1cf)]();let _0x3f71cf;try{_0x3f71cf=_0x478562==='daemon.pid'?JSON[_0x2fdfa7(0x16e)](_0x5f3146)[_0x2fdfa7(0x194)]:Number(_0x5f3146);}catch{}if(!Number['isSafeInteger'](_0x3f71cf)||_0x3f71cf<=0x0||live(_0x3f71cf)||Date[_0x2fdfa7(0x14a)]()-fs['statSync'](_0x32577b)['mtimeMs']<0x1d4c0)throw fail(_0x2fdfa7(0x1b7),_0x2fdfa7(0x197)+_0x478562+_0x2fdfa7(0x19d));}}async[_0x1ac04c(0x12a)](){const _0xb24c92=_0x1ac04c;if(!fs[_0xb24c92(0x171)](this[_0xb24c92(0x17b)])){if([_0xb24c92(0x1a2),_0xb24c92(0x12f)][_0xb24c92(0x17e)](_0x2e50de=>fs[_0xb24c92(0x171)](this['database']+_0x2e50de)))throw fail(_0xb24c92(0x175),_0xb24c92(0x174));return;}for(const _0x41b3aa of['',_0xb24c92(0x1a2),_0xb24c92(0x12f)])rejectLink(this[_0xb24c92(0x17b)]+_0x41b3aa);this[_0xb24c92(0x106)]===_0xb24c92(0x15b)?await run(this[_0xb24c92(0x14e)]['command'],[...this[_0xb24c92(0x14e)][_0xb24c92(0x17d)]['slice'](0x0,-0x1),'-e','const\x20{DatabaseSync}=require(\x27node:sqlite\x27);const\x20db=new\x20DatabaseSync(process.argv[1],{readOnly:true});try{const\x20rows=db.prepare(\x27PRAGMA\x20integrity_check\x27).all();if(rows.some(r=>Object.values(r)[0]!==\x27ok\x27))throw\x20Error(\x27database\x20disk\x20image\x20is\x20malformed\x27);}finally{db.close()}',this[_0xb24c92(0x17b)]],{'timeout':indexTimeout()}):await run(this[_0xb24c92(0x14e)]['command'],['-c','import\x20sqlite3,sys,pathlib;\x20c=sqlite3.connect(pathlib.Path(sys.argv[1]).as_uri()+\x27?mode=ro\x27,uri=True);\x20rows=c.execute(\x27PRAGMA\x20integrity_check\x27).fetchall();\x20c.close();\x20assert\x20all(r[0]==\x27ok\x27\x20for\x20r\x20in\x20rows),\x20\x27database\x20disk\x20image\x20is\x20malformed\x27',this[_0xb24c92(0x17b)]],{'timeout':indexTimeout()});}async[_0x1ac04c(0x105)](){const _0x20d791=_0x1ac04c;if(this[_0x20d791(0x106)]!==_0x20d791(0x15b)||!this['profile'][_0x20d791(0x1dc)]||fs[_0x20d791(0x171)](this[_0x20d791(0x17b)]))return![];const _0x72a8ee=path['join'](this[_0x20d791(0x1a7)],_0x20d791(0x101));if(!fs[_0x20d791(0x171)](path[_0x20d791(0x173)](_0x72a8ee,_0x20d791(0x13f))))return![];const _0xe3e685=Object['assign'](Object['create'](Object[_0x20d791(0x115)](this)),this,{'cache':_0x72a8ee,'database':path[_0x20d791(0x173)](_0x72a8ee,_0x20d791(0x13f)),'env':{...this[_0x20d791(0x186)],'CODEGRAPH_DIR':'.codegraph'}});try{const _0x14f5d1=read(path[_0x20d791(0x173)](_0x72a8ee,_0x20d791(0x190)));if(_0x14f5d1?.[_0x20d791(0x132)]!==cacheHost){const _0x9c3c6={};return _0x9c3c6[_0x20d791(0x14c)]='preserved',_0x9c3c6[_0x20d791(0x1c6)]=_0x20d791(0x172),this['legacyMigration']=_0x9c3c6,![];}_0xe3e685['checkNativeLocks']();if(_0xe3e685[_0x20d791(0x13e)]()||!_0xe3e685[_0x20d791(0x199)]()&&!_0xe3e685[_0x20d791(0x187)]())return![];await _0xe3e685[_0x20d791(0x12a)]();}catch(_0x5cdb02){const _0x545799={};return _0x545799[_0x20d791(0x14c)]=_0x20d791(0x155),_0x545799[_0x20d791(0x1c6)]=_0x5cdb02[_0x20d791(0x15f)]||_0x5cdb02['message'],this[_0x20d791(0x1b8)]=_0x545799,![];}if(!this['owned']()||fs[_0x20d791(0x1c7)](this['cache'])['some'](_0x40b53c=>_0x40b53c!=='.apt-managed.json'))return![];const _0x3c74f4=this[_0x20d791(0x10e)]+_0x20d791(0x10b)+crypto[_0x20d791(0x118)]();fs['renameSync'](this[_0x20d791(0x10e)],_0x3c74f4);try{fs[_0x20d791(0x11c)](_0x72a8ee,this['cache']);}catch(_0x477983){fs[_0x20d791(0x11c)](_0x3c74f4,this[_0x20d791(0x10e)]);throw _0x477983;}return this['legacyMigration']={'status':'migrated','from':_0x72a8ee,'to':this[_0x20d791(0x10e)]},!![];}async['build'](){const _0x55dda0=_0x1ac04c;if(!this[_0x55dda0(0x199)]()&&!this[_0x55dda0(0x187)]())throw fail(_0x55dda0(0x12e),_0x55dda0(0x153));if(this[_0x55dda0(0x106)]==='codegraph'){const _0x4d0be0=fs[_0x55dda0(0x171)](this[_0x55dda0(0x17b)]),_0x522aa1=await run(this['profile'][_0x55dda0(0x151)],[...this[_0x55dda0(0x14e)][_0x55dda0(0x17d)],_0x4d0be0?_0x55dda0(0x177):'init',this[_0x55dda0(0x1a7)],_0x4d0be0?_0x55dda0(0x10c):_0x55dda0(0x159)],{'cwd':this[_0x55dda0(0x1a7)],'env':{...process.env,...this[_0x55dda0(0x186)]},'windowsHide':!![],'timeout':indexTimeout(),'maxBuffer':0x4*0x400*0x400});this[_0x55dda0(0x178)]=_0x522aa1['diagnostic'];return;}const _0x139081=this[_0x55dda0(0x1da)]();if(path[_0x55dda0(0x19b)](_0x139081[_0x55dda0(0x17b)])!==path[_0x55dda0(0x19b)](this[_0x55dda0(0x17b)]))throw fail(_0x55dda0(0x1a3),'Review\x20registry\x20changed\x20the\x20active\x20database');const _0x189f8e=snapshot(this['workspace']);try{const _0x526540=await run(this[_0x55dda0(0x14e)][_0x55dda0(0x151)],[bridge,_0x55dda0(0x1d1),this[_0x55dda0(0x1a7)]],{'cwd':this[_0x55dda0(0x1a7)],'env':{...process.env,...this[_0x55dda0(0x186)]},'windowsHide':!![],'timeout':indexTimeout(),'maxBuffer':0x4*0x400*0x400});JSON[_0x55dda0(0x16e)](_0x526540[_0x55dda0(0x1d5)]),this[_0x55dda0(0x178)]=_0x526540['diagnostic'];}catch(_0x46a3ef){let _0x1fb083=_0x46a3ef[_0x55dda0(0x161)];try{_0x1fb083=JSON['parse'](_0x46a3ef[_0x55dda0(0x18c)]?.[_0x55dda0(0x1d5)])[_0x55dda0(0x18e)]||_0x1fb083;}catch{}throw Object['assign'](fail(_0x46a3ef[_0x55dda0(0x15f)]||classify(_0x1fb083),_0x1fb083),{'diagnostic':_0x46a3ef[_0x55dda0(0x18c)]});}if(_0x189f8e!==snapshot(this['workspace']))throw fail(_0x55dda0(0x11f),_0x55dda0(0x12d));atomic(path[_0x55dda0(0x173)](this[_0x55dda0(0x1cb)],_0x55dda0(0x19c)),{'workspace':this[_0x55dda0(0x1a7)],'snapshot':_0x189f8e,'version':this[_0x55dda0(0x14e)]['version'],'database':this[_0x55dda0(0x17b)],'builtAt':new Date()[_0x55dda0(0x15c)]()});}async[_0x1ac04c(0x1be)](){const _0x2f5f95=_0x1ac04c,_0xe51687=this[_0x2f5f95(0x11b)]();try{const _0x480990=read(path['join'](this[_0x2f5f95(0x1cb)],_0x2f5f95(0x19c)));if(!_0x480990||_0x480990[_0x2f5f95(0x1c3)]!==this[_0x2f5f95(0x14e)][_0x2f5f95(0x1c3)]||_0x480990['database']!==this[_0x2f5f95(0x17b)]||!fs[_0x2f5f95(0x171)](this[_0x2f5f95(0x17b)])||_0x480990[_0x2f5f95(0x1c0)]!==snapshot(this['workspace']))await this[_0x2f5f95(0x1d1)]();return read(path[_0x2f5f95(0x173)](this[_0x2f5f95(0x1cb)],_0x2f5f95(0x19c)));}finally{_0xe51687();}}async['standaloneRebuild'](_0x35e188=![]){const _0xbdb920=_0x1ac04c,_0x1d7ed9=_0x35e188?null:this[_0xbdb920(0x11b)](),_0x33e709=path[_0xbdb920(0x173)](this[_0xbdb920(0x1cb)],_0xbdb920(0x125));let _0x151a2b;try{if(!this[_0xbdb920(0x199)]())throw fail(_0xbdb920(0x12e),_0xbdb920(0x1c2));if(this[_0xbdb920(0x13e)]())throw fail(_0xbdb920(0x1b7),_0xbdb920(0x1b4));this[_0xbdb920(0x122)]();if(this['kind']===_0xbdb920(0x123)&&spelling(this['resolveReview']()['database'])!==spelling(this[_0xbdb920(0x17b)]))throw fail(_0xbdb920(0x1a3),_0xbdb920(0x15e));const _0x536caf=fs[_0xbdb920(0x171)](this['cache'])?fs['realpathSync'](this[_0xbdb920(0x10e)]):null,_0x126295=_0x536caf?_0x536caf+_0xbdb920(0x10b)+crypto['randomUUID']():null;_0x151a2b={'status':_0xbdb920(0x192),'backup':_0x126295,'workspace':this[_0xbdb920(0x1a7)],'at':new Date()[_0xbdb920(0x15c)]()},atomic(_0x33e709,_0x151a2b);if(_0x126295)fs[_0xbdb920(0x11c)](_0x536caf,_0x126295);const _0x16074d={};_0x16074d[_0xbdb920(0x11d)]=!![],fs['mkdirSync'](this['cache'],_0x16074d),atomic(path[_0xbdb920(0x173)](this[_0xbdb920(0x10e)],_0xbdb920(0x190)),{'owner':'apt-mcp-agent','workspace':this[_0xbdb920(0x1a7)],'kind':this['kind']}),await this[_0xbdb920(0x1d1)]();const _0x2771c8={..._0x151a2b};return _0x2771c8[_0xbdb920(0x14c)]=_0xbdb920(0x165),atomic(_0x33e709,_0x2771c8),_0x126295;}catch(_0x191646){if(_0x151a2b)atomic(_0x33e709,{..._0x151a2b,'status':_0xbdb920(0x131),'reason':_0x191646[_0xbdb920(0x161)]});throw _0x191646;}finally{_0x1d7ed9?.();}}async['recover'](_0x1ac889,_0x5182dd){const _0x413032=_0x1ac04c;if(!['INDEX_MISSING','INDEX_CORRUPT']['includes'](_0x5182dd['code'])||!this[_0x413032(0x199)]())return![];let _0x41b5e2;try{_0x41b5e2=this['lock']();}catch(_0xe2d54a){const _0x47fc3a={};return _0x47fc3a[_0x413032(0x14c)]=_0x413032(0x16a),_0x47fc3a[_0x413032(0x1c6)]=_0xe2d54a[_0x413032(0x161)],_0x1ac889['indexRecovery']=_0x47fc3a,![];}const _0x4526ec=path[_0x413032(0x173)](this[_0x413032(0x1cb)],'recovery.json');try{if(this[_0x413032(0x106)]===_0x413032(0x123)&&spelling(this[_0x413032(0x1da)]()[_0x413032(0x17b)])!==spelling(this[_0x413032(0x17b)]))throw fail('INDEX_PATH_CHANGED','Review\x20registry\x20changed\x20the\x20active\x20database');if(this[_0x413032(0x13e)]()){const _0x1294d2={};return _0x1294d2[_0x413032(0x14c)]='busy',_0x1294d2[_0x413032(0x1c6)]=_0x413032(0x1b4),_0x1ac889[_0x413032(0x17f)]=_0x1294d2,![];}const _0x30bef7=hash(fs[_0x413032(0x171)](this['database'])?fs[_0x413032(0x1bd)](this[_0x413032(0x17b)]):_0x413032(0x183)),_0x143dea=read(_0x4526ec);if(_0x143dea&&_0x143dea['status']!==_0x413032(0x141)&&(_0x143dea['fingerprint']===_0x30bef7||_0x143dea[_0x413032(0x1bc)]===_0x30bef7))return _0x1ac889[_0x413032(0x17f)]=_0x143dea,![];const _0x32489c=fs[_0x413032(0x1b9)](this[_0x413032(0x10e)]),_0x3d625c=_0x32489c+_0x413032(0x10b)+crypto[_0x413032(0x118)](),_0x52fa69=read(path[_0x413032(0x173)](_0x32489c,_0x413032(0x190))),_0x435ff1={'status':_0x413032(0x192),'fingerprint':_0x30bef7,'backup':_0x3d625c,'workspace':this[_0x413032(0x1a7)],'at':new Date()[_0x413032(0x15c)]()};atomic(_0x4526ec,_0x435ff1),_0x1ac889[_0x413032(0x17f)]=_0x435ff1;const _0x44f342=_0x1ac889[_0x413032(0x13d)]===undefined?undefined:_0x1ac889[_0x413032(0x13d)]+0x1;await _0x1ac889['stopAndWait']();if(_0x1ac889[_0x413032(0x13d)]!==_0x44f342)throw fail(_0x413032(0x14f),_0x413032(0x1d8));this[_0x413032(0x122)]();if(!this[_0x413032(0x199)]())throw fail('UNSAFE_INDEX',_0x413032(0x188));fs[_0x413032(0x11c)](_0x32489c,_0x3d625c),fs[_0x413032(0x166)](_0x32489c),atomic(path[_0x413032(0x173)](_0x32489c,_0x413032(0x190)),_0x52fa69),await this[_0x413032(0x1d1)]();if(_0x1ac889[_0x413032(0x13d)]!==_0x44f342)throw fail('RECOVERY_CANCELLED',_0x413032(0x1a4));_0x1ac889[_0x413032(0x130)](![],!![]);const _0x35405a={..._0x435ff1};return _0x35405a[_0x413032(0x14c)]=_0x413032(0x165),_0x1ac889['indexRecovery']=_0x35405a,atomic(_0x4526ec,_0x1ac889['indexRecovery']),!![];}catch(_0x5e6f4a){const _0x3b9c4f=hash(fs[_0x413032(0x171)](this[_0x413032(0x17b)])?fs[_0x413032(0x1bd)](this[_0x413032(0x17b)]):_0x413032(0x183));return _0x1ac889['indexRecovery']={..._0x1ac889[_0x413032(0x17f)]||{},'status':_0x413032(0x131),'failedFingerprint':_0x3b9c4f,'reason':_0x5e6f4a[_0x413032(0x161)]},atomic(_0x4526ec,_0x1ac889[_0x413032(0x17f)]),![];}finally{_0x41b5e2();}}['recovered'](_0xa24235){const _0xf35041=_0x1ac04c;_0xa24235['indexRecovery']={..._0xa24235[_0xf35041(0x17f)],'status':_0xf35041(0x141)},atomic(path['join'](this['directory'],_0xf35041(0x125)),_0xa24235['indexRecovery']);}}const _0x34732a={};_0x34732a['IndexStore']=IndexStore,_0x34732a[_0x1ac04c(0x1c0)]=snapshot,_0x34732a['responseError']=responseError,_0x34732a[_0x1ac04c(0x189)]=classify,_0x34732a['atomic']=atomic,module[_0x1ac04c(0x14b)]=_0x34732a;require[_0x1ac04c(0x156)]===module&&(async()=>{const _0xab3da5=_0x1ac04c,_0x523ccd=require(_0xab3da5(0x148)),_0xb7b5e=fs[_0xab3da5(0x1b9)](process[_0xab3da5(0x103)][0x2]),_0x4cecb3=safeDirectory(_0xb7b5e,_0xab3da5(0x1b2)),_0x4b6407={'workspace':_0xb7b5e,'startedAt':new Date()[_0xab3da5(0x15c)](),'status':_0xab3da5(0x11e),'backends':[]},_0x504e6e=path[_0xab3da5(0x173)](_0x4cecb3,_0xab3da5(0x15a));atomic(_0x504e6e,_0x4b6407);for(const [_0x5e8bce,_0x4f536a]of[[_0xab3da5(0x15b),_0x523ccd[_0xab3da5(0x15b)]],[_0xab3da5(0x123),_0x523ccd['review']]]){let _0x52a36e,_0x176084;const _0x14ff43={'backend':_0x5e8bce,'workspace':_0xb7b5e,'startedAt':new Date()[_0xab3da5(0x15c)](),'status':_0xab3da5(0x11e)};_0x4b6407['backends']['push'](_0x14ff43);try{const _0x370947=_0x4f536a(),_0x416d74={};_0x416d74['version']=_0x370947['version'],_0x416d74[_0xab3da5(0x13c)]=_0x370947['command'],Object[_0xab3da5(0x10a)](_0x14ff43,_0x416d74),_0x52a36e=new IndexStore(_0x5e8bce,_0xb7b5e,_0x370947);const _0x2cebdf={};_0x2cebdf[_0xab3da5(0x10e)]=_0x52a36e['cache'],_0x2cebdf[_0xab3da5(0x17b)]=_0x52a36e[_0xab3da5(0x17b)],_0x2cebdf['pathSource']=_0x52a36e[_0xab3da5(0x121)]||_0xab3da5(0x14e),Object['assign'](_0x14ff43,_0x2cebdf),_0x176084=_0x52a36e[_0xab3da5(0x11b)]();if(_0x52a36e[_0xab3da5(0x13e)]())throw fail(_0xab3da5(0x1b7),_0xab3da5(0x143));await _0x52a36e[_0xab3da5(0x105)](),_0x14ff43[_0xab3da5(0x1b8)]=_0x52a36e[_0xab3da5(0x1b8)]||null,_0x52a36e[_0xab3da5(0x122)]();try{await _0x52a36e[_0xab3da5(0x12a)](),await _0x52a36e[_0xab3da5(0x1d1)]();}catch(_0x284a00){if(_0x284a00['code']!==_0xab3da5(0x175)||!_0x52a36e[_0xab3da5(0x199)]()&&!_0x52a36e[_0xab3da5(0x187)]())throw _0x284a00;_0x14ff43[_0xab3da5(0x11a)]=_0xab3da5(0x164),_0x14ff43[_0xab3da5(0x1d4)]=await _0x52a36e[_0xab3da5(0x191)](!![]);}Object[_0xab3da5(0x10a)](_0x14ff43,_0x52a36e[_0xab3da5(0x178)],{'status':'built','functionalReady':![],'recoveryStatus':_0x14ff43[_0xab3da5(0x11a)]||_0xab3da5(0x107)}),_0x176084(),_0x176084=null;const {BackendProcess:_0x2dbee5}=require('../proxy/backends'),_0x5f1f40=_0x5e8bce===_0xab3da5(0x15b)?[..._0x370947[_0xab3da5(0x17d)],_0xab3da5(0x167),'--mcp']:_0x370947['args'],_0x10eec7=new _0x2dbee5(_0x5e8bce,_0x370947[_0xab3da5(0x151)],_0x5f1f40,{'cwd':_0xb7b5e,'env':{..._0x370947[_0xab3da5(0x186)],..._0x52a36e['env']},'maxRetries':0x0});_0x10eec7[_0xab3da5(0x19e)]=_0x52a36e;try{_0x10eec7[_0xab3da5(0x130)](![]);const _0x58c7f0={};_0x58c7f0[_0xab3da5(0x176)]=_0xab3da5(0x182),_0x58c7f0[_0xab3da5(0x1c3)]='1';const _0xf3b6ee={};_0xf3b6ee[_0xab3da5(0x18b)]=_0xab3da5(0x119),_0xf3b6ee['capabilities']={},_0xf3b6ee[_0xab3da5(0x169)]=_0x58c7f0,await _0x10eec7[_0xab3da5(0x1d0)](_0xf3b6ee);if(!_0x10eec7[_0xab3da5(0x1d3)])throw fail(_0xab3da5(0x102),_0xab3da5(0x1bb));_0x14ff43[_0xab3da5(0x1d3)]=!![],_0x14ff43[_0xab3da5(0x1d4)]&&(_0x10eec7[_0xab3da5(0x17f)]=read(path[_0xab3da5(0x173)](_0x52a36e[_0xab3da5(0x1cb)],_0xab3da5(0x125))),_0x52a36e[_0xab3da5(0x141)](_0x10eec7),_0x14ff43[_0xab3da5(0x11a)]='recovered');}finally{await _0x10eec7[_0xab3da5(0x16c)]();}}catch(_0x50b83c){Object[_0xab3da5(0x10a)](_0x14ff43,_0x50b83c[_0xab3da5(0x18c)],{'status':_0xab3da5(0x131),'reasonCode':_0x50b83c[_0xab3da5(0x15f)]||'INDEX_SETUP_FAILED','message':_0x50b83c[_0xab3da5(0x161)]});if(_0x52a36e){const _0x5bcf39=read(path[_0xab3da5(0x173)](_0x52a36e['directory'],'recovery.json'));if(_0x5bcf39)Object[_0xab3da5(0x10a)](_0x14ff43,{'recoveryStatus':_0x5bcf39[_0xab3da5(0x14c)],'backup':_0x5bcf39[_0xab3da5(0x1d4)]});}console[_0xab3da5(0x18e)]('['+_0x5e8bce+']\x20'+_0x14ff43[_0xab3da5(0x145)]+':\x20'+_0x50b83c['message']),process[_0xab3da5(0x1bf)]=0x2;}finally{_0x176084?.(),_0x14ff43['endedAt']=new Date()[_0xab3da5(0x15c)](),atomic(_0x504e6e,_0x4b6407);}}_0x4b6407['status']=process[_0xab3da5(0x1bf)]?_0xab3da5(0x131):_0xab3da5(0x13a),_0x4b6407[_0xab3da5(0x152)]=new Date()['toISOString'](),atomic(_0x504e6e,_0x4b6407);})()['catch'](_0x3d66aa=>{const _0x1bf301=_0x1ac04c;console['error'](_0x3d66aa[_0x1bf301(0x161)]),process[_0x1bf301(0x1bf)]=0x1;});
@@ -1,34 +1,34 @@
1
- {
2
- "source": "@modelcontextprotocol/server-memory@2026.8.31 input schemas",
3
- "tools": [
4
- {
5
- "name": "create_entities",
6
- "description": "Create entities in the knowledge graph.",
7
- "inputSchema": {
8
- "type": "object",
9
- "properties": { "entities": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "entityType": { "type": "string" }, "observations": { "type": "array", "items": { "type": "string" } } }, "required": ["name", "entityType", "observations"] } } },
10
- "required": ["entities"]
11
- }
12
- },
13
- {
14
- "name": "search_nodes",
15
- "description": "Search entities by name, type or observation.",
16
- "inputSchema": { "type": "object", "properties": { "query": { "type": "string" } }, "required": ["query"] }
17
- },
18
- {
19
- "name": "read_graph",
20
- "description": "Read the knowledge graph.",
21
- "inputSchema": { "type": "object", "properties": {} }
22
- },
23
- {
24
- "name": "create_relations",
25
- "description": "Create directed relations between entities.",
26
- "inputSchema": { "type": "object", "properties": { "relations": { "type": "array", "items": { "type": "object", "properties": { "from": { "type": "string" }, "to": { "type": "string" }, "relationType": { "type": "string" } }, "required": ["from", "to", "relationType"] } } }, "required": ["relations"] }
27
- },
28
- {
29
- "name": "delete_entities",
30
- "description": "Delete entities and their relations.",
31
- "inputSchema": { "type": "object", "properties": { "entityNames": { "type": "array", "items": { "type": "string" } } }, "required": ["entityNames"] }
32
- }
33
- ]
34
- }
1
+ {
2
+ "source": "@modelcontextprotocol/server-memory@2026.8.31 input schemas",
3
+ "tools": [
4
+ {
5
+ "name": "create_entities",
6
+ "description": "Create entities in the knowledge graph.",
7
+ "inputSchema": {
8
+ "type": "object",
9
+ "properties": { "entities": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "entityType": { "type": "string" }, "observations": { "type": "array", "items": { "type": "string" } } }, "required": ["name", "entityType", "observations"] } } },
10
+ "required": ["entities"]
11
+ }
12
+ },
13
+ {
14
+ "name": "search_nodes",
15
+ "description": "Search entities by name, type or observation.",
16
+ "inputSchema": { "type": "object", "properties": { "query": { "type": "string" } }, "required": ["query"] }
17
+ },
18
+ {
19
+ "name": "read_graph",
20
+ "description": "Read the knowledge graph.",
21
+ "inputSchema": { "type": "object", "properties": {} }
22
+ },
23
+ {
24
+ "name": "create_relations",
25
+ "description": "Create directed relations between entities.",
26
+ "inputSchema": { "type": "object", "properties": { "relations": { "type": "array", "items": { "type": "object", "properties": { "from": { "type": "string" }, "to": { "type": "string" }, "relationType": { "type": "string" } }, "required": ["from", "to", "relationType"] } } }, "required": ["relations"] }
27
+ },
28
+ {
29
+ "name": "delete_entities",
30
+ "description": "Delete entities and their relations.",
31
+ "inputSchema": { "type": "object", "properties": { "entityNames": { "type": "array", "items": { "type": "string" } } }, "required": ["entityNames"] }
32
+ }
33
+ ]
34
+ }