@mnemonik/shared 7.100.0 → 7.101.1

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.
@@ -40,6 +40,7 @@ export function hostAdapterConformance(create, options) {
40
40
  runtimeRoot,
41
41
  credentialFamily: 'hook-family',
42
42
  runtimeEntry: join(runtimeRoot, '1.0.0', 'dist', 'hook.js'),
43
+ installationId: '11111111-1111-4111-8111-111111111111',
43
44
  };
44
45
  const deps = {
45
46
  target,
@@ -339,52 +340,9 @@ export function hostAdapterConformance(create, options) {
339
340
  await writeChanges((await adapter.plan(projectTarget)).changes);
340
341
  assert.deepEqual(await readFile(configPath('user')), before);
341
342
  });
342
- check('parses connected listings without inferring account and uses execFile arguments', async ({ deps, project, target }) => {
343
- let stdout = 'mnemonik: https://api.mnemonik.dev/mcp - ✔ Connected\n';
344
- const calls = [];
345
- const host = create({
346
- ...deps,
347
- target: { ...target, component: 'mcp' },
348
- execFile: async (...args) => {
349
- if (args[1][0] === '--version')
350
- return { stdout: versionOutput, stderr: '' };
351
- calls.push(args);
352
- return { stdout, stderr: '' };
353
- },
354
- });
355
- const inspection = await host.verify();
356
- if (options.name === 'cursor') {
357
- assert.equal(inspection.authenticatedTools, false);
358
- assert.equal(inspection.grant, undefined);
359
- assert.deepEqual(calls, []);
360
- return;
361
- }
362
- assert.equal(inspection.authenticatedTools, true);
363
- assert.equal(inspection.grant, undefined);
364
- assert.deepEqual(calls[0], [
365
- options.name === 'claude-code'
366
- ? 'claude'
367
- : options.name === 'cursor'
368
- ? 'agent'
369
- : options.name,
370
- ['mcp', 'list'],
371
- { env: deps.env, cwd: project, timeout: 5000, maxBuffer: 64 * 1024, windowsHide: true },
372
- ]);
373
- for (const listing of [
374
- 'mnemonik: not connected',
375
- 'foreign: ✔ Connected',
376
- 'mnemonik: enabled OAuth',
377
- 'mnemonik-foreign: Connected',
378
- 'mnemonik: warning: was previously connected',
379
- 'unrecognized format',
380
- ]) {
381
- stdout = listing;
382
- assert.equal((await host.verify()).authenticatedTools, false);
383
- }
384
- });
385
343
  if (options.mcpConfig)
386
344
  for (const scope of options.scopes)
387
- check(`${scope}: MCP URL only, foreign server preserved, staged lifecycle`, async ({ root, project, deps, target: base }) => {
345
+ check(`${scope}: MCP declaration has the correct machine header and preserves foreign fields`, async ({ root, project, deps, target: base }) => {
388
346
  const target = { ...base, component: 'mcp', scope };
389
347
  const adapter = create({ ...deps, target });
390
348
  const config = options.mcpConfig;
@@ -402,11 +360,16 @@ export function hostAdapterConformance(create, options) {
402
360
  const raw = plan.changes[0]?.content.toString();
403
361
  assert.ok(raw);
404
362
  assert.ok(raw.includes('https://api.mnemonik.dev/mcp'));
405
- const sessionHeader = 'headers = { "x-mcp-session-id" = "{{session_id}}" }\n';
406
- const withoutSessionHeader = options.name === 'grok' && config.toml ? raw.replace(sessionHeader, '') : raw;
363
+ const sessionHeader = /headers\s*=.*"x-mcp-session-id"\s*=\s*"\{\{session_id\}\}"/u;
364
+ const withoutSessionHeader = options.name === 'grok' && config.toml
365
+ ? raw.replace(/,?\s*"x-mcp-session-id"\s*=\s*"\{\{session_id\}\}"/u, '')
366
+ : raw;
407
367
  if (options.name === 'grok')
408
- assert.ok(raw.includes(sessionHeader));
409
- assert.doesNotMatch(withoutSessionHeader, /token|secret|headers|credential|bearer|runtime|client.?id/i);
368
+ assert.match(raw, sessionHeader);
369
+ if (scope === 'user')
370
+ assert.match(withoutSessionHeader, /x-mnemonik-installation-id/);
371
+ else
372
+ assert.doesNotMatch(withoutSessionHeader, /x-mnemonik-installation-id/);
410
373
  if (config.toml)
411
374
  assert.ok(raw.startsWith(original));
412
375
  else {
@@ -415,6 +378,13 @@ export function hostAdapterConformance(create, options) {
415
378
  assert.deepEqual(parsed.mcpServers.mnemonik, {
416
379
  ...(config.type ? { type: config.type } : {}),
417
380
  url: 'https://api.mnemonik.dev/mcp',
381
+ ...(scope === 'user'
382
+ ? {
383
+ headers: {
384
+ 'x-mnemonik-installation-id': '11111111-1111-4111-8111-111111111111',
385
+ },
386
+ }
387
+ : {}),
418
388
  });
419
389
  }
420
390
  const staged = [];
@@ -429,6 +399,43 @@ export function hostAdapterConformance(create, options) {
429
399
  await writeChanges(staged);
430
400
  assert.equal((await adapter.inspect()).declarationPresent, true);
431
401
  assert.deepEqual((await adapter.plan()).changes, plan.changes);
402
+ if (scope === 'user') {
403
+ const installed = await readFile(path, 'utf8');
404
+ if (config.toml)
405
+ await writeFile(path, installed
406
+ .replace(/,?\s*"x-mnemonik-installation-id"\s*=\s*"[^"]*"/u, '')
407
+ .replace(/\{\s*,/u, '{')
408
+ .replace(/,\s*\}/u, ' }')
409
+ .replace('url = "https://api.mnemonik.dev/mcp"\n', 'url = "https://api.mnemonik.dev/mcp"\ncustom = "keep exactly"\n'));
410
+ else {
411
+ const missing = JSON.parse(installed);
412
+ missing.mcpServers.mnemonik.custom = 'keep exactly';
413
+ missing.mcpServers.mnemonik.headers['x-foreign'] = 'keep exactly';
414
+ delete missing.mcpServers.mnemonik.headers['x-mnemonik-installation-id'];
415
+ await writeFile(path, JSON.stringify(missing, null, 2) + '\n');
416
+ }
417
+ const missingHeader = await readFile(path, 'utf8');
418
+ staged.length = 0;
419
+ await adapter.repair(writer, target);
420
+ await writeChanges(staged);
421
+ const repaired = await readFile(path, 'utf8');
422
+ assert.match(repaired, /x-mnemonik-installation-id/);
423
+ assert.match(repaired, /keep exactly/);
424
+ if (options.name === 'grok')
425
+ assert.match(repaired, /x-mcp-session-id/);
426
+ if (config.toml) {
427
+ const withoutManagedHeader = repaired
428
+ .replace(/(?:,\s*)?(?:["']x-mnemonik-installation-id["']|x-mnemonik-installation-id)\s*=\s*["'][^"']*["']\s*,?/u, '')
429
+ .replace(/\{\s*,/u, '{')
430
+ .replace(/,\s*\}/u, ' }');
431
+ assert.equal(withoutManagedHeader, missingHeader);
432
+ }
433
+ else {
434
+ const withoutManagedHeader = JSON.parse(repaired);
435
+ delete withoutManagedHeader.mcpServers.mnemonik.headers['x-mnemonik-installation-id'];
436
+ assert.equal(JSON.stringify(withoutManagedHeader, null, 2) + '\n', missingHeader);
437
+ }
438
+ }
432
439
  staged.length = 0;
433
440
  await adapter.uninstall(writer, target);
434
441
  await writeChanges(staged);
@@ -1 +1 @@
1
- {"version":3,"file":"hostAdapterConformance.js","sourceRoot":"","sources":["../../src/testing/hostAdapterConformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hostAdapterConformance.js","sourceRoot":"","sources":["../../src/testing/hostAdapterConformance.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mnemonik/shared",
3
- "version": "7.100.0",
3
+ "version": "7.101.1",
4
4
  "description": "Shared constants and utilities for Mnemonik packages",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,6 +21,8 @@ export interface Target {
21
21
  runtimeRoot: string;
22
22
  /** Non-secret hook component family recorded by the CLI installer. */
23
23
  credentialFamily: string;
24
+ /** Machine identity written only to user-scope MCP declarations. */
25
+ installationId?: string;
24
26
  /** Config paths known to have been absent before Mnemonik first wrote them. */
25
27
  createdFiles?: string[];
26
28
  /** Verified first-install config backups supplied by the ownership journal. */
@@ -123,7 +125,12 @@ export function createFileHostAdapter(
123
125
  vendorMatch: RegExp;
124
126
  instruction: string;
125
127
  signedInInstruction?: string;
126
- mcp?: { path(target: Target): string; format: 'json' | 'toml'; type?: 'http' };
128
+ mcp?: {
129
+ path(target: Target): string;
130
+ format: 'json' | 'toml';
131
+ type?: 'http';
132
+ headerKey?: 'headers' | 'http_headers';
133
+ };
127
134
  nativeConnect?: boolean;
128
135
  nativeListing?: boolean;
129
136
  desktopPaths?: string[];
@@ -223,6 +230,12 @@ export function createFileHostAdapter(
223
230
  throw error;
224
231
  });
225
232
  const url = `${apiOrigin(deps.env)}/mcp`;
233
+ const installationHeader =
234
+ target.scope === 'user' && target.installationId
235
+ ? { 'x-mnemonik-installation-id': target.installationId }
236
+ : undefined;
237
+ if (install && target.scope === 'user' && !installationHeader)
238
+ throw new Error('installation_required');
226
239
  let content: string;
227
240
  if (host.mcp.format === 'json') {
228
241
  const config = JSON.parse(raw || '{}');
@@ -239,18 +252,38 @@ export function createFileHostAdapter(
239
252
  const servers = config.mcpServers ?? {};
240
253
  const expected = { ...(host.mcp.type ? { type: host.mcp.type } : {}), url };
241
254
  const current = servers.mnemonik;
242
- const exact =
255
+ const connected =
243
256
  !!current &&
244
257
  typeof current === 'object' &&
245
258
  !Array.isArray(current) &&
246
- Object.keys(current).length === Object.keys(expected).length &&
247
259
  Object.entries(expected).every(([key, value]) => current[key] === value);
260
+ const currentHeaders =
261
+ connected &&
262
+ current.headers &&
263
+ typeof current.headers === 'object' &&
264
+ !Array.isArray(current.headers)
265
+ ? current.headers
266
+ : {};
267
+ const exact =
268
+ connected &&
269
+ (installationHeader
270
+ ? currentHeaders['x-mnemonik-installation-id'] === target.installationId
271
+ : !Object.hasOwn(currentHeaders, 'x-mnemonik-installation-id'));
248
272
  if (install === undefined) return exact ? [{ path: file, content: Buffer.from(raw) }] : [];
249
273
  if (!install && !Object.hasOwn(servers, 'mnemonik')) return [];
250
- if (Object.hasOwn(servers, 'mnemonik') && !exact && !ownedTarget)
274
+ if (Object.hasOwn(servers, 'mnemonik') && !connected && !ownedTarget)
251
275
  throw new Error('mcp_name_conflict');
252
- if (install) servers.mnemonik = expected;
253
- else delete servers.mnemonik;
276
+ if (install) {
277
+ const next = {
278
+ ...(current && typeof current === 'object' && !Array.isArray(current) ? current : {}),
279
+ ...expected,
280
+ };
281
+ const headers = { ...currentHeaders, ...installationHeader };
282
+ if (!installationHeader) delete headers['x-mnemonik-installation-id'];
283
+ if (Object.keys(headers).length) next.headers = headers;
284
+ else delete next.headers;
285
+ servers.mnemonik = next;
286
+ } else delete servers.mnemonik;
254
287
  config.mcpServers = servers;
255
288
  content = JSON.stringify(config, null, 2) + '\n';
256
289
  } else {
@@ -268,25 +301,77 @@ export function createFileHostAdapter(
268
301
  throw new Error('unsupported_mcp_toml_layout');
269
302
  const table =
270
303
  /^\s*\[\s*(?:mcp_servers|"mcp_servers"|'mcp_servers')\s*\.\s*(?:mnemonik|"mnemonik"|'mnemonik')(?:\s*\.[^\]]+)?\s*\]\s*(?:#.*)?$/;
271
- let owned = false;
272
- let found = false;
273
- let connected = false;
274
- const kept: string[] = [];
275
- for (const line of raw.match(/[^\n]*\n|[^\n]+$/g) ?? []) {
276
- const text = line.trimEnd();
277
- if (/^\s*\[/.test(text)) owned = table.test(text);
278
- if (owned) {
279
- found = true;
280
- connected ||= text.match(/^\s*url\s*=\s*["']([^"']+)["']\s*(?:#.*)?$/)?.[1] === url;
281
- } else kept.push(line);
304
+ const lines = raw.match(/[^\n]*\n|[^\n]+$/g) ?? [];
305
+ const start = lines.findIndex((line) => table.test(line.trimEnd()));
306
+ const end =
307
+ start < 0
308
+ ? -1
309
+ : lines.findIndex((line, index) => index > start && /^\s*\[/.test(line.trimEnd()));
310
+ const stop = end < 0 ? lines.length : end;
311
+ const section = start < 0 ? [] : lines.slice(start, stop);
312
+ const urlIndex = section.findIndex((line) => /^\s*url\s*=/.test(line));
313
+ const connected =
314
+ urlIndex >= 0 &&
315
+ section[urlIndex]?.trimEnd().match(/^\s*url\s*=\s*["']([^"']+)["']\s*(?:#.*)?$/)?.[1] ===
316
+ url;
317
+ const headerKey = host.mcp.headerKey ?? 'http_headers';
318
+ const headerIndex = section.findIndex((line) =>
319
+ new RegExp(`^\\s*${headerKey}\\s*=`).test(line)
320
+ );
321
+ const installationPattern =
322
+ /(?:["']x-mnemonik-installation-id["']|x-mnemonik-installation-id)\s*=\s*["']([^"']*)["']/;
323
+ const installedId =
324
+ headerIndex >= 0 ? section[headerIndex]?.match(installationPattern)?.[1] : undefined;
325
+ const exact =
326
+ connected &&
327
+ (installationHeader ? installedId === target.installationId : installedId === undefined);
328
+ if (install === undefined) return exact ? [{ path: file, content: Buffer.from(raw) }] : [];
329
+ if (!install && start < 0) return [];
330
+ if (start >= 0 && !connected && !ownedTarget) throw new Error('mcp_name_conflict');
331
+ if (!install) content = [...lines.slice(0, start), ...lines.slice(stop)].join('');
332
+ else {
333
+ const next = start < 0 ? ['[mcp_servers.mnemonik]\n', `url = "${url}"\n`] : [...section];
334
+ const nextUrl = next.findIndex((line) => /^\s*url\s*=/.test(line));
335
+ if (nextUrl >= 0) next[nextUrl] = `url = "${url}"\n`;
336
+ const nextHeader = next.findIndex((line) =>
337
+ new RegExp(`^\\s*${headerKey}\\s*=`).test(line)
338
+ );
339
+ if (nextHeader >= 0) {
340
+ const line = next[nextHeader] ?? '';
341
+ if (!/^\s*\w+\s*=\s*\{.*\}\s*(?:#.*)?$/u.test(line.trimEnd()))
342
+ throw new Error('unsupported_mcp_toml_layout');
343
+ if (installationHeader) {
344
+ next[nextHeader] = installationPattern.test(line)
345
+ ? line.replace(installationPattern, (pair) =>
346
+ pair.replace(/["']([^"']*)["']\s*$/u, JSON.stringify(target.installationId))
347
+ )
348
+ : line.replace(
349
+ /\}(\s*(?:#.*)?\r?\n?)$/u,
350
+ (suffix, ending) =>
351
+ `, "x-mnemonik-installation-id" = ${JSON.stringify(target.installationId)} }${ending}`
352
+ );
353
+ } else if (installationPattern.test(line)) {
354
+ next[nextHeader] = line
355
+ .replace(
356
+ /(?:,\s*)?(?:["']x-mnemonik-installation-id["']|x-mnemonik-installation-id)\s*=\s*["'][^"']*["']\s*,?/u,
357
+ ''
358
+ )
359
+ .replace(/\{\s*,/u, '{')
360
+ .replace(/,\s*\}/u, ' }');
361
+ }
362
+ } else if (installationHeader) {
363
+ const insert = Math.max(1, next.findIndex((line) => /^\s*url\s*=/.test(line)) + 1);
364
+ next.splice(
365
+ insert,
366
+ 0,
367
+ `${headerKey} = { "x-mnemonik-installation-id" = ${JSON.stringify(target.installationId)} }\n`
368
+ );
369
+ }
370
+ content =
371
+ start < 0
372
+ ? `${raw}${raw && !raw.endsWith('\n') ? '\n' : ''}${next.join('')}`
373
+ : [...lines.slice(0, start), ...next, ...lines.slice(stop)].join('');
282
374
  }
283
- if (install === undefined)
284
- return connected ? [{ path: file, content: Buffer.from(raw) }] : [];
285
- if (!install && !found) return [];
286
- if (found && !connected && !ownedTarget) throw new Error('mcp_name_conflict');
287
- content = kept.join('');
288
- if (install)
289
- content += `${content && !content.endsWith('\n') ? '\n' : ''}[mcp_servers.mnemonik]\nurl = "${url}"\n`;
290
375
  }
291
376
  return [{ path: file, content: Buffer.from(content) }];
292
377
  };
@@ -304,59 +389,11 @@ export function createFileHostAdapter(
304
389
  (await present(other))
305
390
  )
306
391
  otherScopes.push({ scope: other.scope, path: path(other) });
307
- let authenticatedTools = false;
308
- if (target.component === 'mcp' && host.nativeListing !== false) {
309
- try {
310
- const { stdout } = await execute(['mcp', 'list'], target);
311
- // Native listing corroborates authentication; the CLI separately proves the live account grant.
312
- // No qualified listing currently prints a server grant/account: do not invent one.
313
- const origin = apiOrigin(deps.env).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
314
- const connected = new RegExp(
315
- String.raw`^\s*mnemonik(?:\s*:|\s+)\s*(?:${origin}/mcp(?:\s+\(HTTP\))?\s*-\s*)?[✓✔√]?\s*Connected\s*$`,
316
- 'i'
317
- );
318
- const lines = stripVTControlCharacters(stdout).split(/\r?\n/);
319
- authenticatedTools = lines.some((line) => connected.test(line));
320
- if (host.name === 'codex') {
321
- const oauth = new RegExp(
322
- String.raw`^\s*mnemonik\s+${origin}/mcp\s+-\s+enabled\s+OAuth\s*$`
323
- );
324
- authenticatedTools ||= stripVTControlCharacters(stdout)
325
- .split(/\r?\n/)
326
- .some((line) => oauth.test(line));
327
- }
328
- if (host.name === 'grok' && !authenticatedTools) {
329
- const { stdout: doctor } = await execute(['mcp', 'doctor', '--json'], target);
330
- const result = JSON.parse(doctor);
331
- authenticatedTools =
332
- Array.isArray(result.servers) &&
333
- result.servers.some(
334
- (server: {
335
- name?: string;
336
- transport?: string;
337
- target?: string;
338
- healthy?: boolean;
339
- checks?: Array<{ label?: string; passed?: boolean }>;
340
- }) =>
341
- server.name === 'mnemonik' &&
342
- server.transport === 'http' &&
343
- server.target === `${apiOrigin(deps.env)}/mcp` &&
344
- server.healthy === true &&
345
- Array.isArray(server.checks) &&
346
- server.checks.some(
347
- (check) => check.label === 'handshake OK' && check.passed === true
348
- )
349
- );
350
- }
351
- } catch {
352
- /* Missing CLI, timeout or unqualified output leaves authentication unproven. */
353
- }
354
- }
355
392
  return {
356
393
  resolvedPath: await binary.resolve().catch(() => undefined),
357
394
  ...(host.nativeListing === false ? { declarationPath: path(target) } : {}),
358
395
  declarationPresent: await present(target),
359
- authenticatedTools,
396
+ authenticatedTools: false,
360
397
  otherScopes,
361
398
  };
362
399
  };
package/src/readiness.ts CHANGED
@@ -12,8 +12,6 @@ export type ReadinessConditionKind =
12
12
  | 'scanner_not_verified'
13
13
  | 'hook_not_verified'
14
14
  | 'hooks_missing'
15
- | 'host_grant_unbound'
16
- | 'host_not_connected'
17
15
  | 'scanner_omitted'
18
16
  | 'project_uncovered'
19
17
  | 'host_skipped'
@@ -177,8 +175,6 @@ const stateFor: Record<ReadinessConditionKind, Exclude<ReadinessState, 'READY'>>
177
175
  scanner_not_verified: 'LIMITED',
178
176
  hook_not_verified: 'LIMITED',
179
177
  hooks_missing: 'ACTION_REQUIRED',
180
- host_grant_unbound: 'LIMITED',
181
- host_not_connected: 'LIMITED',
182
178
  scanner_omitted: 'LIMITED',
183
179
  project_uncovered: 'LIMITED',
184
180
  host_skipped: 'LIMITED',
@@ -195,8 +191,6 @@ const rank: Record<ReadinessState, number> = {
195
191
  };
196
192
 
197
193
  function defaultAction(condition: ReadinessCondition): string | undefined {
198
- if (condition.kind === 'host_skipped' && condition.component)
199
- return `Connect it later: mnemonik connect ${condition.component}`;
200
194
  if (condition.kind === 'windows_task_creation_failed')
201
195
  return 'Run mnemonik scanner enable to try again.';
202
196
  return condition.action;
@@ -225,8 +219,7 @@ export function remainingReadinessCount(summary: ReadinessSummary): number {
225
219
  }
226
220
 
227
221
  export function describeReadiness(summary: ReadinessSummary): string {
228
- if (summary.state === 'READY')
229
- return 'Done. Your editors will use Mnemonik on their next session.';
222
+ if (summary.state === 'READY') return 'Done.';
230
223
  const count = remainingReadinessCount(summary);
231
224
  const opening =
232
225
  summary.state === 'FAILED'
@@ -33,11 +33,15 @@ function decodeBase64(text: string, length: number): Buffer {
33
33
  return bytes;
34
34
  }
35
35
 
36
- async function verifyMinisign(path: string, signaturePath: string, identity: string) {
37
- const [message, signatureText] = await Promise.all([
38
- readFile(path),
39
- readFile(signaturePath, 'utf8'),
40
- ]);
36
+ /** Pinned release identity; a downloaded manifest can never replace its own trust anchor. */
37
+ export const RELEASE_MINISIGN_PUBLIC_KEY =
38
+ 'RWSBYwgbjz0qKB4/ToA3dywBiAlQeBjoQpib4OHdjP2nDbpQnOVqpPm0';
39
+
40
+ export function verifyMinisign(
41
+ message: Buffer,
42
+ signatureText: string,
43
+ identity = RELEASE_MINISIGN_PUBLIC_KEY
44
+ ): void {
41
45
  const publicPacket = decodeBase64(identity, 42);
42
46
  const lines = signatureText.trimEnd().split(/\r?\n/);
43
47
  const [untrustedComment, encodedSignature, trustedLine, encodedGlobalSignature] = lines;
@@ -79,6 +83,14 @@ async function verifyMinisign(path: string, signaturePath: string, identity: str
79
83
  throw new Error('unsigned');
80
84
  }
81
85
 
86
+ async function verifyMinisignFile(path: string, signaturePath: string, identity: string) {
87
+ const [message, signatureText] = await Promise.all([
88
+ readFile(path),
89
+ readFile(signaturePath, 'utf8'),
90
+ ]);
91
+ verifyMinisign(message, signatureText, identity);
92
+ }
93
+
82
94
  /** Release tooling supplies the real identity and artifacts. These checks do not sign anything. */
83
95
  export async function verifySigner(path: string, signer: Signer, run = execute): Promise<void> {
84
96
  if (signer.platform === 'darwin' && /^[A-Z0-9]{10}$/.test(signer.identity)) {
@@ -104,7 +116,7 @@ export async function verifySigner(path: string, signer: Signer, run = execute):
104
116
  ]);
105
117
  } else if (signer.platform === 'linux') {
106
118
  try {
107
- await verifyMinisign(path, signer.signature, signer.identity);
119
+ await verifyMinisignFile(path, signer.signature, signer.identity);
108
120
  } catch {
109
121
  throw new Error('unsigned');
110
122
  }