@kraki/tentacle 0.6.4 → 0.7.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.
@@ -22,6 +22,8 @@ export interface RelayClientOptions {
22
22
  reconnectDelay?: number;
23
23
  /** Max reconnect attempts. Default: Infinity */
24
24
  maxReconnects?: number;
25
+ /** Tentacle version string (included in device_greeting) */
26
+ version?: string;
25
27
  }
26
28
  export type RelayClientState = 'disconnected' | 'connecting' | 'authenticating' | 'connected';
27
29
  export declare class RelayClient {
@@ -44,6 +46,10 @@ export declare class RelayClient {
44
46
  private seqCounter;
45
47
  /** Prefer challenge auth when the relay already knows this device */
46
48
  private preferChallengeAuth;
49
+ /** Turn count per session (for title generation scheduling) */
50
+ private turnCounts;
51
+ /** Sessions currently generating a title (prevent concurrent generation) */
52
+ private titleGenerationInFlight;
47
53
  private lastActivityAt;
48
54
  private staleCheckTimer;
49
55
  /** How long without any activity before we consider the connection stale (ms) */
@@ -78,6 +84,12 @@ export declare class RelayClient {
78
84
  private handleConsumerMessage;
79
85
  private handleCreateSession;
80
86
  private handleForkSession;
87
+ /**
88
+ * Process queued unicast envelopes delivered by the relay in auth_ok.
89
+ * These are messages sent by arms while this tentacle was offline.
90
+ * Must run before broadcastSessionList so deletes/mode changes take effect first.
91
+ */
92
+ private processPendingMessages;
81
93
  private wireAdapterEvents;
82
94
  private resumeDisconnectedSessions;
83
95
  /**
@@ -118,6 +130,7 @@ export declare class RelayClient {
118
130
  */
119
131
  private flushE2eQueue;
120
132
  private updateConsumerKeys;
133
+ private maybeGenerateTitle;
121
134
  private startStaleCheck;
122
135
  private stopStaleCheck;
123
136
  private scheduleReconnect;
@@ -32,6 +32,11 @@ export class RelayClient {
32
32
  seqCounter = 0;
33
33
  /** Prefer challenge auth when the relay already knows this device */
34
34
  preferChallengeAuth = true;
35
+ // ── Title generation state ──────────────────────────
36
+ /** Turn count per session (for title generation scheduling) */
37
+ turnCounts = new Map();
38
+ /** Sessions currently generating a title (prevent concurrent generation) */
39
+ titleGenerationInFlight = new Set();
35
40
  // Stale connection detection — tracks last incoming message to detect sleep/network changes
36
41
  lastActivityAt = 0;
37
42
  staleCheckTimer = null;
@@ -135,6 +140,9 @@ export class RelayClient {
135
140
  }
136
141
  this.setState('connected');
137
142
  this.onAuthenticated?.(this.authInfo);
143
+ // Process queued messages from the relay BEFORE broadcasting session list
144
+ // so that deletes/mode changes are applied first
145
+ this.processPendingMessages(this.authInfo.pendingMessages);
138
146
  this.resumeDisconnectedSessions();
139
147
  this.sendGreetingBroadcast();
140
148
  this.broadcastSessionList();
@@ -335,6 +343,11 @@ export class RelayClient {
335
343
  break;
336
344
  case 'mark_read':
337
345
  this.sessionManager.markRead(sessionId, msg.payload.seq);
346
+ this.send({
347
+ type: 'session_read',
348
+ sessionId,
349
+ payload: { seq: msg.payload.seq },
350
+ });
338
351
  break;
339
352
  case 'set_session_mode': {
340
353
  const mode = msg.payload.mode;
@@ -347,6 +360,45 @@ export class RelayClient {
347
360
  });
348
361
  break;
349
362
  }
363
+ case 'rename_session': {
364
+ const newTitle = msg.payload.title;
365
+ if (newTitle) {
366
+ this.sessionManager.setTitle(sessionId, newTitle);
367
+ }
368
+ else {
369
+ // Empty string = clear manual title
370
+ this.sessionManager.setTitle(sessionId, '');
371
+ }
372
+ const meta = this.sessionManager.getMeta(sessionId);
373
+ this.send({
374
+ type: 'session_title_updated',
375
+ sessionId,
376
+ payload: { title: meta?.title, autoTitle: meta?.autoTitle },
377
+ });
378
+ break;
379
+ }
380
+ case 'set_session_model': {
381
+ const { model, reasoningEffort } = msg.payload;
382
+ this.adapter.setSessionModel(sessionId, model, reasoningEffort)
383
+ .catch((err) => logger.error({ err, sessionId }, 'setSessionModel failed'));
384
+ this.sessionManager.setModel(sessionId, model);
385
+ this.send({
386
+ type: 'session_model_set',
387
+ sessionId,
388
+ payload: { model, reasoningEffort },
389
+ });
390
+ break;
391
+ }
392
+ case 'pin_session': {
393
+ const pinned = msg.payload.pinned;
394
+ this.sessionManager.setPin(sessionId, pinned);
395
+ this.send({
396
+ type: 'session_pinned',
397
+ sessionId,
398
+ payload: { pinned },
399
+ });
400
+ break;
401
+ }
350
402
  default:
351
403
  break;
352
404
  }
@@ -367,10 +419,16 @@ export class RelayClient {
367
419
  }
368
420
  try {
369
421
  const result = await this.adapter.createSession({ model, reasoningEffort, cwd: cwd || '/', sessionId: preSessionId });
370
- // If an initial prompt was provided, send it to the new session
422
+ // If an initial prompt was provided, send it to the new session.
423
+ // Otherwise mark idle — the SDK only fires session.idle after a turn
424
+ // completes, so without a prompt the session would stay 'active' forever.
371
425
  if (prompt && result.sessionId) {
372
426
  await this.adapter.sendMessage(result.sessionId, prompt);
373
427
  }
428
+ else if (result.sessionId) {
429
+ this.sessionManager.markIdle(result.sessionId);
430
+ this.send({ type: 'idle', sessionId: result.sessionId, payload: {} });
431
+ }
374
432
  }
375
433
  catch (err) {
376
434
  this.pendingRequestIds.delete(preSessionId);
@@ -398,11 +456,9 @@ export class RelayClient {
398
456
  }
399
457
  // 2. Fork SDK session state and resume
400
458
  await this.adapter.forkSession(sourceSessionId, newId);
401
- // 3. Restore permission mode from source
402
- const sourceMeta = this.sessionManager.getMeta(sourceSessionId);
403
- if (sourceMeta?.mode) {
404
- this.adapter.setSessionMode(newId, sourceMeta.mode);
405
- }
459
+ // 3. Forked session is idle until the user sends a message
460
+ this.sessionManager.markIdle(newId);
461
+ this.send({ type: 'idle', sessionId: newId, payload: {} });
406
462
  }
407
463
  catch (err) {
408
464
  logger.error({ err, sourceSessionId }, 'Fork session failed');
@@ -415,6 +471,27 @@ export class RelayClient {
415
471
  }
416
472
  }
417
473
  }
474
+ // ── Pending message processing ─────────────────────
475
+ /**
476
+ * Process queued unicast envelopes delivered by the relay in auth_ok.
477
+ * These are messages sent by arms while this tentacle was offline.
478
+ * Must run before broadcastSessionList so deletes/mode changes take effect first.
479
+ */
480
+ processPendingMessages(messages) {
481
+ if (!messages || messages.length === 0 || !this.keyManager || !this.authInfo)
482
+ return;
483
+ logger.info(`Processing ${messages.length} pending message(s) from relay`);
484
+ for (const envelope of messages) {
485
+ try {
486
+ const decrypted = decryptFromBlob({ blob: envelope.blob, keys: envelope.keys }, this.authInfo.deviceId, this.keyManager.getKeyPair().privateKey);
487
+ const inner = JSON.parse(decrypted);
488
+ this.handleConsumerMessage(inner);
489
+ }
490
+ catch (err) {
491
+ logger.warn({ err }, 'Failed to process pending message');
492
+ }
493
+ }
494
+ }
418
495
  // ── Adapter event wiring ────────────────────────────
419
496
  wireAdapterEvents() {
420
497
  this.adapter.onSessionCreated = (event) => {
@@ -518,7 +595,14 @@ export class RelayClient {
518
595
  };
519
596
  this.adapter.onIdle = (sessionId) => {
520
597
  this.sessionManager.markIdle(sessionId);
521
- this.send({ type: 'idle', sessionId, payload: {} });
598
+ const usage = this.adapter.getSessionUsage(sessionId) ?? undefined;
599
+ if (usage)
600
+ this.sessionManager.setUsage(sessionId, usage);
601
+ this.send({ type: 'idle', sessionId, payload: { usage } });
602
+ this.maybeGenerateTitle(sessionId);
603
+ };
604
+ this.adapter.onUsageUpdate = (sessionId, usage) => {
605
+ this.sessionManager.setUsage(sessionId, usage);
522
606
  };
523
607
  this.adapter.onError = (sessionId, event) => {
524
608
  this.send({
@@ -529,12 +613,26 @@ export class RelayClient {
529
613
  };
530
614
  this.adapter.onSessionEnded = (sessionId, event) => {
531
615
  this.sessionManager.endSession(sessionId, event.reason);
616
+ this.turnCounts.delete(sessionId);
617
+ this.titleGenerationInFlight.delete(sessionId);
532
618
  this.send({
533
619
  type: 'session_ended',
534
620
  sessionId,
535
621
  payload: { reason: event.reason },
536
622
  });
537
623
  };
624
+ // SDK title fallback — use as fast placeholder while LLM generation runs
625
+ this.adapter.onTitleChanged = (sessionId, title) => {
626
+ const meta = this.sessionManager.getMeta(sessionId);
627
+ if (!meta?.autoTitle) {
628
+ this.sessionManager.setAutoTitle(sessionId, title);
629
+ this.send({
630
+ type: 'session_title_updated',
631
+ sessionId,
632
+ payload: { title: meta?.title, autoTitle: title },
633
+ });
634
+ }
635
+ };
538
636
  }
539
637
  // ── Session resume on reconnect ─────────────────────
540
638
  async resumeDisconnectedSessions() {
@@ -548,6 +646,10 @@ export class RelayClient {
548
646
  if (meta.mode) {
549
647
  this.adapter.setSessionMode(meta.id, meta.mode);
550
648
  }
649
+ // Restore persisted usage totals so accumulation continues
650
+ if (meta.usage) {
651
+ this.adapter.setSessionUsage(meta.id, meta.usage);
652
+ }
551
653
  }
552
654
  catch (err) {
553
655
  logger.warn({ err, sessionId: meta.id }, 'Session resume failed after restart');
@@ -744,6 +846,7 @@ export class RelayClient {
744
846
  kind: this.options.device.kind,
745
847
  models: this.options.device.capabilities?.models,
746
848
  modelDetails: this.options.device.capabilities?.modelDetails,
849
+ version: this.options.version,
747
850
  },
748
851
  });
749
852
  }
@@ -761,6 +864,7 @@ export class RelayClient {
761
864
  kind: this.options.device.kind,
762
865
  models: this.options.device.capabilities?.models,
763
866
  modelDetails: this.options.device.capabilities?.modelDetails,
867
+ version: this.options.version,
764
868
  },
765
869
  };
766
870
  this.sendUnicastTo(targetDeviceId, compactPubKey, greeting);
@@ -788,6 +892,69 @@ export class RelayClient {
788
892
  // Flush queued messages now that we have consumer keys
789
893
  this.flushE2eQueue();
790
894
  }
895
+ // ── Title generation scheduling ──────────────────────
896
+ maybeGenerateTitle(sessionId) {
897
+ const turns = (this.turnCounts.get(sessionId) ?? 0) + 1;
898
+ this.turnCounts.set(sessionId, turns);
899
+ const meta = this.sessionManager.getMeta(sessionId);
900
+ if (!meta)
901
+ return;
902
+ // Manual title set — skip auto-generation
903
+ if (meta.title)
904
+ return;
905
+ // Schedule: turn 1, turn 5, then every 20 turns
906
+ const shouldGenerate = turns === 1 || turns === 5
907
+ || (turns > 5 && (turns - 5) % 20 === 0);
908
+ logger.debug({ sessionId, turns, shouldGenerate }, 'maybeGenerateTitle check');
909
+ if (!shouldGenerate)
910
+ return;
911
+ // One generation in flight per session
912
+ if (this.titleGenerationInFlight.has(sessionId))
913
+ return;
914
+ this.titleGenerationInFlight.add(sessionId);
915
+ // Read context from message log — focus on recent messages
916
+ const allMsgs = this.sessionManager.getMessagesAfterSeq(sessionId, 0);
917
+ const userMessages = [];
918
+ for (const m of allMsgs) {
919
+ try {
920
+ const parsed = JSON.parse(m.payload);
921
+ if (parsed.type === 'user_message' && parsed.payload?.content) {
922
+ userMessages.push(parsed.payload.content);
923
+ }
924
+ }
925
+ catch { /* skip */ }
926
+ }
927
+ const lastUserMessage = userMessages[userMessages.length - 1] ?? '';
928
+ // For context: last 3 user messages, most recent first
929
+ const recentMessages = userMessages.slice(-3).reverse();
930
+ logger.debug({ sessionId, turns, lastUserMessage: lastUserMessage.slice(0, 50), totalUserMsgs: userMessages.length }, 'Title generation starting');
931
+ if (!lastUserMessage) {
932
+ this.titleGenerationInFlight.delete(sessionId);
933
+ return;
934
+ }
935
+ this.adapter.generateTitle({
936
+ firstUserMessage: recentMessages[recentMessages.length - 1] ?? lastUserMessage,
937
+ lastUserMessage,
938
+ recentMessages,
939
+ })
940
+ .then((title) => {
941
+ if (title) {
942
+ this.sessionManager.setAutoTitle(sessionId, title);
943
+ this.send({
944
+ type: 'session_title_updated',
945
+ sessionId,
946
+ payload: { title: this.sessionManager.getMeta(sessionId)?.title, autoTitle: title },
947
+ });
948
+ logger.info({ sessionId, title, turn: turns }, 'Auto-title generated');
949
+ }
950
+ })
951
+ .catch((err) => {
952
+ logger.warn({ err, sessionId }, 'Title generation failed');
953
+ })
954
+ .finally(() => {
955
+ this.titleGenerationInFlight.delete(sessionId);
956
+ });
957
+ }
791
958
  // ── Stale connection detection ───────────────────────
792
959
  startStaleCheck() {
793
960
  this.stopStaleCheck();
@@ -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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"}
@@ -25,14 +25,18 @@ export interface SessionMeta {
25
25
  agent: string;
26
26
  model?: string;
27
27
  title?: string;
28
+ autoTitle?: string;
28
29
  state: 'active' | 'idle' | 'ended' | 'disconnected';
29
30
  mode: SessionMode;
31
+ pinned?: boolean;
30
32
  currentRunId: string;
31
33
  totalRuns: number;
32
34
  lastSeq: number;
33
35
  readSeq: number;
34
36
  createdAt: string;
35
37
  updatedAt: string;
38
+ /** Cumulative token usage (persisted across restarts) */
39
+ usage?: import('@kraki/protocol').SessionUsage;
36
40
  }
37
41
  export interface RunRecord {
38
42
  id: string;
@@ -100,10 +104,26 @@ export declare class SessionManager {
100
104
  * Update session title (e.g., auto-generated by agent).
101
105
  */
102
106
  setTitle(sessionId: string, title: string): void;
107
+ /**
108
+ * Set LLM-generated auto-title.
109
+ */
110
+ setAutoTitle(sessionId: string, autoTitle: string): void;
103
111
  /**
104
112
  * Set session permission mode.
105
113
  */
106
114
  setMode(sessionId: string, mode: SessionMode): void;
115
+ /**
116
+ * Set session pin state.
117
+ */
118
+ setPin(sessionId: string, pinned: boolean): void;
119
+ /**
120
+ * Set session model.
121
+ */
122
+ setModel(sessionId: string, model: string): void;
123
+ /**
124
+ * Update cumulative token usage for a session.
125
+ */
126
+ setUsage(sessionId: string, usage: import('@kraki/protocol').SessionUsage): void;
107
127
  /**
108
128
  * Get all sessions that need resume on restart (active, idle, or disconnected).
109
129
  */
@@ -137,12 +157,15 @@ export declare class SessionManager {
137
157
  agent: string;
138
158
  model?: string;
139
159
  title?: string;
160
+ autoTitle?: string;
140
161
  state: 'active' | 'idle';
141
162
  mode: SessionMode;
163
+ pinned?: boolean;
142
164
  lastSeq: number;
143
165
  readSeq: number;
144
166
  messageCount: number;
145
167
  createdAt: string;
168
+ usage?: import('@kraki/protocol').SessionUsage;
146
169
  }>;
147
170
  private sessionDir;
148
171
  private readMeta;
@@ -213,8 +213,9 @@ export class SessionManager {
213
213
  agent: sourceMeta.agent,
214
214
  model: sourceMeta.model,
215
215
  title: sourceMeta.title ? `Fork of ${sourceMeta.title}` : undefined,
216
+ autoTitle: sourceMeta.autoTitle,
216
217
  state: 'active',
217
- mode: sourceMeta.mode ?? 'discuss',
218
+ mode: 'discuss',
218
219
  currentRunId: runId,
219
220
  totalRuns: 1,
220
221
  lastSeq: sourceMeta.lastSeq ?? 0,
@@ -275,7 +276,18 @@ export class SessionManager {
275
276
  const meta = this.readMeta(sessionId);
276
277
  if (!meta)
277
278
  return;
278
- meta.title = title;
279
+ meta.title = title || undefined;
280
+ meta.updatedAt = new Date().toISOString();
281
+ this.writeMeta(sessionId, meta);
282
+ }
283
+ /**
284
+ * Set LLM-generated auto-title.
285
+ */
286
+ setAutoTitle(sessionId, autoTitle) {
287
+ const meta = this.readMeta(sessionId);
288
+ if (!meta)
289
+ return;
290
+ meta.autoTitle = autoTitle;
279
291
  meta.updatedAt = new Date().toISOString();
280
292
  this.writeMeta(sessionId, meta);
281
293
  }
@@ -290,6 +302,39 @@ export class SessionManager {
290
302
  meta.updatedAt = new Date().toISOString();
291
303
  this.writeMeta(sessionId, meta);
292
304
  }
305
+ /**
306
+ * Set session pin state.
307
+ */
308
+ setPin(sessionId, pinned) {
309
+ const meta = this.readMeta(sessionId);
310
+ if (!meta)
311
+ return;
312
+ meta.pinned = pinned || undefined;
313
+ meta.updatedAt = new Date().toISOString();
314
+ this.writeMeta(sessionId, meta);
315
+ }
316
+ /**
317
+ * Set session model.
318
+ */
319
+ setModel(sessionId, model) {
320
+ const meta = this.readMeta(sessionId);
321
+ if (!meta)
322
+ return;
323
+ meta.model = model;
324
+ meta.updatedAt = new Date().toISOString();
325
+ this.writeMeta(sessionId, meta);
326
+ }
327
+ /**
328
+ * Update cumulative token usage for a session.
329
+ */
330
+ setUsage(sessionId, usage) {
331
+ const meta = this.readMeta(sessionId);
332
+ if (!meta)
333
+ return;
334
+ meta.usage = usage;
335
+ meta.updatedAt = new Date().toISOString();
336
+ this.writeMeta(sessionId, meta);
337
+ }
293
338
  /**
294
339
  * Get all sessions that need resume on restart (active, idle, or disconnected).
295
340
  */
@@ -408,12 +453,15 @@ export class SessionManager {
408
453
  agent: meta.agent,
409
454
  model: meta.model,
410
455
  title: meta.title,
456
+ autoTitle: meta.autoTitle,
411
457
  state,
412
458
  mode: meta.mode ?? 'discuss',
459
+ pinned: meta.pinned || undefined,
413
460
  lastSeq: meta.lastSeq ?? 0,
414
461
  readSeq: meta.readSeq ?? 0,
415
462
  messageCount,
416
463
  createdAt: meta.createdAt,
464
+ usage: meta.usage,
417
465
  });
418
466
  }
419
467
  return result;