@masstensor/anotify 0.5.12 → 0.5.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/vault.js CHANGED
@@ -1,8 +1,24 @@
1
- import { execFileSync } from 'node:child_process';
1
+ import { spawnSync } from 'node:child_process';
2
2
  import { createCipheriv, createDecipheriv, randomBytes, randomUUID } from 'node:crypto';
3
3
  import { mkdirSync, readFileSync, writeFileSync, existsSync, chmodSync, renameSync, rmSync } from 'node:fs';
4
4
  import { join } from 'node:path';
5
5
  import { hash } from './protocol.js';
6
+ export function keychainKey(account, run = args => spawnSync('/usr/bin/security', args, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] })) {
7
+ const found = run(['find-generic-password', '-s', 'app.agentnotify.v1', '-a', account, '-w']);
8
+ if (found.status === 0) {
9
+ const key = Buffer.from(String(found.stdout ?? '').trim(), 'base64url');
10
+ if (key.length !== 32)
11
+ throw new Error('Agent Notify Keychain entry is invalid. Do not remove it; contact support.');
12
+ return key;
13
+ }
14
+ if (found.status !== 44)
15
+ throw new Error('Cannot access the macOS login Keychain. Unlock it and retry.');
16
+ const key = randomBytes(32);
17
+ const added = run(['add-generic-password', '-s', 'app.agentnotify.v1', '-a', account, '-w', key.toString('base64url')]);
18
+ if (added.status !== 0)
19
+ throw new Error('Cannot save the Agent Notify key in the macOS login Keychain. Unlock it and retry.');
20
+ return key;
21
+ }
6
22
  export class Vault {
7
23
  dir;
8
24
  key;
@@ -23,16 +39,7 @@ export class Vault {
23
39
  }
24
40
  if (process.platform !== 'darwin')
25
41
  throw new Error('Default secret storage requires macOS Keychain');
26
- const account = hash(dir).slice(0, 32);
27
- let stored;
28
- try {
29
- stored = execFileSync('/usr/bin/security', ['find-generic-password', '-s', 'app.agentnotify.v1', '-a', account, '-w'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
30
- }
31
- catch {
32
- stored = randomBytes(32).toString('base64url');
33
- execFileSync('/usr/bin/security', ['add-generic-password', '-s', 'app.agentnotify.v1', '-a', account, '-w', stored], { stdio: 'ignore' });
34
- }
35
- this.key = Buffer.from(stored, 'base64url');
42
+ this.key = keychainKey(hash(dir).slice(0, 32));
36
43
  }
37
44
  encrypt(value) { const iv = randomBytes(12); const cipher = createCipheriv('aes-256-gcm', this.key, iv); cipher.setAAD(Buffer.from('AgentNotify/local/v1')); const data = Buffer.concat([cipher.update(JSON.stringify(value)), cipher.final()]); return Buffer.concat([iv, cipher.getAuthTag(), data]).toString('base64url'); }
38
45
  decrypt(text) { const b = Buffer.from(text, 'base64url'); const decipher = createDecipheriv('aes-256-gcm', this.key, b.subarray(0, 12)); decipher.setAAD(Buffer.from('AgentNotify/local/v1')); decipher.setAuthTag(b.subarray(12, 28)); return JSON.parse(Buffer.concat([decipher.update(b.subarray(28)), decipher.final()]).toString()); }
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/vault.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@masstensor/anotify",
3
- "version": "0.5.12",
3
+ "version": "0.5.13",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@masstensor/anotify",
9
- "version": "0.5.12",
9
+ "version": "0.5.13",
10
10
  "dependencies": {
11
11
  "@hpke/core": "^1.7.0",
12
12
  "@modelcontextprotocol/sdk": "^1.20.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masstensor/anotify",
3
- "version": "0.5.12",
3
+ "version": "0.5.13",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {