@dexto/core 1.5.2 → 1.5.4

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.
Files changed (137) hide show
  1. package/dist/agent/DextoAgent.cjs +296 -2
  2. package/dist/agent/DextoAgent.d.ts +114 -0
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +287 -2
  5. package/dist/agent/schemas.d.ts +93 -21
  6. package/dist/agent/schemas.d.ts.map +1 -1
  7. package/dist/approval/manager.cjs +16 -0
  8. package/dist/approval/manager.d.ts +10 -0
  9. package/dist/approval/manager.d.ts.map +1 -1
  10. package/dist/approval/manager.js +16 -0
  11. package/dist/approval/types.d.ts +11 -0
  12. package/dist/approval/types.d.ts.map +1 -1
  13. package/dist/context/compaction/overflow.cjs +6 -10
  14. package/dist/context/compaction/overflow.d.ts +14 -11
  15. package/dist/context/compaction/overflow.d.ts.map +1 -1
  16. package/dist/context/compaction/overflow.js +6 -10
  17. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +15 -0
  18. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +15 -0
  19. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -1
  20. package/dist/context/compaction/providers/reactive-overflow-provider.js +15 -0
  21. package/dist/context/compaction/schemas.cjs +22 -2
  22. package/dist/context/compaction/schemas.d.ts +45 -0
  23. package/dist/context/compaction/schemas.d.ts.map +1 -1
  24. package/dist/context/compaction/schemas.js +22 -2
  25. package/dist/context/compaction/strategies/reactive-overflow.cjs +166 -26
  26. package/dist/context/compaction/strategies/reactive-overflow.d.ts +21 -0
  27. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -1
  28. package/dist/context/compaction/strategies/reactive-overflow.js +166 -26
  29. package/dist/context/manager.cjs +278 -31
  30. package/dist/context/manager.d.ts +192 -5
  31. package/dist/context/manager.d.ts.map +1 -1
  32. package/dist/context/manager.js +285 -32
  33. package/dist/context/types.d.ts +6 -0
  34. package/dist/context/types.d.ts.map +1 -1
  35. package/dist/context/utils.cjs +77 -11
  36. package/dist/context/utils.d.ts +86 -8
  37. package/dist/context/utils.d.ts.map +1 -1
  38. package/dist/context/utils.js +71 -11
  39. package/dist/events/index.cjs +7 -1
  40. package/dist/events/index.d.ts +58 -7
  41. package/dist/events/index.d.ts.map +1 -1
  42. package/dist/events/index.js +7 -1
  43. package/dist/filesystem/filesystem-service.cjs +18 -15
  44. package/dist/filesystem/filesystem-service.d.ts +3 -3
  45. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  46. package/dist/filesystem/filesystem-service.js +18 -15
  47. package/dist/filesystem/path-validator.cjs +16 -7
  48. package/dist/filesystem/path-validator.d.ts +10 -3
  49. package/dist/filesystem/path-validator.d.ts.map +1 -1
  50. package/dist/filesystem/path-validator.js +16 -7
  51. package/dist/filesystem/types.d.ts +4 -0
  52. package/dist/filesystem/types.d.ts.map +1 -1
  53. package/dist/llm/executor/stream-processor.cjs +19 -1
  54. package/dist/llm/executor/stream-processor.d.ts +3 -0
  55. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  56. package/dist/llm/executor/stream-processor.js +19 -1
  57. package/dist/llm/executor/turn-executor.cjs +219 -30
  58. package/dist/llm/executor/turn-executor.d.ts +62 -10
  59. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  60. package/dist/llm/executor/turn-executor.js +219 -30
  61. package/dist/llm/executor/types.d.ts +28 -0
  62. package/dist/llm/executor/types.d.ts.map +1 -1
  63. package/dist/llm/formatters/vercel.cjs +36 -28
  64. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  65. package/dist/llm/formatters/vercel.js +36 -28
  66. package/dist/llm/services/factory.cjs +3 -2
  67. package/dist/llm/services/factory.d.ts +3 -1
  68. package/dist/llm/services/factory.d.ts.map +1 -1
  69. package/dist/llm/services/factory.js +3 -2
  70. package/dist/llm/services/vercel.cjs +34 -6
  71. package/dist/llm/services/vercel.d.ts +23 -3
  72. package/dist/llm/services/vercel.d.ts.map +1 -1
  73. package/dist/llm/services/vercel.js +34 -6
  74. package/dist/logger/v2/schemas.cjs +4 -0
  75. package/dist/logger/v2/schemas.d.ts +16 -0
  76. package/dist/logger/v2/schemas.d.ts.map +1 -1
  77. package/dist/logger/v2/schemas.js +4 -0
  78. package/dist/logger/v2/transport-factory.cjs +4 -1
  79. package/dist/logger/v2/transport-factory.d.ts.map +1 -1
  80. package/dist/logger/v2/transport-factory.js +4 -1
  81. package/dist/logger/v2/transports/silent-transport.cjs +33 -0
  82. package/dist/logger/v2/transports/silent-transport.d.ts +15 -0
  83. package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -0
  84. package/dist/logger/v2/transports/silent-transport.js +10 -0
  85. package/dist/session/chat-session.cjs +20 -11
  86. package/dist/session/chat-session.d.ts +9 -4
  87. package/dist/session/chat-session.d.ts.map +1 -1
  88. package/dist/session/chat-session.js +20 -11
  89. package/dist/session/compaction-service.cjs +139 -0
  90. package/dist/session/compaction-service.d.ts +81 -0
  91. package/dist/session/compaction-service.d.ts.map +1 -0
  92. package/dist/session/compaction-service.js +106 -0
  93. package/dist/session/session-manager.cjs +146 -0
  94. package/dist/session/session-manager.d.ts +50 -0
  95. package/dist/session/session-manager.d.ts.map +1 -1
  96. package/dist/session/session-manager.js +146 -0
  97. package/dist/session/title-generator.cjs +2 -2
  98. package/dist/session/title-generator.js +2 -2
  99. package/dist/systemPrompt/in-built-prompts.cjs +36 -0
  100. package/dist/systemPrompt/in-built-prompts.d.ts +18 -1
  101. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  102. package/dist/systemPrompt/in-built-prompts.js +25 -0
  103. package/dist/systemPrompt/manager.cjs +22 -0
  104. package/dist/systemPrompt/manager.d.ts +10 -0
  105. package/dist/systemPrompt/manager.d.ts.map +1 -1
  106. package/dist/systemPrompt/manager.js +22 -0
  107. package/dist/systemPrompt/registry.cjs +2 -1
  108. package/dist/systemPrompt/registry.d.ts +1 -1
  109. package/dist/systemPrompt/registry.d.ts.map +1 -1
  110. package/dist/systemPrompt/registry.js +2 -1
  111. package/dist/systemPrompt/schemas.cjs +7 -0
  112. package/dist/systemPrompt/schemas.d.ts +13 -13
  113. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  114. package/dist/systemPrompt/schemas.js +7 -0
  115. package/dist/tools/error-codes.cjs +1 -0
  116. package/dist/tools/error-codes.d.ts +1 -0
  117. package/dist/tools/error-codes.d.ts.map +1 -1
  118. package/dist/tools/error-codes.js +1 -0
  119. package/dist/tools/errors.cjs +17 -0
  120. package/dist/tools/errors.d.ts +9 -0
  121. package/dist/tools/errors.d.ts.map +1 -1
  122. package/dist/tools/errors.js +17 -0
  123. package/dist/tools/internal-tools/provider.cjs +3 -2
  124. package/dist/tools/internal-tools/provider.d.ts +1 -1
  125. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  126. package/dist/tools/internal-tools/provider.js +3 -2
  127. package/dist/tools/tool-manager.cjs +77 -4
  128. package/dist/tools/tool-manager.d.ts +18 -0
  129. package/dist/tools/tool-manager.d.ts.map +1 -1
  130. package/dist/tools/tool-manager.js +78 -5
  131. package/dist/tools/types.d.ts +5 -3
  132. package/dist/tools/types.d.ts.map +1 -1
  133. package/dist/utils/index.cjs +3 -1
  134. package/dist/utils/index.d.ts +1 -0
  135. package/dist/utils/index.d.ts.map +1 -1
  136. package/dist/utils/index.js +1 -0
  137. package/package.json +1 -1
@@ -3,6 +3,7 @@ var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
8
9
  var __typeError = (msg) => {
@@ -22,6 +23,14 @@ var __copyProps = (to, from, except, desc) => {
22
23
  }
23
24
  return to;
24
25
  };
26
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
27
+ // If the importer is in node compatibility mode or this is not an ESM
28
+ // file that has been converted to a CommonJS file using a Babel-
29
+ // compatible transform (i.e. "__esModule" has not been set), then set
30
+ // "default" to the CommonJS "module.exports" for node compatibility.
31
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
32
+ mod
33
+ ));
25
34
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
35
  var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
27
36
  var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
@@ -454,7 +463,10 @@ Either:
454
463
  llmConfig.model
455
464
  );
456
465
  }
457
- const responseEvent = events.find((e) => e.name === "llm:response");
466
+ const responseEvents = events.filter(
467
+ (e) => e.name === "llm:response"
468
+ );
469
+ const responseEvent = responseEvents[responseEvents.length - 1];
458
470
  if (!responseEvent || responseEvent.name !== "llm:response") {
459
471
  const llmConfig = this.stateManager.getLLMConfig(sessionId);
460
472
  throw import_errors.LLMError.generationFailed(
@@ -638,6 +650,30 @@ Either:
638
650
  signal: cleanupSignal
639
651
  });
640
652
  listeners.push({ event: "tool:running", listener: toolRunningListener });
653
+ const contextCompactingListener = (data) => {
654
+ if (data.sessionId !== sessionId) return;
655
+ eventQueue.push({ name: "context:compacting", ...data });
656
+ };
657
+ this.agentEventBus.on("context:compacting", contextCompactingListener, {
658
+ signal: cleanupSignal
659
+ });
660
+ listeners.push({ event: "context:compacting", listener: contextCompactingListener });
661
+ const contextCompactedListener = (data) => {
662
+ if (data.sessionId !== sessionId) return;
663
+ eventQueue.push({ name: "context:compacted", ...data });
664
+ };
665
+ this.agentEventBus.on("context:compacted", contextCompactedListener, {
666
+ signal: cleanupSignal
667
+ });
668
+ listeners.push({ event: "context:compacted", listener: contextCompactedListener });
669
+ const sessionContinuedListener = (data) => {
670
+ if (data.previousSessionId !== sessionId) return;
671
+ eventQueue.push({ name: "session:continued", ...data });
672
+ };
673
+ this.agentEventBus.on("session:continued", sessionContinuedListener, {
674
+ signal: cleanupSignal
675
+ });
676
+ listeners.push({ event: "session:continued", listener: sessionContinuedListener });
641
677
  const messageQueuedListener = (data) => {
642
678
  if (data.sessionId !== sessionId) return;
643
679
  eventQueue.push({ name: "message:queued", ...data });
@@ -654,6 +690,14 @@ Either:
654
690
  signal: cleanupSignal
655
691
  });
656
692
  listeners.push({ event: "message:dequeued", listener: messageDequeuedListener });
693
+ const serviceEventListener = (data) => {
694
+ if (data.sessionId !== sessionId) return;
695
+ eventQueue.push({ name: "service:event", ...data });
696
+ };
697
+ this.agentEventBus.on("service:event", serviceEventListener, {
698
+ signal: cleanupSignal
699
+ });
700
+ listeners.push({ event: "service:event", listener: serviceEventListener });
657
701
  const runCompleteListener = (data) => {
658
702
  if (data.sessionId !== sessionId) return;
659
703
  eventQueue.push({ name: "run:complete", ...data });
@@ -789,12 +833,18 @@ Either:
789
833
  contentParts = [{ type: "text", text: textContent }];
790
834
  }
791
835
  const session = await this.sessionManager.getSession(sessionId) || await this.sessionManager.createSession(sessionId);
792
- await session.stream(contentParts, signal ? { signal } : void 0);
836
+ const streamResult = await session.stream(
837
+ contentParts,
838
+ signal ? { signal } : void 0
839
+ );
793
840
  this.sessionManager.incrementMessageCount(session.id).catch(
794
841
  (error) => this.logger.warn(
795
842
  `Failed to increment message count: ${error instanceof Error ? error.message : String(error)}`
796
843
  )
797
844
  );
845
+ if (streamResult.didCompact && streamResult.compaction) {
846
+ await this.handleSessionContinuation(session, streamResult.compaction);
847
+ }
798
848
  } catch (err) {
799
849
  const error = err instanceof import_DextoRuntimeError.DextoRuntimeError || err instanceof import_DextoValidationError.DextoValidationError ? err : err instanceof Error ? err : import_errors2.AgentError.streamFailed(String(err));
800
850
  completed = true;
@@ -1168,6 +1218,173 @@ Either:
1168
1218
  sessionId
1169
1219
  });
1170
1220
  }
1221
+ /**
1222
+ * Manually compact the context using session-native compaction.
1223
+ *
1224
+ * Session-native compaction creates a NEW session with the summary as initial context,
1225
+ * providing clean session isolation while maintaining traceability via linking.
1226
+ *
1227
+ * The old session is marked as compacted with `continuedTo` pointing to the new session,
1228
+ * and the new session has `continuedFrom` pointing back to the old session.
1229
+ *
1230
+ * @param sessionId Session ID of the session to compact (required)
1231
+ * @returns Compaction result with new session info, or null if compaction was skipped
1232
+ */
1233
+ async compactContext(sessionId) {
1234
+ this.ensureStarted();
1235
+ if (!sessionId || typeof sessionId !== "string") {
1236
+ throw import_errors2.AgentError.apiValidationError(
1237
+ "sessionId is required and must be a non-empty string"
1238
+ );
1239
+ }
1240
+ const session = await this.sessionManager.getSession(sessionId);
1241
+ if (!session) {
1242
+ throw import_session.SessionError.notFound(sessionId);
1243
+ }
1244
+ const llmService = session.getLLMService();
1245
+ const compactionStrategy = llmService.getCompactionStrategy();
1246
+ if (!compactionStrategy) {
1247
+ this.logger.warn(
1248
+ `Compaction strategy not configured for session ${sessionId} - skipping manual compaction`
1249
+ );
1250
+ return null;
1251
+ }
1252
+ const { SessionCompactionService } = await import("../session/compaction-service.js");
1253
+ const compactionService = new SessionCompactionService(
1254
+ this.sessionManager,
1255
+ compactionStrategy,
1256
+ this.logger
1257
+ );
1258
+ const compactionResult = await compactionService.compact(session, {
1259
+ reason: "manual",
1260
+ eventBus: this.agentEventBus
1261
+ });
1262
+ if (!compactionResult) {
1263
+ this.logger.debug(`Compaction skipped for session ${sessionId} - nothing to compact`);
1264
+ return null;
1265
+ }
1266
+ this.logger.info(
1267
+ `Session-native compaction complete: ${sessionId} \u2192 ${compactionResult.newSessionId}, ${compactionResult.originalMessages} messages \u2192 ~${compactionResult.summaryTokens} token summary`
1268
+ );
1269
+ return {
1270
+ previousSessionId: compactionResult.previousSessionId,
1271
+ newSessionId: compactionResult.newSessionId,
1272
+ summaryTokens: compactionResult.summaryTokens,
1273
+ originalMessages: compactionResult.originalMessages
1274
+ };
1275
+ }
1276
+ /**
1277
+ * Get the chain of linked sessions (ancestors and descendants) for a session.
1278
+ * Useful for displaying session history and understanding compaction lineage.
1279
+ *
1280
+ * @param sessionId Any session ID in the chain
1281
+ * @returns Array of session data in the chain, ordered chronologically (oldest first)
1282
+ */
1283
+ async getSessionLineage(sessionId) {
1284
+ this.ensureStarted();
1285
+ if (!sessionId || typeof sessionId !== "string") {
1286
+ throw import_errors2.AgentError.apiValidationError(
1287
+ "sessionId is required and must be a non-empty string"
1288
+ );
1289
+ }
1290
+ const chain = await this.sessionManager.getSessionChain(sessionId);
1291
+ if (chain.length === 0) {
1292
+ throw import_session.SessionError.notFound(sessionId);
1293
+ }
1294
+ const currentIndex = chain.findIndex((s) => s.id === sessionId);
1295
+ if (currentIndex < 0) {
1296
+ throw import_session.SessionError.notFound(sessionId);
1297
+ }
1298
+ return {
1299
+ chain: chain.map((s) => {
1300
+ const item = {
1301
+ id: s.id,
1302
+ createdAt: s.createdAt
1303
+ };
1304
+ if (s.continuedFrom !== void 0) {
1305
+ item.continuedFrom = s.continuedFrom;
1306
+ }
1307
+ if (s.continuedTo !== void 0) {
1308
+ item.continuedTo = s.continuedTo;
1309
+ }
1310
+ if (s.compactedAt !== void 0) {
1311
+ item.compactedAt = s.compactedAt;
1312
+ }
1313
+ return item;
1314
+ }),
1315
+ currentIndex
1316
+ };
1317
+ }
1318
+ /**
1319
+ * Get context usage statistics for a session.
1320
+ * Useful for monitoring context window usage and compaction status.
1321
+ *
1322
+ * @param sessionId Session ID (required)
1323
+ * @returns Context statistics including token estimates and message counts
1324
+ */
1325
+ async getContextStats(sessionId) {
1326
+ this.ensureStarted();
1327
+ if (!sessionId || typeof sessionId !== "string") {
1328
+ throw import_errors2.AgentError.apiValidationError(
1329
+ "sessionId is required and must be a non-empty string"
1330
+ );
1331
+ }
1332
+ const session = await this.sessionManager.getSession(sessionId);
1333
+ if (!session) {
1334
+ throw import_session.SessionError.notFound(sessionId);
1335
+ }
1336
+ const contextManager = session.getContextManager();
1337
+ const contributorContext = { mcpManager: this.mcpManager };
1338
+ const llmService = session.getLLMService();
1339
+ const tools = await llmService.getAllTools();
1340
+ const tokenEstimate = await contextManager.getContextTokenEstimate(
1341
+ contributorContext,
1342
+ tools
1343
+ );
1344
+ const history = await contextManager.getHistory();
1345
+ const runtimeConfig = this.stateManager.getRuntimeConfig(sessionId);
1346
+ const compactionConfig = runtimeConfig.compaction;
1347
+ const modelContextWindow = contextManager.getMaxInputTokens();
1348
+ let maxContextTokens = modelContextWindow;
1349
+ if (compactionConfig?.maxContextTokens !== void 0) {
1350
+ maxContextTokens = Math.min(maxContextTokens, compactionConfig.maxContextTokens);
1351
+ }
1352
+ const thresholdPercent = compactionConfig?.thresholdPercent ?? 0.9;
1353
+ if (thresholdPercent < 1) {
1354
+ maxContextTokens = Math.floor(maxContextTokens * thresholdPercent);
1355
+ }
1356
+ const hasSummary = history.some(
1357
+ (msg) => msg.metadata?.isSummary === true || msg.metadata?.isSessionSummary === true
1358
+ );
1359
+ const llmConfig = runtimeConfig.llm;
1360
+ const { getModelDisplayName } = await import("../llm/registry.js");
1361
+ const modelDisplayName = getModelDisplayName(llmConfig.model, llmConfig.provider);
1362
+ const estimatedTokens = tokenEstimate.estimated;
1363
+ const compactionCount = await this.sessionManager.getCompactionCount(sessionId);
1364
+ return {
1365
+ estimatedTokens,
1366
+ actualTokens: tokenEstimate.actual,
1367
+ maxContextTokens,
1368
+ modelContextWindow,
1369
+ thresholdPercent,
1370
+ usagePercent: maxContextTokens > 0 ? Math.round(estimatedTokens / maxContextTokens * 100) : 0,
1371
+ messageCount: tokenEstimate.stats.originalMessageCount,
1372
+ filteredMessageCount: tokenEstimate.stats.filteredMessageCount,
1373
+ prunedToolCount: tokenEstimate.stats.prunedToolCount,
1374
+ hasSummary,
1375
+ compactionCount,
1376
+ model: llmConfig.model,
1377
+ modelDisplayName,
1378
+ breakdown: {
1379
+ systemPrompt: tokenEstimate.breakdown.systemPrompt,
1380
+ tools: tokenEstimate.breakdown.tools,
1381
+ messages: tokenEstimate.breakdown.messages
1382
+ },
1383
+ ...tokenEstimate.calculationBasis && {
1384
+ calculationBasis: tokenEstimate.calculationBasis
1385
+ }
1386
+ };
1387
+ }
1171
1388
  // ============= LLM MANAGEMENT =============
1172
1389
  /**
1173
1390
  * Gets the current LLM configuration with all defaults applied.
@@ -1243,6 +1460,83 @@ Either:
1243
1460
  }
1244
1461
  return validatedConfig;
1245
1462
  }
1463
+ /**
1464
+ * Handles session-native continuation after compaction.
1465
+ *
1466
+ * When context compaction occurs, this method:
1467
+ * 1. Receives compaction data directly (summary text + preserved messages)
1468
+ * 2. Creates a new continuation session
1469
+ * 3. Adds the summary as the first message in the new session
1470
+ * 4. Adds preserved messages to the new session
1471
+ * 5. Links the old and new sessions for traceability
1472
+ * 6. Emits session:continued event for UI to handle session switch
1473
+ *
1474
+ * IMPORTANT: The original session is NOT modified. The summary was never added to it.
1475
+ * This is the clean session-native compaction approach where:
1476
+ * - Original session: UNCHANGED (full history preserved)
1477
+ * - New session: [summary, ...preservedMessages]
1478
+ *
1479
+ * @param currentSession The session that triggered compaction
1480
+ * @param compactionData The compaction data with summary text and preserved messages
1481
+ */
1482
+ async handleSessionContinuation(currentSession, compactionData) {
1483
+ const currentSessionId = currentSession.id;
1484
+ try {
1485
+ const { summaryText, preservedMessages, summarizedCount } = compactionData;
1486
+ if (!summaryText) {
1487
+ this.logger.warn(
1488
+ `Session continuation skipped: empty summary text for session ${currentSessionId}`
1489
+ );
1490
+ return;
1491
+ }
1492
+ const { sessionId: newSessionId, session: newSession } = await this.sessionManager.createContinuationSession(currentSessionId);
1493
+ const sessionSummaryMessage = {
1494
+ role: "assistant",
1495
+ content: [{ type: "text", text: summaryText }],
1496
+ timestamp: Date.now(),
1497
+ metadata: {
1498
+ isSessionSummary: true,
1499
+ continuedFrom: currentSessionId,
1500
+ summarizedAt: Date.now(),
1501
+ originalMessageCount: summarizedCount,
1502
+ originalFirstTimestamp: compactionData.originalFirstTimestamp,
1503
+ originalLastTimestamp: compactionData.originalLastTimestamp
1504
+ }
1505
+ };
1506
+ const newContextManager = newSession.getContextManager();
1507
+ await newContextManager.addMessage(sessionSummaryMessage);
1508
+ for (const msg of preservedMessages) {
1509
+ await newContextManager.addMessage(msg);
1510
+ }
1511
+ await this.sessionManager.markSessionCompacted(currentSessionId, newSessionId);
1512
+ const { estimateMessagesTokens } = await import("../context/utils.js");
1513
+ const summaryTokens = estimateMessagesTokens([sessionSummaryMessage]);
1514
+ const totalOriginalMessages = summarizedCount + preservedMessages.length;
1515
+ const newSessionLLMConfig = this.stateManager.getRuntimeConfig(newSessionId).llm;
1516
+ const { getModelDisplayName } = await import("../llm/registry.js");
1517
+ const modelDisplayName = getModelDisplayName(
1518
+ newSessionLLMConfig.model,
1519
+ newSessionLLMConfig.provider
1520
+ );
1521
+ this.logger.info(
1522
+ `Session continuation: ${currentSessionId} \u2192 ${newSessionId} (${totalOriginalMessages} messages \u2192 summary + ${preservedMessages.length} preserved)`
1523
+ );
1524
+ this.agentEventBus.emit("session:continued", {
1525
+ previousSessionId: currentSessionId,
1526
+ newSessionId,
1527
+ summaryTokens,
1528
+ originalMessages: totalOriginalMessages,
1529
+ reason: "overflow",
1530
+ sessionId: newSessionId,
1531
+ model: newSessionLLMConfig.model,
1532
+ modelDisplayName
1533
+ });
1534
+ } catch (error) {
1535
+ this.logger.error(
1536
+ `Failed to handle session continuation for ${currentSessionId}: ${error instanceof Error ? error.message : String(error)}`
1537
+ );
1538
+ }
1539
+ }
1246
1540
  /**
1247
1541
  * Performs the actual LLM switch with a validated configuration.
1248
1542
  * This is a helper method that handles state management and session switching.
@@ -377,6 +377,100 @@ export declare class DextoAgent {
377
377
  * @param sessionId Session ID (required)
378
378
  */
379
379
  clearContext(sessionId: string): Promise<void>;
380
+ /**
381
+ * Manually compact the context using session-native compaction.
382
+ *
383
+ * Session-native compaction creates a NEW session with the summary as initial context,
384
+ * providing clean session isolation while maintaining traceability via linking.
385
+ *
386
+ * The old session is marked as compacted with `continuedTo` pointing to the new session,
387
+ * and the new session has `continuedFrom` pointing back to the old session.
388
+ *
389
+ * @param sessionId Session ID of the session to compact (required)
390
+ * @returns Compaction result with new session info, or null if compaction was skipped
391
+ */
392
+ compactContext(sessionId: string): Promise<{
393
+ /** The session that was compacted */
394
+ previousSessionId: string;
395
+ /** The new session created for continuation */
396
+ newSessionId: string;
397
+ /** Estimated tokens in the summary */
398
+ summaryTokens: number;
399
+ /** Number of messages that were summarized */
400
+ originalMessages: number;
401
+ } | null>;
402
+ /**
403
+ * Get the chain of linked sessions (ancestors and descendants) for a session.
404
+ * Useful for displaying session history and understanding compaction lineage.
405
+ *
406
+ * @param sessionId Any session ID in the chain
407
+ * @returns Array of session data in the chain, ordered chronologically (oldest first)
408
+ */
409
+ getSessionLineage(sessionId: string): Promise<{
410
+ /** All sessions in the chain, ordered chronologically */
411
+ chain: Array<{
412
+ id: string;
413
+ createdAt: number;
414
+ continuedFrom?: string;
415
+ continuedTo?: string;
416
+ compactedAt?: number;
417
+ }>;
418
+ /** Index of the requested session in the chain */
419
+ currentIndex: number;
420
+ }>;
421
+ /**
422
+ * Get context usage statistics for a session.
423
+ * Useful for monitoring context window usage and compaction status.
424
+ *
425
+ * @param sessionId Session ID (required)
426
+ * @returns Context statistics including token estimates and message counts
427
+ */
428
+ getContextStats(sessionId: string): Promise<{
429
+ estimatedTokens: number;
430
+ /** Last actual token count from LLM API (null if no calls made yet) */
431
+ actualTokens: number | null;
432
+ /** Effective max context tokens (after applying maxContextTokens override and thresholdPercent) */
433
+ maxContextTokens: number;
434
+ /** The model's raw context window before any config overrides */
435
+ modelContextWindow: number;
436
+ /** Configured threshold percent (0.0-1.0), defaults to 1.0 */
437
+ thresholdPercent: number;
438
+ usagePercent: number;
439
+ messageCount: number;
440
+ filteredMessageCount: number;
441
+ prunedToolCount: number;
442
+ hasSummary: boolean;
443
+ /** Number of times this session chain has been compacted */
444
+ compactionCount: number;
445
+ /** Current model identifier */
446
+ model: string;
447
+ /** Display name for the model */
448
+ modelDisplayName: string;
449
+ /** Detailed breakdown of context usage by category */
450
+ breakdown: {
451
+ systemPrompt: number;
452
+ tools: {
453
+ total: number;
454
+ /** Per-tool token estimates */
455
+ perTool: Array<{
456
+ name: string;
457
+ tokens: number;
458
+ }>;
459
+ };
460
+ messages: number;
461
+ };
462
+ /** Calculation basis showing how the estimate was computed */
463
+ calculationBasis?: {
464
+ /** 'actuals' = used lastInput + lastOutput + newEstimate, 'estimate' = pure estimation */
465
+ method: 'actuals' | 'estimate';
466
+ /** Last actual input tokens from API (if method is 'actuals') */
467
+ lastInputTokens?: number;
468
+ /** Last actual output tokens from API (if method is 'actuals') */
469
+ lastOutputTokens?: number;
470
+ /** Estimated tokens for new messages since last call (if method is 'actuals') */
471
+ newMessagesEstimate?: number;
472
+ };
473
+ }>;
380
474
  /**
381
475
  * Gets the current LLM configuration with all defaults applied.
382
476
  * @returns Current LLM configuration
@@ -420,6 +514,26 @@ export declare class DextoAgent {
420
514
  * ```
421
515
  */
422
516
  switchLLM(llmUpdates: LLMUpdates, sessionId?: string): Promise<ValidatedLLMConfig>;
517
+ /**
518
+ * Handles session-native continuation after compaction.
519
+ *
520
+ * When context compaction occurs, this method:
521
+ * 1. Receives compaction data directly (summary text + preserved messages)
522
+ * 2. Creates a new continuation session
523
+ * 3. Adds the summary as the first message in the new session
524
+ * 4. Adds preserved messages to the new session
525
+ * 5. Links the old and new sessions for traceability
526
+ * 6. Emits session:continued event for UI to handle session switch
527
+ *
528
+ * IMPORTANT: The original session is NOT modified. The summary was never added to it.
529
+ * This is the clean session-native compaction approach where:
530
+ * - Original session: UNCHANGED (full history preserved)
531
+ * - New session: [summary, ...preservedMessages]
532
+ *
533
+ * @param currentSession The session that triggered compaction
534
+ * @param compactionData The compaction data with summary text and preserved messages
535
+ */
536
+ private handleSessionContinuation;
423
537
  /**
424
538
  * Performs the actual LLM switch with a validated configuration.
425
539
  * This is a helper method that handles state management and session switching.
@@ -1 +1 @@
1
- {"version":3,"file":"DextoAgent.d.ts","sourceRoot":"","sources":["../../src/agent/DextoAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DextoAgent.d.ts","sourceRoot":"","sources":["../../src/agent/DextoAgent.ts"],"names":[],"mappings":"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"}