agentvigil 1.0.6 → 1.0.7
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/README.md
CHANGED
|
@@ -33,6 +33,20 @@ npx agentvigil setup
|
|
|
33
33
|
npx agentvigil start
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
## Enabling Approve/Deny (macOS Accessibility permission)
|
|
37
|
+
|
|
38
|
+
Tapping **Approve**/**Deny** on your phone works by typing `1`/`3` + Enter into your terminal for you. On macOS, that requires the **Accessibility** permission — without it, you'll still get the push notification, but you'll see `Terminal.app: missing Accessibility permission for keystroke injection` in the logs and a fallback Mac notification telling you to type the key yourself.
|
|
39
|
+
|
|
40
|
+
To enable it:
|
|
41
|
+
|
|
42
|
+
1. Open **System Settings → Privacy & Security → Accessibility**.
|
|
43
|
+
2. Find **Terminal** in the list (or whichever app your terminal window belongs to — iTerm2, etc.) and toggle it **on**.
|
|
44
|
+
- If it's not in the list, click **+** and add it from `/System/Applications/Utilities/Terminal.app` (or `/Applications/iTerm.app`).
|
|
45
|
+
3. Restart the AgentVigil daemon (`npx agentvigil setup` / `npx agentvigil start`).
|
|
46
|
+
4. Trigger a permission prompt and try Approve/Deny from your phone again.
|
|
47
|
+
|
|
48
|
+
If you toggle the switch but it still doesn't work, remove the entry (select it, click **-**) and add it again — macOS sometimes needs the permission re-granted after a new process starts using it.
|
|
49
|
+
|
|
36
50
|
## Commands
|
|
37
51
|
|
|
38
52
|
| Command | Description |
|
|
@@ -32,6 +32,8 @@ export declare class AgentVigilWsServer {
|
|
|
32
32
|
private phoneSocket;
|
|
33
33
|
private sharedSecret;
|
|
34
34
|
private heartbeatTimer;
|
|
35
|
+
private static readonly MAX_PENDING_MESSAGES;
|
|
36
|
+
private pendingMessages;
|
|
35
37
|
constructor(port?: number, options?: AgentVigilWsServerOptions);
|
|
36
38
|
start(): void;
|
|
37
39
|
/** Records the shared secret derived for the currently-paired device (or clears it). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-server.d.ts","sourceRoot":"","sources":["../../src/tunnel/websocket-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,SAAS,EAAgB,MAAM,IAAI,CAAC;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAClE,0FAA0F;IAC1F,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,kKAAkK;IAClK,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"websocket-server.d.ts","sourceRoot":"","sources":["../../src/tunnel/websocket-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,SAAS,EAAgB,MAAM,IAAI,CAAC;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAClE,0FAA0F;IAC1F,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,kKAAkK;IAClK,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAkB;IAmBjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAlBjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAoD;IACnF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IAErC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAA+C;IAMrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAM;IAClD,OAAO,CAAC,eAAe,CAAgB;gBAEV,IAAI,GAAE,MAAa,EAAE,OAAO,GAAE,yBAA8B;IASzF,KAAK,IAAI,IAAI;IAyCb,wFAAwF;IACxF,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAYjD,mFAAmF;IACnF,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA+D5B,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMlC,YAAY,IAAI,IAAI;IAepB,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,IAAI,IAAI;IAUZ,OAAO,CAAC,aAAa;CAYtB"}
|
|
@@ -13,6 +13,12 @@ export class AgentVigilWsServer {
|
|
|
13
13
|
phoneSocket = null;
|
|
14
14
|
sharedSecret;
|
|
15
15
|
heartbeatTimer = null;
|
|
16
|
+
// The phone derives the shared secret from the QR-code public key as soon
|
|
17
|
+
// as it scans it, and may send encrypted messages (e.g. register_fcm_token)
|
|
18
|
+
// before its `pair` message has been processed here. Buffer those rather
|
|
19
|
+
// than dropping them, and replay once pairing completes.
|
|
20
|
+
static MAX_PENDING_MESSAGES = 10;
|
|
21
|
+
pendingMessages = [];
|
|
16
22
|
constructor(port = 3847, options = {}) {
|
|
17
23
|
this.port = port;
|
|
18
24
|
this.wss = new WebSocketServer({ port });
|
|
@@ -64,6 +70,14 @@ export class AgentVigilWsServer {
|
|
|
64
70
|
/** Records the shared secret derived for the currently-paired device (or clears it). */
|
|
65
71
|
setSharedSecret(secret) {
|
|
66
72
|
this.sharedSecret = secret;
|
|
73
|
+
if (!secret || this.pendingMessages.length === 0)
|
|
74
|
+
return;
|
|
75
|
+
const queued = this.pendingMessages;
|
|
76
|
+
this.pendingMessages = [];
|
|
77
|
+
for (const raw of queued) {
|
|
78
|
+
logger.dim('Replaying a message received before pairing completed');
|
|
79
|
+
this.onMessage(raw);
|
|
80
|
+
}
|
|
67
81
|
}
|
|
68
82
|
/** The NaCl shared secret for the paired phone, or undefined if not yet paired. */
|
|
69
83
|
getSharedSecret() {
|
|
@@ -105,7 +119,11 @@ export class AgentVigilWsServer {
|
|
|
105
119
|
return;
|
|
106
120
|
}
|
|
107
121
|
if (!this.sharedSecret) {
|
|
108
|
-
logger.
|
|
122
|
+
logger.dim('Received a message before pairing was established — queuing until pairing completes');
|
|
123
|
+
this.pendingMessages.push(raw);
|
|
124
|
+
if (this.pendingMessages.length > AgentVigilWsServer.MAX_PENDING_MESSAGES) {
|
|
125
|
+
this.pendingMessages.shift();
|
|
126
|
+
}
|
|
109
127
|
return;
|
|
110
128
|
}
|
|
111
129
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../src/tunnel/websocket-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAgB,MAAM,IAAI,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG3D,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAyBrC,MAAM,OAAO,kBAAkB;
|
|
1
|
+
{"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../src/tunnel/websocket-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAgB,MAAM,IAAI,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG3D,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAyBrC,MAAM,OAAO,kBAAkB;IAmBA;IAlBZ,GAAG,CAAkB;IACrB,WAAW,CAAqB;IAChC,aAAa,CAAqD;IAClE,SAAS,CAAmC;IAC5C,WAAW,CAA+B;IAC1C,UAAU,CAAU;IAE7B,WAAW,GAAqB,IAAI,CAAC;IACrC,YAAY,CAAqB;IACjC,cAAc,GAA0C,IAAI,CAAC;IAErE,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,yDAAyD;IACjD,MAAM,CAAU,oBAAoB,GAAG,EAAE,CAAC;IAC1C,eAAe,GAAa,EAAE,CAAC;IAEvC,YAA6B,OAAe,IAAI,EAAE,UAAqC,EAAE;QAA5D,SAAI,GAAJ,IAAI,CAAe;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,OAAyB,EAAE,EAAE;YACrE,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,6EAA6E;YAC7E,IAAI,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE;oBACjC,IAAI,CAAC;wBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAClC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAEtB,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE;gBACjC,IAAI,CAAC;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE;oBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YAEvD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACrF,MAAM,CAAC,OAAO,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,wFAAwF;IACxF,eAAe,CAAC,MAA0B;QACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEzD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,qEAAqE;QACrE,gEAAgE;QAChE,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxD,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,KAAmB,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,IAAI,CAAC,aAAa,EAAE,CAClB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAC1E,IAAI,CAAC,WAAW,CACjB,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;oBAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvF,gDAAgD;gBAClD,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;YAClG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;gBAC1E,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAA2D,CAAC;YAChG,qEAAqE;YACrE,oEAAoE;YACpE,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;gBAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC,OAAuB,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,SAAS,CAAC,KAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,YAAY;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,YAAY;YAC1B,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,oBAAoB;YAC/C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ;SACT,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,WAAW,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC;IACzD,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QACnC,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,YAAY;YAC1B,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC"}
|