@kraki/tentacle 0.1.1 → 0.2.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.
- package/README.md +12 -0
- package/dist/cli.js +11 -10
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +7 -5
- package/dist/config.js +36 -24
- package/dist/config.js.map +1 -1
- package/dist/daemon-worker.js +9 -8
- package/dist/daemon-worker.js.map +1 -1
- package/dist/daemon.d.ts +1 -1
- package/dist/daemon.js +12 -39
- package/dist/daemon.js.map +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.js +4 -6
- package/dist/logger.js.map +1 -1
- package/dist/relay-client.d.ts +29 -9
- package/dist/relay-client.js +202 -58
- package/dist/relay-client.js.map +1 -1
- package/dist/session-manager.d.ts +4 -0
- package/dist/session-manager.js +10 -1
- package/dist/session-manager.js.map +1 -1
- package/dist/setup.js +13 -15
- package/dist/setup.js.map +1 -1
- package/package.json +3 -3
package/dist/relay-client.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Relay client — connects the tentacle to the
|
|
2
|
+
* Relay client — connects the tentacle to the relay via WebSocket.
|
|
3
3
|
*
|
|
4
|
-
* Translates adapter events into protocol messages and
|
|
5
|
-
* Receives consumer actions from
|
|
6
|
-
* Handles auth, reconnection, and session lifecycle.
|
|
4
|
+
* Translates adapter events into protocol messages and broadcasts them to apps.
|
|
5
|
+
* Receives unicast consumer actions from apps and routes them to the adapter.
|
|
6
|
+
* Handles auth, E2E encryption, reconnection, and session lifecycle.
|
|
7
7
|
*/
|
|
8
8
|
import type { DeviceInfo, AuthOkMessage } from '@kraki/protocol';
|
|
9
9
|
import type { AgentAdapter } from './adapters/base.js';
|
|
@@ -14,7 +14,9 @@ export interface RelayClientOptions {
|
|
|
14
14
|
relayUrl: string;
|
|
15
15
|
/** Device info for auth */
|
|
16
16
|
device: DeviceInfo;
|
|
17
|
-
/**
|
|
17
|
+
/** How the relay should authenticate this device */
|
|
18
|
+
authMethod: 'github_token' | 'github_oauth' | 'apikey' | 'open';
|
|
19
|
+
/** Auth token, such as a GitHub token or channel/shared key */
|
|
18
20
|
token?: string;
|
|
19
21
|
/** Reconnect delay in ms. Default: 3000 */
|
|
20
22
|
reconnectDelay?: number;
|
|
@@ -32,16 +34,21 @@ export declare class RelayClient {
|
|
|
32
34
|
private reconnectAttempts;
|
|
33
35
|
private reconnectTimer;
|
|
34
36
|
private authInfo;
|
|
35
|
-
private e2eEnabled;
|
|
36
37
|
/** Cached consumer public keys for E2E encryption */
|
|
37
38
|
private consumerKeys;
|
|
38
39
|
/** Messages queued when E2E is enabled but no consumer keys are available yet */
|
|
39
40
|
private pendingE2eQueue;
|
|
40
41
|
/** Maps pre-generated sessionId → requestId for concurrent create_session correlation */
|
|
41
42
|
private pendingRequestIds;
|
|
42
|
-
|
|
43
|
+
/** Monotonic seq counter — per tentacle, shared across all sessions. */
|
|
44
|
+
private seqCounter;
|
|
45
|
+
/** Tool kinds auto-approved via always_allow from apps */
|
|
46
|
+
private allowedTools;
|
|
47
|
+
/** Prefer challenge auth when the relay already knows this device */
|
|
48
|
+
private preferChallengeAuth;
|
|
49
|
+
private lastActivityAt;
|
|
43
50
|
private staleCheckTimer;
|
|
44
|
-
/** How long without
|
|
51
|
+
/** How long without any activity before we consider the connection stale (ms) */
|
|
45
52
|
private static readonly STALE_THRESHOLD;
|
|
46
53
|
/** How often to check for stale connection (ms) */
|
|
47
54
|
private static readonly STALE_CHECK_INTERVAL;
|
|
@@ -69,15 +76,28 @@ export declare class RelayClient {
|
|
|
69
76
|
*/
|
|
70
77
|
getAuthInfo(): AuthOkMessage | null;
|
|
71
78
|
private handleMessage;
|
|
79
|
+
private buildAuthPayload;
|
|
72
80
|
private handleConsumerMessage;
|
|
73
81
|
private handleCreateSession;
|
|
74
82
|
private wireAdapterEvents;
|
|
75
83
|
private resumeDisconnectedSessions;
|
|
76
84
|
private send;
|
|
77
85
|
/**
|
|
78
|
-
* Encrypt and send a message to the relay.
|
|
86
|
+
* Encrypt and send a message to the relay as a BroadcastEnvelope.
|
|
79
87
|
*/
|
|
80
88
|
private sendEncrypted;
|
|
89
|
+
/**
|
|
90
|
+
* Encrypt and send a message to a single device as a UnicastEnvelope.
|
|
91
|
+
*/
|
|
92
|
+
private sendUnicastTo;
|
|
93
|
+
/**
|
|
94
|
+
* Broadcast a device_greeting to all connected apps (used on auth_ok).
|
|
95
|
+
*/
|
|
96
|
+
private sendGreetingBroadcast;
|
|
97
|
+
/**
|
|
98
|
+
* Send a device_greeting unicast to a newly joined app.
|
|
99
|
+
*/
|
|
100
|
+
private sendGreetingTo;
|
|
81
101
|
/**
|
|
82
102
|
* Flush queued E2E messages once consumer keys become available.
|
|
83
103
|
*/
|
package/dist/relay-client.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Relay client — connects the tentacle to the
|
|
2
|
+
* Relay client — connects the tentacle to the relay via WebSocket.
|
|
3
3
|
*
|
|
4
|
-
* Translates adapter events into protocol messages and
|
|
5
|
-
* Receives consumer actions from
|
|
6
|
-
* Handles auth, reconnection, and session lifecycle.
|
|
4
|
+
* Translates adapter events into protocol messages and broadcasts them to apps.
|
|
5
|
+
* Receives unicast consumer actions from apps and routes them to the adapter.
|
|
6
|
+
* Handles auth, E2E encryption, reconnection, and session lifecycle.
|
|
7
7
|
*/
|
|
8
8
|
import { WebSocket } from 'ws';
|
|
9
|
-
import { importPublicKey } from '@kraki/crypto';
|
|
9
|
+
import { importPublicKey, encryptToBlob, decryptFromBlob, signChallenge } from '@kraki/crypto';
|
|
10
10
|
import { createLogger } from './logger.js';
|
|
11
11
|
const logger = createLogger('relay-client');
|
|
12
12
|
export class RelayClient {
|
|
@@ -19,18 +19,23 @@ export class RelayClient {
|
|
|
19
19
|
reconnectAttempts = 0;
|
|
20
20
|
reconnectTimer = null;
|
|
21
21
|
authInfo = null;
|
|
22
|
-
e2eEnabled = false;
|
|
23
22
|
/** Cached consumer public keys for E2E encryption */
|
|
24
23
|
consumerKeys = new Map();
|
|
25
24
|
/** Messages queued when E2E is enabled but no consumer keys are available yet */
|
|
26
25
|
pendingE2eQueue = [];
|
|
27
26
|
/** Maps pre-generated sessionId → requestId for concurrent create_session correlation */
|
|
28
27
|
pendingRequestIds = new Map();
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
/** Monotonic seq counter — per tentacle, shared across all sessions. */
|
|
29
|
+
seqCounter = 0;
|
|
30
|
+
/** Tool kinds auto-approved via always_allow from apps */
|
|
31
|
+
allowedTools = new Set();
|
|
32
|
+
/** Prefer challenge auth when the relay already knows this device */
|
|
33
|
+
preferChallengeAuth = true;
|
|
34
|
+
// Stale connection detection — tracks last incoming message to detect sleep/network changes
|
|
35
|
+
lastActivityAt = 0;
|
|
31
36
|
staleCheckTimer = null;
|
|
32
|
-
/** How long without
|
|
33
|
-
static STALE_THRESHOLD = 60_000;
|
|
37
|
+
/** How long without any activity before we consider the connection stale (ms) */
|
|
38
|
+
static STALE_THRESHOLD = 60_000;
|
|
34
39
|
/** How often to check for stale connection (ms) */
|
|
35
40
|
static STALE_CHECK_INTERVAL = 10_000;
|
|
36
41
|
/** Called when relay state changes */
|
|
@@ -58,20 +63,17 @@ export class RelayClient {
|
|
|
58
63
|
ws.on('open', () => {
|
|
59
64
|
this.setState('authenticating');
|
|
60
65
|
this.reconnectAttempts = 0;
|
|
61
|
-
this.
|
|
66
|
+
this.lastActivityAt = Date.now();
|
|
62
67
|
this.startStaleCheck();
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
device: {
|
|
67
|
-
...this.options.device,
|
|
68
|
-
publicKey: this.keyManager?.getCompactPublicKey(),
|
|
69
|
-
},
|
|
68
|
+
const device = {
|
|
69
|
+
...this.options.device,
|
|
70
|
+
publicKey: this.keyManager?.getCompactPublicKey(),
|
|
70
71
|
};
|
|
71
|
-
|
|
72
|
+
const auth = this.buildAuthPayload(device);
|
|
73
|
+
ws.send(JSON.stringify({ type: 'auth', auth, device }));
|
|
72
74
|
});
|
|
73
75
|
ws.on('message', (data) => {
|
|
74
|
-
this.
|
|
76
|
+
this.lastActivityAt = Date.now();
|
|
75
77
|
try {
|
|
76
78
|
const msg = JSON.parse(data.toString());
|
|
77
79
|
this.handleMessage(msg);
|
|
@@ -89,9 +91,9 @@ export class RelayClient {
|
|
|
89
91
|
ws.on('error', () => {
|
|
90
92
|
// Error triggers close, which handles reconnect
|
|
91
93
|
});
|
|
92
|
-
// Track
|
|
94
|
+
// Track any incoming frames as activity for stale detection
|
|
93
95
|
ws.on('ping', () => {
|
|
94
|
-
this.
|
|
96
|
+
this.lastActivityAt = Date.now();
|
|
95
97
|
});
|
|
96
98
|
}
|
|
97
99
|
/**
|
|
@@ -125,43 +127,77 @@ export class RelayClient {
|
|
|
125
127
|
handleMessage(msg) {
|
|
126
128
|
if (msg.type === 'auth_ok') {
|
|
127
129
|
this.authInfo = msg;
|
|
128
|
-
this.
|
|
130
|
+
this.preferChallengeAuth = true;
|
|
129
131
|
// Cache consumer device public keys for E2E
|
|
130
|
-
if (this.
|
|
132
|
+
if (this.authInfo.devices) {
|
|
131
133
|
this.updateConsumerKeys(this.authInfo.devices);
|
|
132
134
|
}
|
|
133
135
|
this.setState('connected');
|
|
134
136
|
this.onAuthenticated?.(this.authInfo);
|
|
135
137
|
this.resumeDisconnectedSessions();
|
|
138
|
+
this.sendGreetingBroadcast();
|
|
136
139
|
return;
|
|
137
140
|
}
|
|
138
141
|
if (msg.type === 'auth_error') {
|
|
139
|
-
|
|
142
|
+
const authError = msg;
|
|
143
|
+
if (authError.code === 'unknown_device' && this.preferChallengeAuth && this.options.device.deviceId && this.keyManager) {
|
|
144
|
+
logger.warn('Challenge auth rejected for unknown device; retrying with full auth');
|
|
145
|
+
this.preferChallengeAuth = false;
|
|
146
|
+
this.ws?.close();
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this.onFatalError?.(authError.message);
|
|
140
150
|
this.disconnect();
|
|
141
151
|
return;
|
|
142
152
|
}
|
|
153
|
+
if (msg.type === 'auth_challenge') {
|
|
154
|
+
if (this.keyManager && this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
155
|
+
try {
|
|
156
|
+
const signature = signChallenge(msg.nonce, this.keyManager.getKeyPair().privateKey);
|
|
157
|
+
this.ws.send(JSON.stringify({ type: 'auth_response', signature }));
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
logger.error({ err }, 'Failed to sign auth challenge');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (msg.type === 'server_error') {
|
|
166
|
+
logger.error({ message: msg.message, ref: msg.ref }, 'Server error');
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
143
169
|
if (msg.type === 'pong') {
|
|
144
170
|
return;
|
|
145
171
|
}
|
|
146
|
-
if (msg.type === '
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
172
|
+
if (msg.type === 'ping') {
|
|
173
|
+
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
174
|
+
this.ws.send(JSON.stringify({ type: 'pong' }));
|
|
175
|
+
}
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
// Device presence notifications — update consumer keys dynamically
|
|
179
|
+
if (msg.type === 'device_joined') {
|
|
180
|
+
const device = msg.device;
|
|
181
|
+
if (device.role === 'app') {
|
|
182
|
+
const key = device.encryptionKey ?? device.publicKey;
|
|
183
|
+
if (key) {
|
|
184
|
+
this.consumerKeys.set(device.id, key);
|
|
153
185
|
this.flushE2eQueue();
|
|
186
|
+
// Send a greeting unicast so the app learns our capabilities
|
|
187
|
+
this.sendGreetingTo(device.id, key);
|
|
154
188
|
}
|
|
155
189
|
}
|
|
156
|
-
if (msg.event === 'device_offline' || msg.event === 'device_removed') {
|
|
157
|
-
this.consumerKeys.delete(msg.data?.deviceId);
|
|
158
|
-
}
|
|
159
190
|
return;
|
|
160
191
|
}
|
|
161
|
-
|
|
162
|
-
|
|
192
|
+
if (msg.type === 'device_left') {
|
|
193
|
+
const deviceId = msg.deviceId;
|
|
194
|
+
this.consumerKeys.delete(deviceId);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
// Incoming unicast messages from apps — decrypt and handle inner message
|
|
198
|
+
if (msg.type === 'unicast' && this.keyManager && this.authInfo) {
|
|
163
199
|
try {
|
|
164
|
-
const decrypted =
|
|
200
|
+
const decrypted = decryptFromBlob({ blob: msg.blob, keys: msg.keys }, this.authInfo.deviceId, this.keyManager.getKeyPair().privateKey);
|
|
165
201
|
const inner = JSON.parse(decrypted);
|
|
166
202
|
this.handleConsumerMessage(inner);
|
|
167
203
|
}
|
|
@@ -170,9 +206,48 @@ export class RelayClient {
|
|
|
170
206
|
}
|
|
171
207
|
return;
|
|
172
208
|
}
|
|
173
|
-
// Plaintext consumer messages
|
|
209
|
+
// Plaintext consumer messages (fallback when no keyManager)
|
|
174
210
|
this.handleConsumerMessage(msg);
|
|
175
211
|
}
|
|
212
|
+
buildAuthPayload(device) {
|
|
213
|
+
if (this.preferChallengeAuth && device.deviceId && this.keyManager) {
|
|
214
|
+
return {
|
|
215
|
+
method: 'challenge',
|
|
216
|
+
deviceId: device.deviceId,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
switch (this.options.authMethod) {
|
|
220
|
+
case 'github_token':
|
|
221
|
+
if (!this.options.token) {
|
|
222
|
+
throw new Error('GitHub auth requires a token or an already-known device for challenge auth');
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
method: 'github_token',
|
|
226
|
+
token: this.options.token,
|
|
227
|
+
};
|
|
228
|
+
case 'github_oauth':
|
|
229
|
+
if (!this.options.token) {
|
|
230
|
+
throw new Error('GitHub OAuth requires a code');
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
method: 'github_oauth',
|
|
234
|
+
code: this.options.token,
|
|
235
|
+
};
|
|
236
|
+
case 'apikey':
|
|
237
|
+
if (!this.options.token) {
|
|
238
|
+
throw new Error('API key auth requires a key');
|
|
239
|
+
}
|
|
240
|
+
return {
|
|
241
|
+
method: 'apikey',
|
|
242
|
+
key: this.options.token,
|
|
243
|
+
};
|
|
244
|
+
case 'open':
|
|
245
|
+
default:
|
|
246
|
+
return this.options.token
|
|
247
|
+
? { method: 'open', sharedKey: this.options.token }
|
|
248
|
+
: { method: 'open' };
|
|
249
|
+
}
|
|
250
|
+
}
|
|
176
251
|
handleConsumerMessage(msg) {
|
|
177
252
|
// create_session is special — no sessionId yet
|
|
178
253
|
if (msg.type === 'create_session') {
|
|
@@ -203,6 +278,10 @@ export class RelayClient {
|
|
|
203
278
|
.catch((err) => logger.error({ err, sessionId }, 'respondToPermission failed'));
|
|
204
279
|
break;
|
|
205
280
|
case 'always_allow':
|
|
281
|
+
// Track auto-approved tool kinds for future permissions
|
|
282
|
+
if (msg.payload.toolKind) {
|
|
283
|
+
this.allowedTools.add(msg.payload.toolKind);
|
|
284
|
+
}
|
|
206
285
|
this.adapter.respondToPermission(sessionId, msg.payload.permissionId, 'always_allow')
|
|
207
286
|
.catch((err) => logger.error({ err, sessionId }, 'respondToPermission failed'));
|
|
208
287
|
break;
|
|
@@ -218,6 +297,12 @@ export class RelayClient {
|
|
|
218
297
|
this.adapter.abortSession(sessionId)
|
|
219
298
|
.catch((err) => logger.error({ err, sessionId }, 'abortSession failed'));
|
|
220
299
|
break;
|
|
300
|
+
case 'delete_session':
|
|
301
|
+
this.adapter.killSession(sessionId)
|
|
302
|
+
.catch((err) => logger.error({ err, sessionId }, 'killSession on delete failed'));
|
|
303
|
+
this.sessionManager.deleteSession(sessionId);
|
|
304
|
+
this.send({ type: 'session_deleted', sessionId, payload: {} });
|
|
305
|
+
break;
|
|
221
306
|
default: {
|
|
222
307
|
// Handle extended message types (e.g. set_session_mode)
|
|
223
308
|
const ext = msg;
|
|
@@ -302,6 +387,12 @@ export class RelayClient {
|
|
|
302
387
|
});
|
|
303
388
|
};
|
|
304
389
|
this.adapter.onPermissionRequest = (sessionId, event) => {
|
|
390
|
+
// Auto-approve if tool kind is in the always-allowed set
|
|
391
|
+
if (this.allowedTools.has(event.toolArgs.toolName)) {
|
|
392
|
+
this.adapter.respondToPermission(sessionId, event.id, 'approve')
|
|
393
|
+
.catch((err) => logger.error({ err, sessionId }, 'auto-approve failed'));
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
305
396
|
this.send({
|
|
306
397
|
type: 'permission',
|
|
307
398
|
sessionId,
|
|
@@ -408,7 +499,16 @@ export class RelayClient {
|
|
|
408
499
|
send(msg) {
|
|
409
500
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN)
|
|
410
501
|
return;
|
|
411
|
-
|
|
502
|
+
// Outbound messages also prove connectivity
|
|
503
|
+
this.lastActivityAt = Date.now();
|
|
504
|
+
// Tentacle assigns seq and timestamp before encryption
|
|
505
|
+
const enriched = msg;
|
|
506
|
+
enriched.seq = ++this.seqCounter;
|
|
507
|
+
enriched.timestamp = new Date().toISOString();
|
|
508
|
+
if (this.authInfo) {
|
|
509
|
+
enriched.deviceId = this.authInfo.deviceId;
|
|
510
|
+
}
|
|
511
|
+
if (this.keyManager) {
|
|
412
512
|
if (this.consumerKeys.size === 0) {
|
|
413
513
|
// No consumers online — queue (bounded to prevent memory growth)
|
|
414
514
|
if (this.pendingE2eQueue.length < 1000) {
|
|
@@ -430,7 +530,7 @@ export class RelayClient {
|
|
|
430
530
|
}
|
|
431
531
|
}
|
|
432
532
|
/**
|
|
433
|
-
* Encrypt and send a message to the relay.
|
|
533
|
+
* Encrypt and send a message to the relay as a BroadcastEnvelope.
|
|
434
534
|
*/
|
|
435
535
|
sendEncrypted(msg) {
|
|
436
536
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN || !this.keyManager)
|
|
@@ -440,26 +540,70 @@ export class RelayClient {
|
|
|
440
540
|
recipients.push({ deviceId, publicKey: importPublicKey(compactKey) });
|
|
441
541
|
}
|
|
442
542
|
const plaintext = JSON.stringify(msg);
|
|
443
|
-
const
|
|
543
|
+
const { blob, keys } = encryptToBlob(plaintext, recipients);
|
|
444
544
|
const envelope = {
|
|
445
|
-
type: '
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
ciphertext: encrypted.ciphertext,
|
|
449
|
-
tag: encrypted.tag,
|
|
450
|
-
keys: encrypted.keys,
|
|
545
|
+
type: 'broadcast',
|
|
546
|
+
blob,
|
|
547
|
+
keys,
|
|
451
548
|
};
|
|
452
|
-
//
|
|
453
|
-
if (msg.type === '
|
|
454
|
-
envelope.
|
|
455
|
-
envelope.model = msg.payload.model;
|
|
456
|
-
}
|
|
457
|
-
// Mark ephemeral messages — head forwards but doesn't persist
|
|
458
|
-
if (msg.type === 'agent_message_delta' || msg.type === 'idle') {
|
|
459
|
-
envelope.ephemeral = true;
|
|
549
|
+
// Send push notifications for permission and question messages
|
|
550
|
+
if (msg.type === 'permission' || msg.type === 'question') {
|
|
551
|
+
envelope.notify = true;
|
|
460
552
|
}
|
|
461
553
|
this.ws.send(JSON.stringify(envelope));
|
|
462
554
|
}
|
|
555
|
+
/**
|
|
556
|
+
* Encrypt and send a message to a single device as a UnicastEnvelope.
|
|
557
|
+
*/
|
|
558
|
+
sendUnicastTo(targetDeviceId, compactPubKey, msg) {
|
|
559
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN || !this.keyManager)
|
|
560
|
+
return;
|
|
561
|
+
const recipientPubKey = importPublicKey(compactPubKey);
|
|
562
|
+
const plaintext = JSON.stringify(msg);
|
|
563
|
+
const { blob, keys } = encryptToBlob(plaintext, [
|
|
564
|
+
{ deviceId: targetDeviceId, publicKey: recipientPubKey },
|
|
565
|
+
]);
|
|
566
|
+
const envelope = {
|
|
567
|
+
type: 'unicast',
|
|
568
|
+
to: targetDeviceId,
|
|
569
|
+
blob,
|
|
570
|
+
keys,
|
|
571
|
+
};
|
|
572
|
+
this.ws.send(JSON.stringify(envelope));
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* Broadcast a device_greeting to all connected apps (used on auth_ok).
|
|
576
|
+
*/
|
|
577
|
+
sendGreetingBroadcast() {
|
|
578
|
+
this.sendEncrypted({
|
|
579
|
+
type: 'device_greeting',
|
|
580
|
+
deviceId: this.authInfo?.deviceId ?? '',
|
|
581
|
+
seq: ++this.seqCounter,
|
|
582
|
+
timestamp: new Date().toISOString(),
|
|
583
|
+
payload: {
|
|
584
|
+
name: this.options.device.name,
|
|
585
|
+
kind: this.options.device.kind,
|
|
586
|
+
models: this.options.device.capabilities?.models,
|
|
587
|
+
},
|
|
588
|
+
});
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* Send a device_greeting unicast to a newly joined app.
|
|
592
|
+
*/
|
|
593
|
+
sendGreetingTo(targetDeviceId, compactPubKey) {
|
|
594
|
+
const greeting = {
|
|
595
|
+
type: 'device_greeting',
|
|
596
|
+
deviceId: this.authInfo?.deviceId ?? '',
|
|
597
|
+
seq: ++this.seqCounter,
|
|
598
|
+
timestamp: new Date().toISOString(),
|
|
599
|
+
payload: {
|
|
600
|
+
name: this.options.device.name,
|
|
601
|
+
kind: this.options.device.kind,
|
|
602
|
+
models: this.options.device.capabilities?.models,
|
|
603
|
+
},
|
|
604
|
+
};
|
|
605
|
+
this.sendUnicastTo(targetDeviceId, compactPubKey, greeting);
|
|
606
|
+
}
|
|
463
607
|
/**
|
|
464
608
|
* Flush queued E2E messages once consumer keys become available.
|
|
465
609
|
*/
|
|
@@ -489,9 +633,9 @@ export class RelayClient {
|
|
|
489
633
|
this.staleCheckTimer = setInterval(() => {
|
|
490
634
|
if (this.state !== 'connected' && this.state !== 'authenticating')
|
|
491
635
|
return;
|
|
492
|
-
const elapsed = Date.now() - this.
|
|
636
|
+
const elapsed = Date.now() - this.lastActivityAt;
|
|
493
637
|
if (elapsed > RelayClient.STALE_THRESHOLD) {
|
|
494
|
-
logger.warn(`No
|
|
638
|
+
logger.warn(`No activity for ${Math.round(elapsed / 1000)}s — connection stale, reconnecting`);
|
|
495
639
|
this.ws?.close();
|
|
496
640
|
}
|
|
497
641
|
}, RelayClient.STALE_CHECK_INTERVAL);
|
package/dist/relay-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,10 @@ export declare class SessionManager {
|
|
|
51
51
|
* Mark a session as ended normally.
|
|
52
52
|
*/
|
|
53
53
|
endSession(sessionId: string, reason: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* Delete a session permanently. Removes all files for this session.
|
|
56
|
+
*/
|
|
57
|
+
deleteSession(sessionId: string): void;
|
|
54
58
|
/**
|
|
55
59
|
* Mark a session as disconnected (agent process died unexpectedly).
|
|
56
60
|
*/
|
package/dist/session-manager.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* The head doesn't know about runs or context — it just sees sessionIds.
|
|
6
6
|
* This is the tentacle's local intelligence layer.
|
|
7
7
|
*/
|
|
8
|
-
import { mkdirSync, readFileSync, writeFileSync, existsSync, readdirSync, renameSync } from 'node:fs';
|
|
8
|
+
import { mkdirSync, readFileSync, writeFileSync, existsSync, readdirSync, renameSync, rmSync } from 'node:fs';
|
|
9
9
|
import { join } from 'node:path';
|
|
10
10
|
import { randomUUID } from 'node:crypto';
|
|
11
11
|
import { getConfigDir } from './config.js';
|
|
@@ -102,6 +102,15 @@ export class SessionManager {
|
|
|
102
102
|
this.writeRun(sessionId, run);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Delete a session permanently. Removes all files for this session.
|
|
107
|
+
*/
|
|
108
|
+
deleteSession(sessionId) {
|
|
109
|
+
const dir = this.sessionDir(sessionId);
|
|
110
|
+
if (existsSync(dir)) {
|
|
111
|
+
rmSync(dir, { recursive: true });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
105
114
|
/**
|
|
106
115
|
* Mark a session as disconnected (agent process died unexpectedly).
|
|
107
116
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|