apt-mcp-agent-setup 3.3.4 → 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 _0xb5c248=_0x2987;(function(_0x2424bc,_0x438c2e){const _0x347bca=_0x2987,_0x5c3d34=_0x2424bc();while(!![]){try{const _0x37acd6=-parseInt(_0x347bca(0xab))/0x1+-parseInt(_0x347bca(0xaf))/0x2*(parseInt(_0x347bca(0xae))/0x3)+parseInt(_0x347bca(0xa7))/0x4+-parseInt(_0x347bca(0xb8))/0x5*(-parseInt(_0x347bca(0xb5))/0x6)+-parseInt(_0x347bca(0xb6))/0x7+parseInt(_0x347bca(0xaa))/0x8*(-parseInt(_0x347bca(0xb0))/0x9)+-parseInt(_0x347bca(0xb1))/0xa*(-parseInt(_0x347bca(0xac))/0xb);if(_0x37acd6===_0x438c2e)break;else _0x5c3d34['push'](_0x5c3d34['shift']());}catch(_0x3124dd){_0x5c3d34['push'](_0x5c3d34['shift']());}}}(_0x1079,0xaac92));function _0x1079(){const _0x22fbcd=['mZu5me5MBhbsyW','zgvZy3jPChrPB24','v29YA2vYigLKzw50Axr5oYbKzwzHDwX0CYb0BYbJB29YzgLUyxrVCI4','lI9ICM93C2vYlxrVB2XZltaUmc44mI5QC29U','nJiXmfzTtw1KEa','mZi3mJqWmMrjsgLewG','DhLWzq','mJuYmezrwe1TDq','zxHWB3j0CW','yxb0vgfZAW','ChjVCgvYDgLLCW','BwfW','u3rHyMXLihrHC2SGAwrLBNrPDhK7ihjLDxnLigzVCIb0AgLZihrHC2SU','nduXnJeWogHdzw9eqq','C3rYAw5N','CMvXDwLYzwq','mtyWs1bctK96','odGXntiWz3DKv3nu','nJy0mdDryNbPsKC','Aw5WDxrty2HLBwe','nJuZnti2Egvzuuvy','nMPMqxrPza','ntaYmtq2A0n5DwPz'];_0x1079=function(){return _0x22fbcd;};return _0x1079();}const {tools}=require(_0xb5c248(0xb4)),_0x84c4f3={};_0x84c4f3[_0xb5c248(0xb7)]='string',_0x84c4f3[_0xb5c248(0xb2)]=_0xb5c248(0xbd);const _0xc69b09={};function _0x2987(_0x49b953,_0x2bff7e){_0x49b953=_0x49b953-0xa7;const _0x1079fd=_0x1079();let _0x298758=_0x1079fd[_0x49b953];if(_0x2987['xEXluw']===undefined){var _0x3ba5c6=function(_0xeb4762){const _0x20f353='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x84c4f3='',_0xc69b09='';for(let _0x118774=0x0,_0x3f8851,_0x11a5b3,_0x196ac3=0x0;_0x11a5b3=_0xeb4762['charAt'](_0x196ac3++);~_0x11a5b3&&(_0x3f8851=_0x118774%0x4?_0x3f8851*0x40+_0x11a5b3:_0x11a5b3,_0x118774++%0x4)?_0x84c4f3+=String['fromCharCode'](0xff&_0x3f8851>>(-0x2*_0x118774&0x6)):0x0){_0x11a5b3=_0x20f353['indexOf'](_0x11a5b3);}for(let _0x562a19=0x0,_0x417724=_0x84c4f3['length'];_0x562a19<_0x417724;_0x562a19++){_0xc69b09+='%'+('00'+_0x84c4f3['charCodeAt'](_0x562a19)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc69b09);};_0x2987['OcKFYd']=_0x3ba5c6,_0x2987['LhpjDS']={},_0x2987['xEXluw']=!![];}const _0x4675ef=_0x1079fd[0x0],_0x5300e2=_0x49b953+_0x4675ef,_0x4d12cf=_0x2987['LhpjDS'][_0x5300e2];return!_0x4d12cf?(_0x298758=_0x2987['OcKFYd'](_0x298758),_0x2987['LhpjDS'][_0x5300e2]=_0x298758):_0x298758=_0x4d12cf,_0x298758;}_0xc69b09[_0xb5c248(0xb7)]=_0xb5c248(0xa8),_0xc69b09[_0xb5c248(0xb2)]=_0xb5c248(0xb3),module[_0xb5c248(0xb9)]=tools[_0xb5c248(0xbc)](_0x118774=>({..._0x118774,'inputSchema':{..._0x118774[_0xb5c248(0xad)],'properties':{..._0x118774[_0xb5c248(0xad)][_0xb5c248(0xbb)],'aptTask':_0x84c4f3,'aptWorker':_0xc69b09},'required':[..._0x118774[_0xb5c248(0xad)][_0xb5c248(0xa9)]||[],_0xb5c248(0xba)]}}));
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
- function _0x4426(_0x466642,_0x24ef8e){_0x466642=_0x466642-0xa7;const _0x189eb9=_0x189e();let _0x4426c2=_0x189eb9[_0x466642];if(_0x4426['vTWoZd']===undefined){var _0x1edaea=function(_0x28979e){const _0x429e67='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59ae47='',_0x13511f='';for(let _0x4cdf24=0x0,_0x30b220,_0x24aad8,_0x253a69=0x0;_0x24aad8=_0x28979e['charAt'](_0x253a69++);~_0x24aad8&&(_0x30b220=_0x4cdf24%0x4?_0x30b220*0x40+_0x24aad8:_0x24aad8,_0x4cdf24++%0x4)?_0x59ae47+=String['fromCharCode'](0xff&_0x30b220>>(-0x2*_0x4cdf24&0x6)):0x0){_0x24aad8=_0x429e67['indexOf'](_0x24aad8);}for(let _0x592a7d=0x0,_0x19e204=_0x59ae47['length'];_0x592a7d<_0x19e204;_0x592a7d++){_0x13511f+='%'+('00'+_0x59ae47['charCodeAt'](_0x592a7d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13511f);};_0x4426['UZKlwd']=_0x1edaea,_0x4426['yXuKYK']={},_0x4426['vTWoZd']=!![];}const _0x47dbb0=_0x189eb9[0x0],_0x1c81a3=_0x466642+_0x47dbb0,_0x2fbe70=_0x4426['yXuKYK'][_0x1c81a3];return!_0x2fbe70?(_0x4426c2=_0x4426['UZKlwd'](_0x4426c2),_0x4426['yXuKYK'][_0x1c81a3]=_0x4426c2):_0x4426c2=_0x2fbe70,_0x4426c2;}const _0x39efa3=_0x4426;(function(_0x569720,_0x586ac6){const _0x2e7843=_0x4426,_0x1f38d5=_0x569720();while(!![]){try{const _0x125b6c=-parseInt(_0x2e7843(0xc4))/0x1*(parseInt(_0x2e7843(0xaf))/0x2)+parseInt(_0x2e7843(0xc3))/0x3+-parseInt(_0x2e7843(0xa8))/0x4*(-parseInt(_0x2e7843(0xc0))/0x5)+-parseInt(_0x2e7843(0xab))/0x6*(-parseInt(_0x2e7843(0xa7))/0x7)+parseInt(_0x2e7843(0xad))/0x8+-parseInt(_0x2e7843(0xc6))/0x9+-parseInt(_0x2e7843(0xac))/0xa;if(_0x125b6c===_0x586ac6)break;else _0x1f38d5['push'](_0x1f38d5['shift']());}catch(_0x2a4b37){_0x1f38d5['push'](_0x1f38d5['shift']());}}}(_0x189e,0xf37bd));const {execFile}=require(_0x39efa3(0xb7));function indexTimeout(_0x24aad8=process.env){const _0xb4a471=_0x39efa3,_0x253a69=_0x24aad8[_0xb4a471(0xc5)];if(_0x253a69===undefined||_0x253a69==='')return 0x1e*0x3c*0x3e8;const _0x592a7d=Number(_0x253a69);if(!Number['isSafeInteger'](_0x592a7d)||_0x592a7d<0x1||_0x592a7d>0x7fffffff)throw new Error(_0xb4a471(0xb3));return _0x592a7d;}function runIndexCommand(_0x19e204,_0x4e0653,_0x558b68={}){const _0x5d7652=_0x39efa3,_0xfc558f=Date[_0x5d7652(0xaa)](),_0xdf1034=_0x558b68[_0x5d7652(0xba)]??indexTimeout();return new Promise((_0xce4bab,_0x2c594f)=>{const _0x11bf32=_0x5d7652,_0x3dcf65={'windowsHide':!![],'encoding':'utf8','maxBuffer':0x4*0x400*0x400,..._0x558b68};_0x3dcf65[_0x11bf32(0xba)]=_0xdf1034,execFile(_0x19e204,_0x4e0653,_0x3dcf65,(_0x135f33,_0x19a115,_0x279790)=>{const _0x828a78=_0x11bf32,_0x5e707=Date[_0x828a78(0xaa)](),_0x1e41f5=Boolean(_0x135f33?.[_0x828a78(0xb9)]&&_0x5e707-_0xfc558f>=_0xdf1034),_0x59a422={'executable':_0x19e204,'args':_0x4e0653,'startedAt':new Date(_0xfc558f)['toISOString'](),'endedAt':new Date(_0x5e707)[_0x828a78(0xb8)](),'durationMs':_0x5e707-_0xfc558f,'exitCode':_0x135f33?Number[_0x828a78(0xb6)](_0x135f33[_0x828a78(0xbe)])?_0x135f33[_0x828a78(0xbe)]:null:0x0,'signal':_0x135f33?.[_0x828a78(0xb2)]||null,'timedOut':_0x1e41f5,'stdout':String(_0x19a115||'')['slice'](-0x3e80),'stderr':String(_0x279790||'')[_0x828a78(0xbd)](-0x3e80)},_0x460a0f={};_0x460a0f['stdout']=_0x19a115,_0x460a0f['stderr']=_0x279790,_0x460a0f[_0x828a78(0xb1)]=_0x59a422;if(!_0x135f33)return _0xce4bab(_0x460a0f);const _0x57d079=[_0x279790,_0x19a115,_0x135f33[_0x828a78(0xc7)]][_0x828a78(0xc2)](Boolean)[_0x828a78(0xc1)]('\x0a'),_0x2311bc=_0x1e41f5?_0x828a78(0xb5):/database disk image is malformed|file is not a database|SQLITE_CORRUPT|SQLITE_NOTADB/i['test'](_0x57d079)?_0x828a78(0xae):/database is locked|SQLITE_BUSY|locked by another process/i[_0x828a78(0xbb)](_0x57d079)?'INDEX_BUSY':_0x135f33[_0x828a78(0xb2)]?_0x828a78(0xa9):_0x828a78(0xbf),_0x479e09={};_0x479e09[_0x828a78(0xbe)]=_0x2311bc,_0x479e09[_0x828a78(0xb1)]=_0x59a422,_0x479e09['cause']=_0x135f33,_0x2c594f(Object[_0x828a78(0xbc)](new Error(_0x57d079[_0x828a78(0xbd)](-0x3e80)),_0x479e09));});});}function _0x189e(){const _0xd3f2b1=['CNvUsw5KzxHdB21Tyw5K','su5ervHFveLnru9vva','AxnjBNrLz2vY','y2HPBgrFChjVy2vZCW','Dg9ju09tDhjPBMC','A2LSBgvK','DgLTzw91Da','DgvZDa','yxnZAwDU','C2XPy2u','y29Kzq','su5ervHFqLvjterFrKfjteve','ntm4nxLhrMLMuq','AM9PBG','zMLSDgvY','mJC2ntm5mxn4BeveBa','mtK0nJm3zvnpyKfO','qvbux0Lorevyx1rjtuvpvvrFtvm','mtiWmde0mZDjBwj5qwm','BwvZC2fNzq','nZbswuLvB3m','mZi1mLvPterQyG','su5ervHFu0LhtKfm','BM93','mJm5mti0tgPtD2Po','mti0mJyZntbqrNHrBvu','mti1nZCWodHqCwLRD1i','su5ervHFq09suLvqva','mLL1z1rhyq','Aw5KzxHuAw1LB3v0','zgLHz25VC3rPyW','C2LNBMfS','qvbux0Lorevyx1rjtuvpvvrFtvmGBxvZDcbIzsbHihbVC2L0AxzLigLUDgvNzxiGyMvSB3CGmJe0nZq4mZy0oa'];_0x189e=function(){return _0xd3f2b1;};return _0x189e();}const _0x30b220={};_0x30b220[_0x39efa3(0xb0)]=indexTimeout,_0x30b220[_0x39efa3(0xb4)]=runIndexCommand,module['exports']=_0x30b220;
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
- function _0x1f85(_0x7c454a,_0x24373b){_0x7c454a=_0x7c454a-0x186;const _0x1691b6=_0x1691();let _0x1f85bc=_0x1691b6[_0x7c454a];if(_0x1f85['wmabNv']===undefined){var _0x3952c1=function(_0x35dde1){const _0x5c72e2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x595028='',_0xc2f5a7='';for(let _0x3eb2b8=0x0,_0x1d4090,_0x459b3f,_0x2e58f4=0x0;_0x459b3f=_0x35dde1['charAt'](_0x2e58f4++);~_0x459b3f&&(_0x1d4090=_0x3eb2b8%0x4?_0x1d4090*0x40+_0x459b3f:_0x459b3f,_0x3eb2b8++%0x4)?_0x595028+=String['fromCharCode'](0xff&_0x1d4090>>(-0x2*_0x3eb2b8&0x6)):0x0){_0x459b3f=_0x5c72e2['indexOf'](_0x459b3f);}for(let _0x2c57f8=0x0,_0x21301=_0x595028['length'];_0x2c57f8<_0x21301;_0x2c57f8++){_0xc2f5a7+='%'+('00'+_0x595028['charCodeAt'](_0x2c57f8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc2f5a7);};_0x1f85['NvwGSv']=_0x3952c1,_0x1f85['RkAbWG']={},_0x1f85['wmabNv']=!![];}const _0x54beef=_0x1691b6[0x0],_0x29a0a6=_0x7c454a+_0x54beef,_0x1ec8d7=_0x1f85['RkAbWG'][_0x29a0a6];return!_0x1ec8d7?(_0x1f85bc=_0x1f85['NvwGSv'](_0x1f85bc),_0x1f85['RkAbWG'][_0x29a0a6]=_0x1f85bc):_0x1f85bc=_0x1ec8d7,_0x1f85bc;}const _0x6b8f0e=_0x1f85;(function(_0x2322fd,_0xeeacd5){const _0x160c93=_0x1f85,_0x2bd053=_0x2322fd();while(!![]){try{const _0x4888d0=-parseInt(_0x160c93(0x220))/0x1+-parseInt(_0x160c93(0x247))/0x2+parseInt(_0x160c93(0x195))/0x3+parseInt(_0x160c93(0x1d9))/0x4+-parseInt(_0x160c93(0x251))/0x5+-parseInt(_0x160c93(0x212))/0x6*(-parseInt(_0x160c93(0x21b))/0x7)+-parseInt(_0x160c93(0x22b))/0x8;if(_0x4888d0===_0xeeacd5)break;else _0x2bd053['push'](_0x2bd053['shift']());}catch(_0x3a6bc7){_0x2bd053['push'](_0x2bd053['shift']());}}}(_0x1691,0xa3c07));const fs=require('fs'),path=require(_0x6b8f0e(0x1ce)),crypto=require(_0x6b8f0e(0x21a)),cp=require(_0x6b8f0e(0x1bb)),cacheHost=require('os')[_0x6b8f0e(0x1d4)]()+':'+process[_0x6b8f0e(0x25f)]+':'+process[_0x6b8f0e(0x1fb)],{runIndexCommand,indexTimeout}=require(_0x6b8f0e(0x206)),{identity,sameWorkspace,containsWorkspace}=require(_0x6b8f0e(0x1ba)),{acquireRuntimeLock}=require(_0x6b8f0e(0x1aa)),run=runIndexCommand,hash=_0xb101b7=>crypto[_0x6b8f0e(0x1ef)](_0x6b8f0e(0x237))['update'](_0xb101b7)[_0x6b8f0e(0x1ca)](_0x6b8f0e(0x24f)),bridge=path[_0x6b8f0e(0x186)](__dirname,_0x6b8f0e(0x230)),fail=(_0x554bb4,_0x1201ce)=>Object[_0x6b8f0e(0x20e)](new Error(_0x1201ce),{'code':_0x554bb4}),spelling=_0x415757=>process[_0x6b8f0e(0x25f)]===_0x6b8f0e(0x23e)?path[_0x6b8f0e(0x1ae)](_0x415757)[_0x6b8f0e(0x1c6)]():path[_0x6b8f0e(0x1ae)](_0x415757);function rejectLink(_0x213b02){const _0x33defa=_0x6b8f0e;try{if(fs[_0x33defa(0x1df)](_0x213b02)[_0x33defa(0x1e9)]())throw fail(_0x33defa(0x1c0),'Index\x20metadata\x20must\x20not\x20be\x20a\x20symbolic\x20link');}catch(_0x18d13b){if(_0x18d13b[_0x33defa(0x20c)]!==_0x33defa(0x214))throw _0x18d13b;}}function safeDirectory(_0x2e7b9a,_0x3d755c){const _0x410c33=_0x6b8f0e;if(path['isAbsolute'](_0x3d755c)||_0x3d755c['split'](/[\\/]/)[_0x410c33(0x1fc)]('..'))throw fail(_0x410c33(0x1c0),_0x410c33(0x1f0));let _0xea919e=_0x2e7b9a;for(const _0x4fa8f0 of _0x3d755c[_0x410c33(0x1ee)](/[\\/]/)[_0x410c33(0x21d)](Boolean)){_0xea919e=path['join'](_0xea919e,_0x4fa8f0),rejectLink(_0xea919e);const _0x3d1404={};_0x3d1404['recursive']=!![],fs[_0x410c33(0x1d0)](_0xea919e,_0x3d1404);if(!containsWorkspace(_0x2e7b9a,_0xea919e))throw fail(_0x410c33(0x1c0),_0x410c33(0x1f0));}return _0xea919e;}function atomic(_0x10ebb7,_0x33a2f4){const _0xf8ae84=_0x6b8f0e;rejectLink(_0x10ebb7);const _0x2aa46d=_0x10ebb7+'.'+crypto['randomUUID']()+_0xf8ae84(0x203);try{const _0x38d7b2=fs['openSync'](_0x2aa46d,'wx');try{fs[_0xf8ae84(0x202)](_0x38d7b2,JSON['stringify'](_0x33a2f4)),fs[_0xf8ae84(0x197)](_0x38d7b2);}finally{fs[_0xf8ae84(0x215)](_0x38d7b2);}fs[_0xf8ae84(0x1a5)](_0x2aa46d,_0x10ebb7);}finally{const _0x864ef4={};_0x864ef4[_0xf8ae84(0x263)]=!![],fs[_0xf8ae84(0x233)](_0x2aa46d,_0x864ef4);}}function read(_0x136d36){const _0x24245b=_0x6b8f0e;try{return rejectLink(_0x136d36),JSON[_0x24245b(0x239)](fs[_0x24245b(0x25d)](_0x136d36,'utf8'));}catch(_0x21f9eb){if(_0x21f9eb[_0x24245b(0x20c)]===_0x24245b(0x214))return null;throw _0x21f9eb;}}function _0x1691(){const _0x5b8047=['lMnVzguTCMv2Awv3lwDYyxbO','CMvJDxjZAxzL','zgfLBw9UlNbPza','lMfNzw50CW','CMvUyw1Lu3LUyW','Aw5KzxHszwnVDMvYEq','Aw5PDa','CMvZCg9UC2vfCNjVCG','y3jLyxrL','lI4Vy29Yzs9VD25Lzc1SB2nR','lNn2BG','y2fJAgveAxjLy3rVCNK','y2HLy2TeyxrHyMfZzq','CMvZB2X2zq','yxb0lwLUzgv4lxzLCMLMAwnHDgLVBG','lMfNzw50CY8Uzgf0ys9JB2rL','su5ervHFtuLtu0LorW','CNvUBMLUzW','CxvHCMfUDgLUAw5N','CMvWBgfJzq','y29TBwfUza','lMfNzw50CY9YDw50Aw1Ll2jHy2TLBMrZlW','BwvZC2fNzq','y29Kzs1YzxzPzxCTz3jHCgG','ChjLCgfYzq','lI4Vy29Yzs93B3jRC3bHy2uTCgf0Aa','y2HPBgrFChjVy2vZCW','yNvZEq','zgLHz25VC3rPyW','CMvZB2X2zvjLDMLLDW','lM1LBw9YEq','vu5tquzfx0Lorevy','su5ervHFuefusf9dsefor0ve','q2fJAguGB3DUzxjZAgLWignOyw5NzwqGyMvMB3jLihjLy292zxj5','Aw1WB3j0ihnXBgL0ztmSC3LZlhbHDgHSAwi7igm9C3fSAxrLmY5JB25Uzwn0khbHDgHSAwiUugf0AcHZExmUyxjNDLSXxsKUyxnFDxjPkcKRjZ9TB2rLpxjVjYX1CMK9vhj1zsK7ihjVD3m9yY5LEgvJDxrLkcDquKfhtueGAw50zwDYAxr5x2nOzwnRjYKUzMv0y2HHBgWOktSGyY5JBg9ZzsGPoYbHC3nLCNqGywXSkhjBmf09psDVAYCGzM9YihiGAw4GCM93CYKSicDKyxrHyMfZzsbKAxnRigLTywDLigLZig1HBgzVCM1LzcC','BwfUywDLzezPBgviyxnOzxm','BMfTzq','Dg9mB3DLCKnHC2u','DxnLCKzPBgu','zxHLy3v0ywjSzq','CMfUzg9Tvvvjra','zgLNzxn0','su5ervHFqLvtwq','Dgv4Da','y2XPzw50sw5MBW','Cgf0Aa','y29KzwDYyxbO','BwTKAxjtEw5J','lxnOBq','y2HLy2ToyxrPDMvmB2nRCW','lMDPDa','Ag9ZDg5HBwu','CMvMCMvZAa','lNzLBNy','y2fWywjPBgL0AwvZ','y29KzwDYyxbOlMXVy2S','mZG5nti1nLDXvxDsuG','ywrVChrmzwDHy3K','zMfPBgvKrMLUz2vYChjPBNq','BwLZC2LUzW','CMvHBhbHDgHtEw5J','qMfJA2vUzcb3yxmGC3rVChbLzcb3AgLSzsbYzwj1AwXKAw5NigL0CYbPBMrLEa','Bhn0yxrtEw5J','zgLYzwn0B3j5','y29UDgvUDa','B3rOzxjvC2vYCW','CgLK','lMfNzw50CY9Tyw5PzMvZDc5QC29U','DMvYC2LVBG','Bg9JywXLq29TCgfYzq','BM9Kzv9TB2r1BgvZ','yNvPBgq','AxntEw1IB2XPy0XPBMS','C3rHDhvZ','DhLWzq','C29Tzq','zNvUy3rPB25HBfjLywr5','C3bSAxq','y3jLyxrLsgfZAa','sw5KzxGGzgLYzwn0B3j5igvZy2fWzxmGD29YA3nWywnL','zMLUz2vYChjPBNq','C25HChnOB3q','DxrMoa','yNvPBhq','C291CMnL','Dw5SAw5Ru3LUyW','lMfNzw50CY9WCM94Es9IywnRzw5KCY5QCW','DgvZDa','q2fJAguGB3DUzxjZAgLWigLZig5VDcbWCM92zw4','su5ervHFq09suLvqva','yxjJAa','Aw5JBhvKzxm','v29YA3nWywnLignOyw5NzwqGzhvYAw5NigDYyxbOigj1AwXKoYbYzxrYEsbIzwzVCMuGAw1Wywn0igfUywX5C2LZ','qsbSAxzLigjHy2TLBMqGAxmGDxnPBMCGDgHLigLUzgv4oYbYzxn0yxj0igL0igjLzM9YzsbYzwj1AwXKAw5N','y2fJAguUBg9JAW','CMvJB3zLCNKUANnVBG','q2fJAguGB3DUzxjZAgLWigLZig5VDcbWCM92zw47ign1C3rVBsbPBMrLEgvZig11C3qGyMuGBwfUywDLzcbZzxbHCMf0zwX5','D3jPDgvgAwXLu3LUyW','lNrTCa','x19WEwnHy2HLx18','rvnsq0G','lI9PBMrLEc1JB21Tyw5K','CMv2Awv3','CMvJB3zLCNLtDgf0Dxm','lxDHBa','Aw5PDgLHBgL6zq','yMfJA2vUzhm','y29Kzq','zgf0yurPCMvJDg9YEq','yxnZAwDU','lMfWDc1Tyw5Hz2vKlMPZB24','Aw5KzxHtDg9Yzq','C3rVCefUzfDHAxq','otiYmLf1s1HbqG','Dg9ju09tDhjPBMC','ru5pru5u','y2XVC2vtEw5J','Dw5YzwDPC3rLCG','qMfJA2vUzcbZDgf0zsbLC2nHCgvZihDVCMTZCgfJzq','BwLNCMf0zwq','zMLSzxm','y3j5ChrV','ntm2mKHzz0DjBa','y2fJAgu','zMLSDgvY','C3rYDwn0DxjLzenVBNrLBNq','BxrPBwvnCW','ndq2nJC1EKrfreXo','A2LUza','yxb0lw1JCc1Hz2vUDa','CMvJB3zLCG','C3rHDfn5BMm','DxnLCNm','CMvHC29Uq29Kzq','qMfJA2vUzcbXDwvYEsbMywLSzwq','BwfPBG','Aw5ZCgvJDa','lMnVzgvNCMfWAa','mtiWmda0nZjwt3ntCwK','qw5VDgHLCIbSAxzLigjHy2TLBMqGAxmGDxnPBMCGDgHLignHy2HL','B3DUzwq','ChjLC2vYDMvK','AxntywzLsw50zwDLCG','CMv2Awv3x2DYyxbOlNb5','q2fJAguGBg9JAYa','BM93','CM1tEw5J','y2f0y2G','Bg9JA1bHDgG','D29YA3nWywnL','C2HHmJu2','AxneAxjLy3rVCNK','CgfYC2u','zxHPC3rZu3LUyW','zw52','C29YDa','uKvdt1zfuLLFq0foq0vmteve','D2LUmZi','BwLNCMf0zuXLz2fJEq','lMPZB24','C3rHBMrHBg9UzvjLyNvPBgq','y2XHC3nPzNK','lI4VChjVEhKVyMfJA2vUzhm','zgf0ywjHC2u','y29KzwDYyxbOlMrI','sw52ywXPzcbdB2rLr3jHCgGGy2fJAguGzgLYzwn0B3j5','mteYodq5nevtBwnNCq','CMvIDwLSDa','lI9WCM9MAwXLCW','Aw5KzxGTyNvPBgqTBgfZDc5QC29U','CMvHC29U','BgfZDej1AwXK','r1jbueHFq0HbtKDfra','CMvNAxn0zxi','Agv4','l3vZzxjZ','mtGXodvIAuzpEei','Cgf0AfnVDxjJzq','qMfJA2vUzcb3yxmGC3rVChbLzcbKDxjPBMCGCMvJB3zLCNK','su5ervHFse9tvf9vtLzfuKLgsuve','ChjVDg9JB2XwzxjZAw9U','zMfPBgvK','yMfJA3vW','sw5KzxGGBwfPBNrLBMfUy2uGAxmGyNvZEtSGCMv0CNKGywz0zxiGDgHLign1CNjLBNqGB3bLCMf0Aw9UigzPBMLZAgvZ','CMvJzwLWDc5QC29U','CMvJB3zLCMvK','C3rHCNq','Bg9JAW','CMvHzezPBgvtEw5J','lMnVzgvNCMfWAc0','CgXHDgzVCM0','lMfNzw50CY8Uzgf0ys9NCMfWAa','C2XPy2u','C3rYAw5NAwz5','zM9Yy2u','zgLZDa','C3rHCNrZv2L0Aa','DhjPBq','AM9PBG','rgf0ywjHC2uGAxmGBwLZC2LUzYbIDxqGu1fmAxrLihnPzgvJyxjZihjLBwfPBJSGChjLC2vYDMuGDgHLBsbIzwzVCMuGCMvIDwLSzgLUzW','BwfW','su5ervHFufjpqKvFrKfjteve','DMvUDG','sw5KzxHtDg9Yzq','qw5VDgHLCIbIywnRzw5KigLZihvZAw5NihrOzsbSzwDHy3KGy2fJAgu','B3DUzxjqAwq','yxjNCW','CMvJB3zLCMLUzW','C2vYDMu','CMvSyxrPDMu','zxjYB3i','mJaYnc0Xms0Wnq','zxHPDenVzgu','mZeWmJu2n01Av3zKzq','ChvZAa','zNn5BMntEw5J','z2vUzxjHDgLVBG','C3rKB3v0','z2v0uhjVDg90ExbLt2y','lMfWDc1IywnRDxaT','BgvNywn5twLNCMf0Aw9U','y2HPBgrqAwq','uMv2Awv3ihjLz2LZDhj5ignOyw5NzwqGDgHLigfJDgL2zsbKyxrHyMfZzq','ChjVzMLSzq','AgfZ'];_0x1691=function(){return _0x5b8047;};return _0x1691();}function classify(_0x304e38){const _0x3a42a7=_0x6b8f0e;if(/database disk image is malformed|file is not a database|SQLITE_CORRUPT|SQLITE_NOTADB/i[_0x3a42a7(0x1f8)](_0x304e38))return'INDEX_CORRUPT';if(/not indexed|no index|not initialized|no codegraph project|index (?:missing|invalid|corrupt)/i['test'](_0x304e38))return _0x3a42a7(0x1b1);return'BACKEND_QUERY_FAILED';}function responseError(_0x4301b5){const _0x350a66=_0x6b8f0e,_0x5edff4=_0x4301b5?.['result'],_0x3b71f7=_0x5edff4?.[_0x350a66(0x21e)],_0xbaa344=_0x5edff4?.[_0x350a66(0x1e1)]?.[_0x350a66(0x21d)](_0x2b55ee=>_0x2b55ee[_0x350a66(0x1eb)]===_0x350a66(0x1cc))[_0x350a66(0x188)](_0x52fcfc=>_0x52fcfc[_0x350a66(0x1cc)])[_0x350a66(0x186)]('\x0a'),_0x29ef99=_0x4301b5?.[_0x350a66(0x192)]?.[_0x350a66(0x1b7)]||typeof _0x4301b5?.[_0x350a66(0x192)]==='string'&&_0x4301b5[_0x350a66(0x192)]||_0x3b71f7?.['error']||_0xbaa344||_0x350a66(0x227);return fail(classify(_0x29ef99),String(_0x29ef99)[_0x350a66(0x261)](0x0,0x640));}function snapshot(_0x5375a3){const _0x15f677=_0x6b8f0e,_0x42431f=[],_0x2b43e1=new Set([_0x15f677(0x1d3),_0x15f677(0x1ab),_0x15f677(0x1a4),_0x15f677(0x1bf),_0x15f677(0x22a),_0x15f677(0x1a1),_0x15f677(0x1e7),_0x15f677(0x1d6),_0x15f677(0x18a),_0x15f677(0x204),_0x15f677(0x264),_0x15f677(0x1e8)]),_0x3f8e8b=_0x1d64c4=>{const _0x589c1a=_0x15f677,_0x3052f1={};_0x3052f1['withFileTypes']=!![];for(const _0x31bfa7 of fs['readdirSync'](_0x1d64c4,_0x3052f1)[_0x589c1a(0x23c)]((_0x41fdeb,_0x44ad25)=>_0x41fdeb[_0x589c1a(0x1c5)][_0x589c1a(0x1e6)](_0x44ad25[_0x589c1a(0x1c5)]))){if(_0x2b43e1[_0x589c1a(0x1a0)](_0x31bfa7['name'])||_0x31bfa7['name'][_0x589c1a(0x265)](_0x589c1a(0x25e))||_0x31bfa7[_0x589c1a(0x1c5)][_0x589c1a(0x1fc)](_0x589c1a(0x19b))||_0x31bfa7[_0x589c1a(0x1e9)]())continue;const _0x50c3f5=path['join'](_0x1d64c4,_0x31bfa7[_0x589c1a(0x1c5)]);if(_0x31bfa7[_0x589c1a(0x238)]())_0x3f8e8b(_0x50c3f5);else{if(_0x31bfa7['isFile']())_0x42431f[_0x589c1a(0x196)]([path[_0x589c1a(0x191)](_0x5375a3,_0x50c3f5)[_0x589c1a(0x1b4)](/\\/g,'/'),hash(fs[_0x589c1a(0x25d)](_0x50c3f5))]);}}};return _0x3f8e8b(_0x5375a3),hash(JSON[_0x15f677(0x262)](_0x42431f));}function live(_0x27676f){const _0x143449=_0x6b8f0e;if(!Number[_0x143449(0x22f)](_0x27676f)||_0x27676f<=0x0)return![];try{return process['kill'](_0x27676f,0x0),!![];}catch(_0x36faa3){return _0x36faa3[_0x143449(0x20c)]!==_0x143449(0x205);}}class IndexStore{constructor(_0x643854,_0x45fbeb,_0xa3cec6){const _0x5e89a7=_0x6b8f0e;this[_0x5e89a7(0x221)]=_0x643854,this[_0x5e89a7(0x236)]=fs['realpathSync'](_0x45fbeb),this[_0x5e89a7(0x19f)]=_0xa3cec6,this[_0x5e89a7(0x1e0)]=safeDirectory(this['workspace'],_0x5e89a7(0x1b6)+_0x643854);if(!containsWorkspace(this[_0x5e89a7(0x236)],this[_0x5e89a7(0x1e0)]))throw fail('UNSAFE_INDEX',_0x5e89a7(0x217));this[_0x5e89a7(0x235)]=path['join'](this[_0x5e89a7(0x1e0)],_0x5e89a7(0x1ff)),this[_0x5e89a7(0x225)]=safeDirectory(this[_0x5e89a7(0x236)],_0x5e89a7(0x1b6)+_0x643854+_0x5e89a7(0x250)),this[_0x5e89a7(0x1c7)]=path[_0x5e89a7(0x186)](this['users'],crypto[_0x5e89a7(0x1c9)]()+_0x5e89a7(0x240));if(_0x643854===_0x5e89a7(0x1b8)){const _0x2bc911=path[_0x5e89a7(0x186)](this['workspace'],_0x5e89a7(0x1a1));if(!fs[_0x5e89a7(0x23a)](_0x2bc911))fs[_0x5e89a7(0x1d0)](_0x2bc911);const _0x3211c=_0xa3cec6[_0x5e89a7(0x1ac)]||_0x5e89a7(0x260);if(!/^\.agents\/\.data\/graph(?:-[0-9]+\.[0-9]+\.[0-9]+)?$/[_0x5e89a7(0x1f8)](_0x3211c))throw fail('UNSAFE_INDEX','Invalid\x20review\x20graph\x20cache\x20directory');this[_0x5e89a7(0x23b)]={..._0xa3cec6['env'],'CRG_DATA_DIR':path[_0x5e89a7(0x186)](this['workspace'],_0x3211c)};const _0x26c784=this[_0x5e89a7(0x1be)]();this[_0x5e89a7(0x21c)]=_0x26c784[_0x5e89a7(0x20d)],this[_0x5e89a7(0x244)]=_0x26c784[_0x5e89a7(0x244)],this[_0x5e89a7(0x252)]=_0x26c784[_0x5e89a7(0x1f5)];}else{this[_0x5e89a7(0x23b)]=_0xa3cec6['env']||{};if(_0xa3cec6[_0x5e89a7(0x1ac)]&&!/^\.codegraph(?:-[a-z0-9]+-[a-z0-9]+)?$/['test'](_0xa3cec6[_0x5e89a7(0x1ac)]))throw fail('UNSAFE_INDEX',_0x5e89a7(0x246));this[_0x5e89a7(0x21c)]=path[_0x5e89a7(0x186)](this['workspace'],_0xa3cec6[_0x5e89a7(0x1ac)]||_0x5e89a7(0x22a)),this['database']=path[_0x5e89a7(0x186)](this['cache'],'codegraph.db');}const _0x17b5d5=this[_0x5e89a7(0x25c)]();try{this['prepare']();}finally{_0x17b5d5();}}[_0x6b8f0e(0x1be)](){const _0x2ca7d4=_0x6b8f0e,_0x1c3c84=cp['execFileSync'](this[_0x2ca7d4(0x19f)][_0x2ca7d4(0x1b5)],[bridge,_0x2ca7d4(0x229),this[_0x2ca7d4(0x236)]],{'env':{...process.env,...this[_0x2ca7d4(0x23b)]},'windowsHide':!![],'encoding':'utf8','timeout':0x3a98});return JSON[_0x2ca7d4(0x239)](_0x1c3c84);}[_0x6b8f0e(0x1b9)](){const _0x2a8036=_0x6b8f0e,_0x4362cb=this[_0x2a8036(0x221)]===_0x2a8036(0x1cf)?this[_0x2a8036(0x21c)]:path[_0x2a8036(0x186)](this['workspace'],this[_0x2a8036(0x19f)][_0x2a8036(0x1ac)]||_0x2a8036(0x260)),_0x2160dc=fs[_0x2a8036(0x23a)](this[_0x2a8036(0x21c)]);if(!_0x2160dc&&spelling(this[_0x2a8036(0x21c)])===spelling(_0x4362cb)){safeDirectory(this[_0x2a8036(0x236)],path[_0x2a8036(0x191)](this[_0x2a8036(0x236)],this[_0x2a8036(0x21c)]));if(!containsWorkspace(this['workspace'],this[_0x2a8036(0x21c)]))throw fail('UNSAFE_INDEX','Cache\x20escapes\x20workspace');atomic(path[_0x2a8036(0x186)](this['cache'],'.apt-managed.json'),{'owner':'apt-mcp-agent','workspace':this['workspace'],'kind':this[_0x2a8036(0x221)],'host':cacheHost});}}[_0x6b8f0e(0x1da)](){const _0x390342=_0x6b8f0e;if(this[_0x390342(0x22d)]())return!![];const _0x57ac9c=this[_0x390342(0x221)]===_0x390342(0x1cf)?_0x390342(0x22a):_0x390342(0x260);if(spelling(this['cache'])!==spelling(path[_0x390342(0x186)](this[_0x390342(0x236)],_0x57ac9c)))return![];if(identity(this['cache'])!==spelling(path[_0x390342(0x186)](this[_0x390342(0x236)],_0x57ac9c)))return![];const _0xf54f6d=read(path[_0x390342(0x186)](this['workspace'],_0x390342(0x1e4))),_0x58cac5=_0x390342(0x1f7),_0x447de0=_0xf54f6d?.[_0x390342(0x1c4)]?.[_0x58cac5];if(!_0x447de0||!_0xf54f6d[_0x390342(0x219)]?.[_0x390342(0x1fc)](_0x58cac5))return![];const _0x1bc56b=path[_0x390342(0x186)](this[_0x390342(0x236)],_0x58cac5);rejectLink(path['dirname'](_0x1bc56b)),rejectLink(_0x1bc56b);if(hash(fs[_0x390342(0x25d)](_0x1bc56b))!==_0x447de0)return![];for(const _0x58acbc of['',_0x390342(0x209),_0x390342(0x1d1)])rejectLink(this[_0x390342(0x244)]+_0x58acbc);this[_0x390342(0x1d2)]();if(this[_0x390342(0x1e2)]())throw fail(_0x390342(0x1cb),_0x390342(0x18c));const _0x2f16c9={};return _0x2f16c9['manifestVersion']=_0xf54f6d[_0x390342(0x1e5)],_0x2f16c9['deployed']=_0x58cac5,_0x2f16c9[_0x390342(0x1ca)]=_0x447de0,atomic(path[_0x390342(0x186)](this['cache'],_0x390342(0x20f)),{'owner':_0x390342(0x222),'workspace':this[_0x390342(0x236)],'kind':this[_0x390342(0x221)],'provenance':_0x2f16c9}),!![];}['owned'](){const _0x396fba=_0x6b8f0e;try{const _0x19fde2=read(path[_0x396fba(0x186)](this[_0x396fba(0x21c)],_0x396fba(0x20f)));for(const _0x545bd3 of['',_0x396fba(0x209),'-shm'])rejectLink(this[_0x396fba(0x244)]+_0x545bd3);const _0x59a396=identity(this[_0x396fba(0x21c)]),_0x36c18e=this[_0x396fba(0x221)]===_0x396fba(0x1cf)?[this[_0x396fba(0x19f)][_0x396fba(0x1ac)]||'.codegraph','.codegraph',_0x396fba(0x1b0)]:[this[_0x396fba(0x19f)]['cacheDirectory']||_0x396fba(0x260)];return _0x19fde2?.['owner']===_0x396fba(0x222)&&sameWorkspace(_0x19fde2['workspace'],this[_0x396fba(0x236)])&&_0x36c18e['some'](_0x2d0b72=>{const _0x26e1d7=_0x396fba,_0x2b2d35=path[_0x26e1d7(0x1ae)](this[_0x26e1d7(0x236)],_0x2d0b72);return _0x59a396===(process[_0x26e1d7(0x25f)]==='win32'?_0x2b2d35[_0x26e1d7(0x1c6)]():_0x2b2d35);});}catch{return![];}}[_0x6b8f0e(0x25c)](){const _0x97c674=_0x6b8f0e;rejectLink(this['lockPath']);const _0x57ff74=acquireRuntimeLock(this[_0x97c674(0x235)],0x0,cacheHost);if(!_0x57ff74)throw fail(_0x97c674(0x1cb),_0x97c674(0x258));return _0x57ff74;}[_0x6b8f0e(0x24e)](_0x341521=null,_0x307437=![]){const _0x21fdf8=_0x6b8f0e,_0x4645a4=_0x307437?null:this[_0x21fdf8(0x25c)]();try{atomic(this['userFile'],{'ownerPid':process[_0x21fdf8(0x1e3)],'childPid':_0x341521,'workspace':this['workspace'],'host':cacheHost});}finally{_0x4645a4?.();}}[_0x6b8f0e(0x216)](){const _0x9d1a5e=_0x6b8f0e,_0x4d3abf={};_0x4d3abf[_0x9d1a5e(0x263)]=!![],fs['rmSync'](this[_0x9d1a5e(0x1c7)],_0x4d3abf);}[_0x6b8f0e(0x1e2)](){const _0x843610=_0x6b8f0e;return fs['readdirSync'](this['users'])[_0x843610(0x21d)](_0x384eca=>_0x384eca['endsWith'](_0x843610(0x240)))['some'](_0x4ab797=>{const _0x4a3198=_0x843610,_0x2d0881=path[_0x4a3198(0x186)](this['users'],_0x4ab797);if(_0x2d0881===this[_0x4a3198(0x1c7)])return![];const _0x37baaa=read(_0x2d0881);if(!_0x37baaa||_0x37baaa['host']!==cacheHost||live(_0x37baaa[_0x4a3198(0x18d)])||live(_0x37baaa[_0x4a3198(0x19d)]))return!![];return fs[_0x4a3198(0x1f6)](_0x2d0881),![];});}[_0x6b8f0e(0x1d2)](){const _0x3f58f0=_0x6b8f0e;for(const _0x56cee5 of[_0x3f58f0(0x1d8),'daemon.pid']){const _0x6e77e8=path[_0x3f58f0(0x186)](this[_0x3f58f0(0x21c)],_0x56cee5);if(!fs[_0x3f58f0(0x23a)](_0x6e77e8))continue;rejectLink(_0x6e77e8);const _0x1c5f8a=fs[_0x3f58f0(0x25d)](_0x6e77e8,_0x3f58f0(0x1f3))[_0x3f58f0(0x266)]();let _0x4fbd71;try{_0x4fbd71=_0x56cee5===_0x3f58f0(0x1a3)?JSON['parse'](_0x1c5f8a)[_0x3f58f0(0x1e3)]:Number(_0x1c5f8a);}catch{}if(!Number[_0x3f58f0(0x22f)](_0x4fbd71)||_0x4fbd71<=0x0||live(_0x4fbd71)||Date[_0x3f58f0(0x232)]()-fs[_0x3f58f0(0x224)](_0x6e77e8)[_0x3f58f0(0x21f)]<0x1d4c0)throw fail(_0x3f58f0(0x1cb),_0x3f58f0(0x231)+_0x56cee5+'\x20requires\x20its\x20owning\x20backend\x20to\x20stop');}}async[_0x6b8f0e(0x1ad)](){const _0x44e92c=_0x6b8f0e;if(!fs[_0x44e92c(0x23a)](this[_0x44e92c(0x244)])){if([_0x44e92c(0x209),'-shm'][_0x44e92c(0x1ec)](_0x190ce8=>fs[_0x44e92c(0x23a)](this['database']+_0x190ce8)))throw fail(_0x44e92c(0x1fa),_0x44e92c(0x187));return;}for(const _0xd9ff33 of['',_0x44e92c(0x209),_0x44e92c(0x1d1)])rejectLink(this[_0x44e92c(0x244)]+_0xd9ff33);this['kind']===_0x44e92c(0x1cf)?await run(this[_0x44e92c(0x19f)][_0x44e92c(0x1b5)],[...this[_0x44e92c(0x19f)][_0x44e92c(0x18e)][_0x44e92c(0x261)](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[_0x44e92c(0x244)]],{'timeout':indexTimeout()}):await run(this[_0x44e92c(0x19f)][_0x44e92c(0x1b5)],['-c',_0x44e92c(0x1c3),this[_0x44e92c(0x244)]],{'timeout':indexTimeout()});}async['migrateLegacy'](){const _0x2d4573=_0x6b8f0e;if(this[_0x2d4573(0x221)]!==_0x2d4573(0x1cf)||!this[_0x2d4573(0x19f)][_0x2d4573(0x1ac)]||fs[_0x2d4573(0x23a)](this[_0x2d4573(0x244)]))return![];const _0x18920a=path['join'](this['workspace'],'.codegraph');if(!fs[_0x2d4573(0x23a)](path[_0x2d4573(0x186)](_0x18920a,_0x2d4573(0x245))))return![];const _0x31ec00=Object['assign'](Object[_0x2d4573(0x1a9)](Object[_0x2d4573(0x19a)](this)),this,{'cache':_0x18920a,'database':path[_0x2d4573(0x186)](_0x18920a,_0x2d4573(0x245)),'env':{...this['env'],'CODEGRAPH_DIR':_0x2d4573(0x22a)}});try{const _0xc1884b=read(path[_0x2d4573(0x186)](_0x18920a,_0x2d4573(0x20f)));if(_0xc1884b?.['host']!==cacheHost){const _0x5e1dd9={};return _0x5e1dd9[_0x2d4573(0x1ea)]='preserved',_0x5e1dd9[_0x2d4573(0x24b)]=_0x2d4573(0x254),this[_0x2d4573(0x19c)]=_0x5e1dd9,![];}_0x31ec00[_0x2d4573(0x1d2)]();if(_0x31ec00[_0x2d4573(0x1e2)]()||!_0x31ec00['owned']()&&!_0x31ec00['adoptLegacy']())return![];await _0x31ec00['checkDatabase']();}catch(_0x269b76){const _0x35d52a={};return _0x35d52a[_0x2d4573(0x1ea)]=_0x2d4573(0x22e),_0x35d52a['reason']=_0x269b76[_0x2d4573(0x20c)]||_0x269b76[_0x2d4573(0x1b7)],this[_0x2d4573(0x19c)]=_0x35d52a,![];}if(!this['owned']()||fs['readdirSync'](this[_0x2d4573(0x21c)])['some'](_0x363d0b=>_0x363d0b!=='.apt-managed.json'))return![];const _0x563894=this[_0x2d4573(0x21c)]+_0x2d4573(0x19b)+crypto['randomUUID']();fs['renameSync'](this[_0x2d4573(0x21c)],_0x563894);try{fs['renameSync'](_0x18920a,this['cache']);}catch(_0x14c159){fs[_0x2d4573(0x1a5)](_0x563894,this[_0x2d4573(0x21c)]);throw _0x14c159;}return this[_0x2d4573(0x19c)]={'status':_0x2d4573(0x218),'from':_0x18920a,'to':this[_0x2d4573(0x21c)]},!![];}async[_0x6b8f0e(0x1e8)](){const _0x45a428=_0x6b8f0e;if(!this[_0x45a428(0x22d)]()&&!this[_0x45a428(0x1da)]())throw fail('UNSAFE_INDEX',_0x45a428(0x201));if(this['kind']==='codegraph'){const _0x493631=fs[_0x45a428(0x23a)](this[_0x45a428(0x244)]),_0x1c32c8=await run(this[_0x45a428(0x19f)][_0x45a428(0x1b5)],[...this[_0x45a428(0x19f)]['args'],_0x493631?'index':_0x45a428(0x1a7),this[_0x45a428(0x236)],_0x493631?'--force':'--yes'],{'cwd':this[_0x45a428(0x236)],'env':{...process.env,...this[_0x45a428(0x23b)]},'windowsHide':!![],'timeout':indexTimeout(),'maxBuffer':0x4*0x400*0x400});this[_0x45a428(0x24c)]=_0x1c32c8[_0x45a428(0x1bd)];return;}const _0x39b5de=this['resolveReview']();if(path[_0x45a428(0x1ae)](_0x39b5de[_0x45a428(0x244)])!==path[_0x45a428(0x1ae)](this[_0x45a428(0x244)]))throw fail(_0x45a428(0x1c1),_0x45a428(0x19e));const _0x31f2ac=snapshot(this[_0x45a428(0x236)]);try{const _0x39a7df=await run(this[_0x45a428(0x19f)]['command'],[bridge,'build',this['workspace']],{'cwd':this[_0x45a428(0x236)],'env':{...process.env,...this[_0x45a428(0x23b)]},'windowsHide':!![],'timeout':indexTimeout(),'maxBuffer':0x4*0x400*0x400});JSON[_0x45a428(0x239)](_0x39a7df[_0x45a428(0x199)]),this[_0x45a428(0x24c)]=_0x39a7df[_0x45a428(0x1bd)];}catch(_0x4249a7){let _0x44037a=_0x4249a7[_0x45a428(0x1b7)];try{_0x44037a=JSON['parse'](_0x4249a7['diagnostic']?.[_0x45a428(0x199)])[_0x45a428(0x192)]||_0x44037a;}catch{}throw Object[_0x45a428(0x20e)](fail(_0x4249a7[_0x45a428(0x20c)]||classify(_0x44037a),_0x44037a),{'diagnostic':_0x4249a7[_0x45a428(0x1bd)]});}if(_0x31f2ac!==snapshot(this[_0x45a428(0x236)]))throw fail(_0x45a428(0x24d),_0x45a428(0x1fd));atomic(path[_0x45a428(0x186)](this[_0x45a428(0x1e0)],_0x45a428(0x259)),{'workspace':this['workspace'],'snapshot':_0x31f2ac,'version':this['profile'][_0x45a428(0x1e5)],'database':this[_0x45a428(0x244)],'builtAt':new Date()['toISOString']()});}async[_0x6b8f0e(0x1d5)](){const _0x1bfc71=_0x6b8f0e,_0x316b0f=this[_0x1bfc71(0x25c)]();try{const _0x190f94=read(path[_0x1bfc71(0x186)](this[_0x1bfc71(0x1e0)],_0x1bfc71(0x259)));if(!_0x190f94||_0x190f94['version']!==this[_0x1bfc71(0x19f)]['version']||_0x190f94['database']!==this[_0x1bfc71(0x244)]||!fs[_0x1bfc71(0x23a)](this[_0x1bfc71(0x244)])||_0x190f94[_0x1bfc71(0x1f2)]!==snapshot(this[_0x1bfc71(0x236)]))await this[_0x1bfc71(0x1e8)]();return read(path[_0x1bfc71(0x186)](this['directory'],_0x1bfc71(0x259)));}finally{_0x316b0f();}}async[_0x6b8f0e(0x241)](_0x3a6ffc=![]){const _0x47b2c0=_0x6b8f0e,_0xc3060d=_0x3a6ffc?null:this[_0x47b2c0(0x25c)](),_0x5065d6=path[_0x47b2c0(0x186)](this[_0x47b2c0(0x1e0)],'recovery.json');let _0x4731de;try{if(!this[_0x47b2c0(0x22d)]())throw fail(_0x47b2c0(0x1c0),_0x47b2c0(0x1f9));if(this[_0x47b2c0(0x1e2)]())throw fail(_0x47b2c0(0x1cb),_0x47b2c0(0x22c));this['checkNativeLocks']();if(this[_0x47b2c0(0x221)]===_0x47b2c0(0x1b8)&&spelling(this[_0x47b2c0(0x1be)]()[_0x47b2c0(0x244)])!==spelling(this[_0x47b2c0(0x244)]))throw fail('INDEX_PATH_CHANGED',_0x47b2c0(0x19e));const _0x5de09d=fs[_0x47b2c0(0x23a)](this[_0x47b2c0(0x21c)])?fs[_0x47b2c0(0x1dd)](this[_0x47b2c0(0x21c)]):null,_0x319240=_0x5de09d?_0x5de09d+_0x47b2c0(0x19b)+crypto[_0x47b2c0(0x1c9)]():null;_0x4731de={'status':_0x47b2c0(0x18f),'backup':_0x319240,'workspace':this[_0x47b2c0(0x236)],'at':new Date()['toISOString']()},atomic(_0x5065d6,_0x4731de);if(_0x319240)fs['renameSync'](_0x5de09d,_0x319240);const _0x222096={};_0x222096[_0x47b2c0(0x1a2)]=!![],fs['mkdirSync'](this[_0x47b2c0(0x21c)],_0x222096),atomic(path[_0x47b2c0(0x186)](this[_0x47b2c0(0x21c)],_0x47b2c0(0x20f)),{'owner':_0x47b2c0(0x222),'workspace':this[_0x47b2c0(0x236)],'kind':this[_0x47b2c0(0x221)]}),await this['build']();const _0x1b5ea6={..._0x4731de};return _0x1b5ea6[_0x47b2c0(0x1ea)]='rebuilt',atomic(_0x5065d6,_0x1b5ea6),_0x319240;}catch(_0x4c690a){if(_0x4731de)atomic(_0x5065d6,{..._0x4731de,'status':_0x47b2c0(0x256),'reason':_0x4c690a[_0x47b2c0(0x1b7)]});throw _0x4c690a;}finally{_0xc3060d?.();}}async[_0x6b8f0e(0x223)](_0x269e9a,_0x9d2132){const _0x38b707=_0x6b8f0e;if(![_0x38b707(0x1b1),_0x38b707(0x1fa)][_0x38b707(0x1fc)](_0x9d2132[_0x38b707(0x20c)])||!this[_0x38b707(0x22d)]())return![];let _0x1f4cba;try{_0x1f4cba=this['lock']();}catch(_0x568ccf){const _0x172d73={};return _0x172d73[_0x38b707(0x1ea)]=_0x38b707(0x1bc),_0x172d73['reason']=_0x568ccf[_0x38b707(0x1b7)],_0x269e9a[_0x38b707(0x1a6)]=_0x172d73,![];}const _0x548dff=path[_0x38b707(0x186)](this[_0x38b707(0x1e0)],'recovery.json');try{if(this['kind']===_0x38b707(0x1b8)&&spelling(this[_0x38b707(0x1be)]()['database'])!==spelling(this[_0x38b707(0x244)]))throw fail(_0x38b707(0x1c1),_0x38b707(0x19e));if(this[_0x38b707(0x1e2)]()){const _0x5043e6={};return _0x5043e6[_0x38b707(0x1ea)]=_0x38b707(0x1bc),_0x5043e6[_0x38b707(0x24b)]=_0x38b707(0x22c),_0x269e9a[_0x38b707(0x1a6)]=_0x5043e6,![];}const _0x2782b2=hash(fs[_0x38b707(0x23a)](this[_0x38b707(0x244)])?fs[_0x38b707(0x25d)](this[_0x38b707(0x244)]):_0x38b707(0x1dc)),_0x44cc17=read(_0x548dff);if(_0x44cc17&&_0x44cc17['status']!=='recovered'&&(_0x44cc17[_0x38b707(0x1f1)]===_0x2782b2||_0x44cc17[_0x38b707(0x1db)]===_0x2782b2))return _0x269e9a[_0x38b707(0x1a6)]=_0x44cc17,![];const _0xb12b09=fs[_0x38b707(0x1dd)](this[_0x38b707(0x21c)]),_0x5ec13e=_0xb12b09+_0x38b707(0x19b)+crypto[_0x38b707(0x1c9)](),_0x385ce5=read(path[_0x38b707(0x186)](_0xb12b09,_0x38b707(0x20f))),_0xc42624={'status':'recovering','fingerprint':_0x2782b2,'backup':_0x5ec13e,'workspace':this[_0x38b707(0x236)],'at':new Date()[_0x38b707(0x213)]()};atomic(_0x548dff,_0xc42624),_0x269e9a[_0x38b707(0x1a6)]=_0xc42624;const _0x502196=_0x269e9a[_0x38b707(0x198)]===undefined?undefined:_0x269e9a[_0x38b707(0x198)]+0x1;await _0x269e9a['stopAndWait']();if(_0x269e9a[_0x38b707(0x198)]!==_0x502196)throw fail(_0x38b707(0x23d),_0x38b707(0x253));this[_0x38b707(0x1d2)]();if(!this[_0x38b707(0x22d)]())throw fail('UNSAFE_INDEX',_0x38b707(0x1c2));fs[_0x38b707(0x1a5)](_0xb12b09,_0x5ec13e),fs['mkdirSync'](_0xb12b09),atomic(path[_0x38b707(0x186)](_0xb12b09,_0x38b707(0x20f)),_0x385ce5),await this[_0x38b707(0x1e8)]();if(_0x269e9a[_0x38b707(0x198)]!==_0x502196)throw fail(_0x38b707(0x23d),_0x38b707(0x1de));_0x269e9a['start'](![],!![]);const _0x2aa78a={..._0xc42624};return _0x2aa78a[_0x38b707(0x1ea)]=_0x38b707(0x248),_0x269e9a['indexRecovery']=_0x2aa78a,atomic(_0x548dff,_0x269e9a[_0x38b707(0x1a6)]),!![];}catch(_0x11c179){const _0x26bec9=hash(fs[_0x38b707(0x23a)](this[_0x38b707(0x244)])?fs[_0x38b707(0x25d)](this[_0x38b707(0x244)]):_0x38b707(0x1dc));return _0x269e9a[_0x38b707(0x1a6)]={..._0x269e9a[_0x38b707(0x1a6)]||{},'status':'failed','failedFingerprint':_0x26bec9,'reason':_0x11c179['message']},atomic(_0x548dff,_0x269e9a['indexRecovery']),![];}finally{_0x1f4cba();}}['recovered'](_0x4d3359){const _0x427f56=_0x6b8f0e;_0x4d3359[_0x427f56(0x1a6)]={..._0x4d3359[_0x427f56(0x1a6)],'status':_0x427f56(0x25a)},atomic(path[_0x427f56(0x186)](this[_0x427f56(0x1e0)],_0x427f56(0x200)),_0x4d3359[_0x427f56(0x1a6)]);}}const _0x2d959a={};_0x2d959a[_0x6b8f0e(0x18b)]=IndexStore,_0x2d959a[_0x6b8f0e(0x1f2)]=snapshot,_0x2d959a[_0x6b8f0e(0x1a8)]=responseError,_0x2d959a[_0x6b8f0e(0x242)]=classify,_0x2d959a['atomic']=atomic,module['exports']=_0x2d959a;require[_0x6b8f0e(0x228)]===module&&(async()=>{const _0x3efffb=_0x6b8f0e,_0x481670=require(_0x3efffb(0x249)),_0x26c765=fs[_0x3efffb(0x1dd)](process['argv'][0x2]),_0x44035a=safeDirectory(_0x26c765,'.agents/runtime/backends'),_0x41c0a7={'workspace':_0x26c765,'startedAt':new Date()[_0x3efffb(0x213)](),'status':_0x3efffb(0x1b2),'backends':[]},_0x7ced2b=path[_0x3efffb(0x186)](_0x44035a,_0x3efffb(0x24a));atomic(_0x7ced2b,_0x41c0a7);for(const [_0x2f5a74,_0x15d02d]of[[_0x3efffb(0x1cf),_0x481670[_0x3efffb(0x1cf)]],['code-review-graph',_0x481670[_0x3efffb(0x207)]]]){let _0x5a8794,_0x11faa3;const _0x50fabe={'backend':_0x2f5a74,'workspace':_0x26c765,'startedAt':new Date()[_0x3efffb(0x213)](),'status':'running'};_0x41c0a7[_0x3efffb(0x20b)][_0x3efffb(0x196)](_0x50fabe);try{const _0x27438a=_0x15d02d(),_0x471e52={};_0x471e52[_0x3efffb(0x1e5)]=_0x27438a[_0x3efffb(0x1e5)],_0x471e52[_0x3efffb(0x1c8)]=_0x27438a[_0x3efffb(0x1b5)],Object[_0x3efffb(0x20e)](_0x50fabe,_0x471e52),_0x5a8794=new IndexStore(_0x2f5a74,_0x26c765,_0x27438a);const _0x176ee2={};_0x176ee2[_0x3efffb(0x21c)]=_0x5a8794[_0x3efffb(0x21c)],_0x176ee2[_0x3efffb(0x244)]=_0x5a8794[_0x3efffb(0x244)],_0x176ee2[_0x3efffb(0x252)]=_0x5a8794[_0x3efffb(0x252)]||_0x3efffb(0x19f),Object[_0x3efffb(0x20e)](_0x50fabe,_0x176ee2),_0x11faa3=_0x5a8794[_0x3efffb(0x25c)]();if(_0x5a8794[_0x3efffb(0x1e2)]())throw fail(_0x3efffb(0x1cb),_0x3efffb(0x1fe));await _0x5a8794[_0x3efffb(0x23f)](),_0x50fabe['legacyMigration']=_0x5a8794[_0x3efffb(0x19c)]||null,_0x5a8794[_0x3efffb(0x1d2)]();try{await _0x5a8794[_0x3efffb(0x1ad)](),await _0x5a8794[_0x3efffb(0x1e8)]();}catch(_0x5910d2){if(_0x5910d2[_0x3efffb(0x20c)]!==_0x3efffb(0x1fa)||!_0x5a8794[_0x3efffb(0x22d)]()&&!_0x5a8794[_0x3efffb(0x1da)]())throw _0x5910d2;_0x50fabe['recoveryStatus']=_0x3efffb(0x1b3),_0x50fabe[_0x3efffb(0x257)]=await _0x5a8794['standaloneRebuild'](!![]);}Object[_0x3efffb(0x20e)](_0x50fabe,_0x5a8794[_0x3efffb(0x24c)],{'status':_0x3efffb(0x1f4),'functionalReady':![],'recoveryStatus':_0x50fabe[_0x3efffb(0x208)]||'not-needed'}),_0x11faa3(),_0x11faa3=null;const {BackendProcess:_0x5ee006}=require(_0x3efffb(0x243)),_0x1e3886=_0x2f5a74==='codegraph'?[..._0x27438a[_0x3efffb(0x18e)],_0x3efffb(0x190),'--mcp']:_0x27438a[_0x3efffb(0x18e)],_0x4d40f5=new _0x5ee006(_0x2f5a74,_0x27438a[_0x3efffb(0x1b5)],_0x1e3886,{'cwd':_0x26c765,'env':{..._0x27438a['env'],..._0x5a8794[_0x3efffb(0x23b)]},'maxRetries':0x0});_0x4d40f5[_0x3efffb(0x210)]=_0x5a8794;try{_0x4d40f5[_0x3efffb(0x25b)](![]);const _0x5232b9={};_0x5232b9[_0x3efffb(0x1c5)]=_0x3efffb(0x1af),_0x5232b9['version']='1';const _0x41af1b={};_0x41af1b[_0x3efffb(0x255)]=_0x3efffb(0x193),_0x41af1b[_0x3efffb(0x1d7)]={},_0x41af1b[_0x3efffb(0x1cd)]=_0x5232b9,await _0x4d40f5[_0x3efffb(0x20a)](_0x41af1b);if(!_0x4d40f5[_0x3efffb(0x1ed)])throw fail(_0x3efffb(0x189),'Backend\x20did\x20not\x20pass\x20its\x20functional\x20probe');_0x50fabe[_0x3efffb(0x1ed)]=!![],_0x50fabe[_0x3efffb(0x257)]&&(_0x4d40f5[_0x3efffb(0x1a6)]=read(path[_0x3efffb(0x186)](_0x5a8794[_0x3efffb(0x1e0)],_0x3efffb(0x200))),_0x5a8794['recovered'](_0x4d40f5),_0x50fabe[_0x3efffb(0x208)]=_0x3efffb(0x25a));}finally{await _0x4d40f5[_0x3efffb(0x211)]();}}catch(_0x13883a){Object[_0x3efffb(0x20e)](_0x50fabe,_0x13883a[_0x3efffb(0x1bd)],{'status':'failed','reasonCode':_0x13883a['code']||'INDEX_SETUP_FAILED','message':_0x13883a[_0x3efffb(0x1b7)]});if(_0x5a8794){const _0x1eb504=read(path['join'](_0x5a8794[_0x3efffb(0x1e0)],_0x3efffb(0x200)));if(_0x1eb504)Object['assign'](_0x50fabe,{'recoveryStatus':_0x1eb504[_0x3efffb(0x1ea)],'backup':_0x1eb504[_0x3efffb(0x257)]});}console[_0x3efffb(0x192)]('['+_0x2f5a74+']\x20'+_0x50fabe[_0x3efffb(0x226)]+':\x20'+_0x13883a[_0x3efffb(0x1b7)]),process[_0x3efffb(0x194)]=0x2;}finally{_0x11faa3?.(),_0x50fabe['endedAt']=new Date()[_0x3efffb(0x213)](),atomic(_0x7ced2b,_0x41c0a7);}}_0x41c0a7[_0x3efffb(0x1ea)]=process[_0x3efffb(0x194)]?'failed':_0x3efffb(0x1f4),_0x41c0a7['endedAt']=new Date()[_0x3efffb(0x213)](),atomic(_0x7ced2b,_0x41c0a7);})()[_0x6b8f0e(0x234)](_0x5d0530=>{const _0x4fe1dd=_0x6b8f0e;console[_0x4fe1dd(0x192)](_0x5d0530[_0x4fe1dd(0x1b7)]),process['exitCode']=0x1;});
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
+ }