@dexto/core 1.8.10 → 1.8.11

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.
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var content_audit_exports = {};
20
+ __export(content_audit_exports, {
21
+ describeContentInputForAudit: () => describeContentInputForAudit,
22
+ describeContentPartsForAudit: () => describeContentPartsForAudit,
23
+ describeInternalMessageTailForAudit: () => describeInternalMessageTailForAudit
24
+ });
25
+ module.exports = __toCommonJS(content_audit_exports);
26
+ var import_node_util = require("node:util");
27
+ async function describeContentInputForAudit(content) {
28
+ if (typeof content === "string") {
29
+ return describeContentPartsForAudit([{ type: "text", text: content }]);
30
+ }
31
+ return describeContentPartsForAudit(content);
32
+ }
33
+ async function describeContentPartsForAudit(content) {
34
+ let textParts = 0;
35
+ let imageParts = 0;
36
+ let fileParts = 0;
37
+ let resourceParts = 0;
38
+ let uiResourceParts = 0;
39
+ const textSegments = [];
40
+ for (const part of content) {
41
+ switch (part.type) {
42
+ case "text":
43
+ textParts += 1;
44
+ textSegments.push(part.text);
45
+ break;
46
+ case "image":
47
+ imageParts += 1;
48
+ break;
49
+ case "file":
50
+ fileParts += 1;
51
+ break;
52
+ case "resource":
53
+ resourceParts += 1;
54
+ break;
55
+ case "ui-resource":
56
+ uiResourceParts += 1;
57
+ break;
58
+ }
59
+ }
60
+ const textLength = textSegments.reduce((total, text) => total + text.length, 0);
61
+ const textSha256 = textLength > 0 ? await sha256Hex(textSegments.join("\n")) : void 0;
62
+ return {
63
+ totalParts: content.length,
64
+ textParts,
65
+ imageParts,
66
+ fileParts,
67
+ resourceParts,
68
+ uiResourceParts,
69
+ textLength,
70
+ ...textSha256 !== void 0 && { textSha256 }
71
+ };
72
+ }
73
+ async function describeInternalMessageTailForAudit(messages, limit) {
74
+ const tailStart = Math.max(0, messages.length - Math.max(0, limit));
75
+ const tail = messages.slice(tailStart);
76
+ return Promise.all(
77
+ tail.map(async (message) => {
78
+ const summary = Array.isArray(message.content) ? await describeContentPartsForAudit(message.content) : emptyContentAuditSummary();
79
+ return {
80
+ role: message.role,
81
+ contentPresent: message.content !== null,
82
+ ...summary,
83
+ ...message.id !== void 0 && { messageId: message.id },
84
+ ...message.timestamp !== void 0 && { timestamp: message.timestamp }
85
+ };
86
+ })
87
+ );
88
+ }
89
+ function emptyContentAuditSummary() {
90
+ return {
91
+ totalParts: 0,
92
+ textParts: 0,
93
+ imageParts: 0,
94
+ fileParts: 0,
95
+ resourceParts: 0,
96
+ uiResourceParts: 0,
97
+ textLength: 0
98
+ };
99
+ }
100
+ async function sha256Hex(input) {
101
+ const subtle = globalThis.crypto?.subtle;
102
+ if (subtle === void 0) {
103
+ return void 0;
104
+ }
105
+ const bytes = new import_node_util.TextEncoder().encode(input);
106
+ const buffer = new ArrayBuffer(bytes.byteLength);
107
+ new Uint8Array(buffer).set(bytes);
108
+ const digest = await subtle.digest("SHA-256", buffer);
109
+ return Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join(
110
+ ""
111
+ );
112
+ }
113
+ // Annotate the CommonJS export names for ESM import in node:
114
+ 0 && (module.exports = {
115
+ describeContentInputForAudit,
116
+ describeContentPartsForAudit,
117
+ describeInternalMessageTailForAudit
118
+ });
@@ -0,0 +1,21 @@
1
+ import type { ContentPart, InternalMessage } from './types.js';
2
+ export type ContentAuditSummary = {
3
+ readonly totalParts: number;
4
+ readonly textParts: number;
5
+ readonly imageParts: number;
6
+ readonly fileParts: number;
7
+ readonly resourceParts: number;
8
+ readonly uiResourceParts: number;
9
+ readonly textLength: number;
10
+ readonly textSha256?: string;
11
+ };
12
+ export type MessageAuditSummary = ContentAuditSummary & {
13
+ readonly role: InternalMessage['role'];
14
+ readonly contentPresent: boolean;
15
+ readonly messageId?: string;
16
+ readonly timestamp?: number;
17
+ };
18
+ export declare function describeContentInputForAudit(content: string | readonly ContentPart[]): Promise<ContentAuditSummary>;
19
+ export declare function describeContentPartsForAudit(content: readonly ContentPart[]): Promise<ContentAuditSummary>;
20
+ export declare function describeInternalMessageTailForAudit(messages: readonly InternalMessage[], limit: number): Promise<MessageAuditSummary[]>;
21
+ //# sourceMappingURL=content-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-audit.d.ts","sourceRoot":"","sources":["../../src/context/content-audit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACpD,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAsB,4BAA4B,CAC9C,OAAO,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,GACzC,OAAO,CAAC,mBAAmB,CAAC,CAM9B;AAED,wBAAsB,4BAA4B,CAC9C,OAAO,EAAE,SAAS,WAAW,EAAE,GAChC,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAED,wBAAsB,mCAAmC,CACrD,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAmBhC"}
@@ -0,0 +1,93 @@
1
+ import "../chunk-C6A6W6XS.js";
2
+ import { TextEncoder } from "node:util";
3
+ async function describeContentInputForAudit(content) {
4
+ if (typeof content === "string") {
5
+ return describeContentPartsForAudit([{ type: "text", text: content }]);
6
+ }
7
+ return describeContentPartsForAudit(content);
8
+ }
9
+ async function describeContentPartsForAudit(content) {
10
+ let textParts = 0;
11
+ let imageParts = 0;
12
+ let fileParts = 0;
13
+ let resourceParts = 0;
14
+ let uiResourceParts = 0;
15
+ const textSegments = [];
16
+ for (const part of content) {
17
+ switch (part.type) {
18
+ case "text":
19
+ textParts += 1;
20
+ textSegments.push(part.text);
21
+ break;
22
+ case "image":
23
+ imageParts += 1;
24
+ break;
25
+ case "file":
26
+ fileParts += 1;
27
+ break;
28
+ case "resource":
29
+ resourceParts += 1;
30
+ break;
31
+ case "ui-resource":
32
+ uiResourceParts += 1;
33
+ break;
34
+ }
35
+ }
36
+ const textLength = textSegments.reduce((total, text) => total + text.length, 0);
37
+ const textSha256 = textLength > 0 ? await sha256Hex(textSegments.join("\n")) : void 0;
38
+ return {
39
+ totalParts: content.length,
40
+ textParts,
41
+ imageParts,
42
+ fileParts,
43
+ resourceParts,
44
+ uiResourceParts,
45
+ textLength,
46
+ ...textSha256 !== void 0 && { textSha256 }
47
+ };
48
+ }
49
+ async function describeInternalMessageTailForAudit(messages, limit) {
50
+ const tailStart = Math.max(0, messages.length - Math.max(0, limit));
51
+ const tail = messages.slice(tailStart);
52
+ return Promise.all(
53
+ tail.map(async (message) => {
54
+ const summary = Array.isArray(message.content) ? await describeContentPartsForAudit(message.content) : emptyContentAuditSummary();
55
+ return {
56
+ role: message.role,
57
+ contentPresent: message.content !== null,
58
+ ...summary,
59
+ ...message.id !== void 0 && { messageId: message.id },
60
+ ...message.timestamp !== void 0 && { timestamp: message.timestamp }
61
+ };
62
+ })
63
+ );
64
+ }
65
+ function emptyContentAuditSummary() {
66
+ return {
67
+ totalParts: 0,
68
+ textParts: 0,
69
+ imageParts: 0,
70
+ fileParts: 0,
71
+ resourceParts: 0,
72
+ uiResourceParts: 0,
73
+ textLength: 0
74
+ };
75
+ }
76
+ async function sha256Hex(input) {
77
+ const subtle = globalThis.crypto?.subtle;
78
+ if (subtle === void 0) {
79
+ return void 0;
80
+ }
81
+ const bytes = new TextEncoder().encode(input);
82
+ const buffer = new ArrayBuffer(bytes.byteLength);
83
+ new Uint8Array(buffer).set(bytes);
84
+ const digest = await subtle.digest("SHA-256", buffer);
85
+ return Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join(
86
+ ""
87
+ );
88
+ }
89
+ export {
90
+ describeContentInputForAudit,
91
+ describeContentPartsForAudit,
92
+ describeInternalMessageTailForAudit
93
+ };
@@ -26,6 +26,7 @@ module.exports = __toCommonJS(context_exports);
26
26
  __reExport(context_exports, require("./manager.js"), module.exports);
27
27
  __reExport(context_exports, require("./schemas.js"), module.exports);
28
28
  __reExport(context_exports, require("./types.js"), module.exports);
29
+ __reExport(context_exports, require("./content-audit.js"), module.exports);
29
30
  var import_media_helpers = require("./media-helpers.js");
30
31
  __reExport(context_exports, require("./compaction/index.js"), module.exports);
31
32
  // Annotate the CommonJS export names for ESM import in node:
@@ -35,5 +36,6 @@ __reExport(context_exports, require("./compaction/index.js"), module.exports);
35
36
  ...require("./manager.js"),
36
37
  ...require("./schemas.js"),
37
38
  ...require("./types.js"),
39
+ ...require("./content-audit.js"),
38
40
  ...require("./compaction/index.js")
39
41
  });
@@ -1,6 +1,7 @@
1
1
  export * from './manager.js';
2
2
  export * from './schemas.js';
3
3
  export * from './types.js';
4
+ export * from './content-audit.js';
4
5
  export { getFileMediaKind, getResourceKind } from './media-helpers.js';
5
6
  export * from './compaction/index.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACvE,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACvE,cAAc,uBAAuB,CAAC"}
@@ -2,6 +2,7 @@ import "../chunk-C6A6W6XS.js";
2
2
  export * from "./manager.js";
3
3
  export * from "./schemas.js";
4
4
  export * from "./types.js";
5
+ export * from "./content-audit.js";
5
6
  import { getFileMediaKind, getResourceKind } from "./media-helpers.js";
6
7
  export * from "./compaction/index.js";
7
8
  export {
@@ -37,6 +37,7 @@ var import_types2 = require("../logger/v2/types.js");
37
37
  var import_utils = require("./utils.js");
38
38
  var import_errors = require("./errors.js");
39
39
  var import_media_helpers = require("./media-helpers.js");
40
+ var import_content_audit = require("./content-audit.js");
40
41
  class ContextManager {
41
42
  static PROMPT_MEDIA_RETENTION_MESSAGES = 2;
42
43
  /**
@@ -649,16 +650,8 @@ ${prompt}`);
649
650
  processedParts.push(persisted);
650
651
  }
651
652
  }
652
- const textParts = processedParts.filter((p) => p.type === "text");
653
- const imageParts = processedParts.filter((p) => p.type === "image");
654
- const fileParts = processedParts.filter((p) => p.type === "file");
655
- const resourceParts = processedParts.filter((p) => p.type === "resource");
656
653
  this.logger.info("User message received", {
657
- textParts: textParts.length,
658
- imageParts: imageParts.length,
659
- fileParts: fileParts.length,
660
- resourceParts: resourceParts.length,
661
- totalParts: processedParts.length
654
+ ...await (0, import_content_audit.describeContentPartsForAudit)(processedParts)
662
655
  });
663
656
  await this.addMessage({ role: "user", content: processedParts });
664
657
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/context/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/context/manager.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import {
12
12
  } from "./utils.js";
13
13
  import { ContextError } from "./errors.js";
14
14
  import { getResourceKind } from "./media-helpers.js";
15
+ import { describeContentPartsForAudit } from "./content-audit.js";
15
16
  class ContextManager {
16
17
  static PROMPT_MEDIA_RETENTION_MESSAGES = 2;
17
18
  /**
@@ -624,16 +625,8 @@ ${prompt}`);
624
625
  processedParts.push(persisted);
625
626
  }
626
627
  }
627
- const textParts = processedParts.filter((p) => p.type === "text");
628
- const imageParts = processedParts.filter((p) => p.type === "image");
629
- const fileParts = processedParts.filter((p) => p.type === "file");
630
- const resourceParts = processedParts.filter((p) => p.type === "resource");
631
628
  this.logger.info("User message received", {
632
- textParts: textParts.length,
633
- imageParts: imageParts.length,
634
- fileParts: fileParts.length,
635
- resourceParts: resourceParts.length,
636
- totalParts: processedParts.length
629
+ ...await describeContentPartsForAudit(processedParts)
637
630
  });
638
631
  await this.addMessage({ role: "user", content: processedParts });
639
632
  }
@@ -48,6 +48,7 @@ var import_error_conversion = require("../../utils/error-conversion.js");
48
48
  var import_codex_base_url = require("../providers/codex-base-url.js");
49
49
  var import_tool_definitions = require("./tool-definitions.js");
50
50
  var import_types3 = require("../../approval/types.js");
51
+ var import_content_audit = require("../../context/content-audit.js");
51
52
  const MCP_TOOL_PREFIX = "mcp--";
52
53
  const MODEL_REQUEST_MAX_RETRIES = 2;
53
54
  const LLMFinishReasonStateSchema = import_zod.z.enum([
@@ -387,6 +388,7 @@ class TurnExecutor {
387
388
  () => this.prepareNextModelRequest({
388
389
  contributorContext,
389
390
  supportsTools: turn.supportsTools,
391
+ stepCount,
390
392
  streaming: options.streaming
391
393
  }),
392
394
  this.logger
@@ -425,6 +427,7 @@ class TurnExecutor {
425
427
  () => this.prepareNextModelRequest({
426
428
  contributorContext,
427
429
  supportsTools: turn.supportsTools,
430
+ stepCount,
428
431
  streaming: options.streaming
429
432
  }),
430
433
  this.logger
@@ -785,10 +788,12 @@ class TurnExecutor {
785
788
  originalMessageIds: coalesced.messages.map((m) => m.id)
786
789
  }
787
790
  });
788
- this.logger.info(`Injected ${coalesced.messages.length} queued message(s) into context`, {
791
+ this.logger.info("Queued turn input injected into context", {
789
792
  count: coalesced.messages.length,
790
793
  firstQueued: coalesced.firstQueuedAt,
791
- lastQueued: coalesced.lastQueuedAt
794
+ lastQueued: coalesced.lastQueuedAt,
795
+ originalMessageIds: coalesced.messages.map((message) => message.id),
796
+ content: await (0, import_content_audit.describeContentPartsForAudit)(coalesced.combinedContent)
792
797
  });
793
798
  }
794
799
  /**
@@ -865,9 +870,11 @@ class TurnExecutor {
865
870
  }
866
871
  }
867
872
  async prepareNextModelRequest(input) {
868
- const coalesced = await this.steerQueue.dequeueAll();
869
- if (coalesced) {
870
- await this.injectQueuedMessages(coalesced);
873
+ if (input.stepCount > 0) {
874
+ const coalesced = await this.steerQueue.dequeueAll();
875
+ if (coalesced) {
876
+ await this.injectQueuedMessages(coalesced);
877
+ }
871
878
  }
872
879
  await this.pruneOldToolOutputs();
873
880
  let systemPrompt = await (0, import_operation_span.recordOperationSpan)(
@@ -930,6 +937,7 @@ class TurnExecutor {
930
937
  ),
931
938
  this.logger
932
939
  );
940
+ let compacted = false;
933
941
  if (this.shouldCompact(estimatedInputTokens)) {
934
942
  this.logger.debug(
935
943
  `Pre-check: estimated ${estimatedInputTokens} tokens exceeds threshold, compacting`
@@ -948,6 +956,7 @@ class TurnExecutor {
948
956
  this.logger
949
957
  );
950
958
  if (didCompact) {
959
+ compacted = true;
951
960
  systemPrompt = await (0, import_operation_span.recordOperationSpan)(
952
961
  {
953
962
  name: "system_prompt.build",
@@ -1038,6 +1047,21 @@ class TurnExecutor {
1038
1047
  ...reasoningVariant !== void 0 && { reasoningVariant },
1039
1048
  ...reasoningBudgetTokens !== void 0 && { reasoningBudgetTokens }
1040
1049
  } : void 0;
1050
+ this.logger.info("Model request context prepared", {
1051
+ sessionId: this.sessionId,
1052
+ provider: this.llmContext.provider,
1053
+ model: this.llmContext.model,
1054
+ streaming: input.streaming,
1055
+ estimatedInputTokens,
1056
+ toolCount: Object.keys(toolDefinitions).length,
1057
+ formattedMessageCount: formattedMessages.length,
1058
+ preparedHistoryCount: preparedHistory.length,
1059
+ compacted,
1060
+ ...this.runContext?.hostRuntime?.ids !== void 0 && {
1061
+ hostRuntimeIds: this.runContext.hostRuntime.ids
1062
+ },
1063
+ historyTail: await (0, import_content_audit.describeInternalMessageTailForAudit)(preparedHistory, 8)
1064
+ });
1041
1065
  return {
1042
1066
  messages: formattedMessages,
1043
1067
  tools: input.supportsTools ? (0, import_tool_definitions.createModelToolDefinitions)(toolDefinitions) : {},
@@ -1 +1 @@
1
- {"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,10 @@ import { toError } from "../../utils/error-conversion.js";
22
22
  import { isCodexBaseURL } from "../providers/codex-base-url.js";
23
23
  import { createModelToolDefinitions } from "./tool-definitions.js";
24
24
  import { ApprovalStatus } from "../../approval/types.js";
25
+ import {
26
+ describeContentPartsForAudit,
27
+ describeInternalMessageTailForAudit
28
+ } from "../../context/content-audit.js";
25
29
  const MCP_TOOL_PREFIX = "mcp--";
26
30
  const MODEL_REQUEST_MAX_RETRIES = 2;
27
31
  const LLMFinishReasonStateSchema = z.enum([
@@ -361,6 +365,7 @@ class TurnExecutor {
361
365
  () => this.prepareNextModelRequest({
362
366
  contributorContext,
363
367
  supportsTools: turn.supportsTools,
368
+ stepCount,
364
369
  streaming: options.streaming
365
370
  }),
366
371
  this.logger
@@ -399,6 +404,7 @@ class TurnExecutor {
399
404
  () => this.prepareNextModelRequest({
400
405
  contributorContext,
401
406
  supportsTools: turn.supportsTools,
407
+ stepCount,
402
408
  streaming: options.streaming
403
409
  }),
404
410
  this.logger
@@ -759,10 +765,12 @@ class TurnExecutor {
759
765
  originalMessageIds: coalesced.messages.map((m) => m.id)
760
766
  }
761
767
  });
762
- this.logger.info(`Injected ${coalesced.messages.length} queued message(s) into context`, {
768
+ this.logger.info("Queued turn input injected into context", {
763
769
  count: coalesced.messages.length,
764
770
  firstQueued: coalesced.firstQueuedAt,
765
- lastQueued: coalesced.lastQueuedAt
771
+ lastQueued: coalesced.lastQueuedAt,
772
+ originalMessageIds: coalesced.messages.map((message) => message.id),
773
+ content: await describeContentPartsForAudit(coalesced.combinedContent)
766
774
  });
767
775
  }
768
776
  /**
@@ -839,9 +847,11 @@ class TurnExecutor {
839
847
  }
840
848
  }
841
849
  async prepareNextModelRequest(input) {
842
- const coalesced = await this.steerQueue.dequeueAll();
843
- if (coalesced) {
844
- await this.injectQueuedMessages(coalesced);
850
+ if (input.stepCount > 0) {
851
+ const coalesced = await this.steerQueue.dequeueAll();
852
+ if (coalesced) {
853
+ await this.injectQueuedMessages(coalesced);
854
+ }
845
855
  }
846
856
  await this.pruneOldToolOutputs();
847
857
  let systemPrompt = await recordOperationSpan(
@@ -904,6 +914,7 @@ class TurnExecutor {
904
914
  ),
905
915
  this.logger
906
916
  );
917
+ let compacted = false;
907
918
  if (this.shouldCompact(estimatedInputTokens)) {
908
919
  this.logger.debug(
909
920
  `Pre-check: estimated ${estimatedInputTokens} tokens exceeds threshold, compacting`
@@ -922,6 +933,7 @@ class TurnExecutor {
922
933
  this.logger
923
934
  );
924
935
  if (didCompact) {
936
+ compacted = true;
925
937
  systemPrompt = await recordOperationSpan(
926
938
  {
927
939
  name: "system_prompt.build",
@@ -1012,6 +1024,21 @@ class TurnExecutor {
1012
1024
  ...reasoningVariant !== void 0 && { reasoningVariant },
1013
1025
  ...reasoningBudgetTokens !== void 0 && { reasoningBudgetTokens }
1014
1026
  } : void 0;
1027
+ this.logger.info("Model request context prepared", {
1028
+ sessionId: this.sessionId,
1029
+ provider: this.llmContext.provider,
1030
+ model: this.llmContext.model,
1031
+ streaming: input.streaming,
1032
+ estimatedInputTokens,
1033
+ toolCount: Object.keys(toolDefinitions).length,
1034
+ formattedMessageCount: formattedMessages.length,
1035
+ preparedHistoryCount: preparedHistory.length,
1036
+ compacted,
1037
+ ...this.runContext?.hostRuntime?.ids !== void 0 && {
1038
+ hostRuntimeIds: this.runContext.hostRuntime.ids
1039
+ },
1040
+ historyTail: await describeInternalMessageTailForAudit(preparedHistory, 8)
1041
+ });
1015
1042
  return {
1016
1043
  messages: formattedMessages,
1017
1044
  tools: input.supportsTools ? createModelToolDefinitions(toolDefinitions) : {},
@@ -23,6 +23,7 @@ __export(chat_session_exports, {
23
23
  module.exports = __toCommonJS(chat_session_exports);
24
24
  var import_crypto = require("crypto");
25
25
  var import_factory = require("../llm/services/factory.js");
26
+ var import_content_audit = require("../context/content-audit.js");
26
27
  var import_events = require("../events/index.js");
27
28
  var import_types = require("../logger/v2/types.js");
28
29
  var import_errors = require("../errors/index.js");
@@ -427,6 +428,15 @@ class ChatSession {
427
428
  const detachForwarders = this.attachRunEventForwarders(input.runContext);
428
429
  try {
429
430
  if (input.kind === "start") {
431
+ this.logger.info("ChatSession turn input received", {
432
+ sessionId: this.id,
433
+ turnKind: input.kind,
434
+ streaming: input.streaming ?? true,
435
+ ...input.runContext?.hostRuntime?.ids !== void 0 && {
436
+ hostRuntimeIds: input.runContext.hostRuntime.ids
437
+ },
438
+ content: await (0, import_content_audit.describeContentInputForAudit)(input.content)
439
+ });
430
440
  const modifiedParts = await (0, import_operation_span.recordOperationSpan)(
431
441
  {
432
442
  name: "chat_session.prepare_turn_input",
@@ -450,6 +460,25 @@ class ChatSession {
450
460
  () => this.llmService.getContextManager().addUserMessage(modifiedParts),
451
461
  this.logger
452
462
  );
463
+ this.logger.info("ChatSession turn input persisted", {
464
+ sessionId: this.id,
465
+ turnKind: input.kind,
466
+ ...input.runContext?.hostRuntime?.ids !== void 0 && {
467
+ hostRuntimeIds: input.runContext.hostRuntime.ids
468
+ },
469
+ content: await (0, import_content_audit.describeContentPartsForAudit)(modifiedParts)
470
+ });
471
+ } else {
472
+ this.logger.info("ChatSession turn resume requested", {
473
+ sessionId: this.id,
474
+ turnKind: input.kind,
475
+ streaming: input.streaming ?? true,
476
+ phase: input.state.phase,
477
+ stepCount: input.state.stepCount,
478
+ ...input.runContext?.hostRuntime?.ids !== void 0 && {
479
+ hostRuntimeIds: input.runContext.hostRuntime.ids
480
+ }
481
+ });
453
482
  }
454
483
  const streaming = input.streaming ?? true;
455
484
  const driver = await (0, import_operation_span.recordOperationSpan)(
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session.d.ts","sourceRoot":"","sources":["../../src/session/chat-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-session.d.ts","sourceRoot":"","sources":["../../src/session/chat-session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,OAAO,KAAK,EAA2B,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EACH,eAAe,EACf,aAAa,EAGhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGpF,MAAM,MAAM,0BAA0B,GAChC;IACI,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,eAAe,CAAC;CAChC,GACD;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC;AAER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,qBAAa,WAAW;IAgEhB,OAAO,CAAC,QAAQ;aAiBA,EAAE,EAAE,MAAM;IAhF9B;;;;;;;;;;OAUG;IACH,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAE1C;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAqB;IAE9C;;;;;OAKG;IACH,OAAO,CAAC,UAAU,CAAoB;IAEtC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,sBAAsB,CAA6B;IAE3D;;OAEG;IACH,OAAO,CAAC,wBAAwB,CACvB;IAET;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAAgC;IAE5D,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;;;;;;;;;;OAWG;gBAES,QAAQ,EAAE;QACd,YAAY,EAAE,iBAAiB,CAAC;QAChC,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,WAAW,EAAE,WAAW,CAAC;QACzB,aAAa,EAAE,aAAa,CAAC;QAC7B,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,eAAe,EAAE,OAAO,uBAAuB,EAAE,eAAe,CAAC;QACjE,WAAW,EAAE,WAAW,CAAC;QACzB,UAAU,EAAE,UAAU,CAAC;QACvB,cAAc,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAC;QAC9D,eAAe,EAAE,wBAAwB,CAAC;QAC1C,kBAAkB,EAAE,wBAAwB,CAAC;QAC7C,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;QAC5C,YAAY,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;QACtC,gBAAgB,CAAC,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC;QACtE,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;KACjD,EACe,EAAE,EAAE,MAAM,EAC1B,MAAM,EAAE,MAAM;IA0BlB;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,CAAC,wBAAwB;IAmBhC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAiD9B;;OAEG;YACW,kBAAkB;YAelB,uBAAuB;IA4BrC;;;;;;;;;;OAUG;YACW,sBAAsB;IAiDpC,OAAO,CAAC,gBAAgB;YAIV,gBAAgB;YAmEhB,wBAAwB;IA8BtC;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,MAAM,CACf,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,eAAe,CAAC;KAChC,GACF,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAyGf,gBAAgB,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC;IA2GrF,OAAO,CAAC,cAAc;IA8DtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,UAAU;IAIvB;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IASnC;;;;OAIG;IACI,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;IAInD;;;;OAIG;IACI,aAAa,IAAI,gBAAgB;IAIxC;;;;;;;;;;;;;;;;;;OAkBG;IACU,SAAS,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvE;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBrC;;;;;;OAMG;IACI,OAAO,IAAI,IAAI;IAetB;;;OAGG;IACI,MAAM,IAAI,OAAO;IAIxB;;;;;;OAMG;IACU,KAAK,CACd,OAAO,EAAE,gBAAgB,GAC1B,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1D;;;;;OAKG;IACU,QAAQ,CACjB,OAAO,EAAE,gBAAgB,GAC1B,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1D;;;OAGG;IACI,gBAAgB,IAAI,aAAa,EAAE;IAI1C;;;OAGG;IACI,mBAAmB,IAAI,aAAa,EAAE;IAI7C;;;;OAIG;IACU,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7D;;;;OAIG;IACU,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhE;;;OAGG;IACU,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAO/C;;;OAGG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOlD;;;OAGG;IACU,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAQjD;;;OAGG;IACI,MAAM,IAAI,OAAO;CAa3B"}
@@ -1,6 +1,10 @@
1
1
  import "../chunk-C6A6W6XS.js";
2
2
  import { randomUUID } from "crypto";
3
3
  import { createLLMService } from "../llm/services/factory.js";
4
+ import {
5
+ describeContentInputForAudit,
6
+ describeContentPartsForAudit
7
+ } from "../context/content-audit.js";
4
8
  import {
5
9
  SessionEventBus,
6
10
  forwardSessionEventsToAgentBus
@@ -412,6 +416,15 @@ class ChatSession {
412
416
  const detachForwarders = this.attachRunEventForwarders(input.runContext);
413
417
  try {
414
418
  if (input.kind === "start") {
419
+ this.logger.info("ChatSession turn input received", {
420
+ sessionId: this.id,
421
+ turnKind: input.kind,
422
+ streaming: input.streaming ?? true,
423
+ ...input.runContext?.hostRuntime?.ids !== void 0 && {
424
+ hostRuntimeIds: input.runContext.hostRuntime.ids
425
+ },
426
+ content: await describeContentInputForAudit(input.content)
427
+ });
415
428
  const modifiedParts = await recordOperationSpan(
416
429
  {
417
430
  name: "chat_session.prepare_turn_input",
@@ -435,6 +448,25 @@ class ChatSession {
435
448
  () => this.llmService.getContextManager().addUserMessage(modifiedParts),
436
449
  this.logger
437
450
  );
451
+ this.logger.info("ChatSession turn input persisted", {
452
+ sessionId: this.id,
453
+ turnKind: input.kind,
454
+ ...input.runContext?.hostRuntime?.ids !== void 0 && {
455
+ hostRuntimeIds: input.runContext.hostRuntime.ids
456
+ },
457
+ content: await describeContentPartsForAudit(modifiedParts)
458
+ });
459
+ } else {
460
+ this.logger.info("ChatSession turn resume requested", {
461
+ sessionId: this.id,
462
+ turnKind: input.kind,
463
+ streaming: input.streaming ?? true,
464
+ phase: input.state.phase,
465
+ stepCount: input.state.stepCount,
466
+ ...input.runContext?.hostRuntime?.ids !== void 0 && {
467
+ hostRuntimeIds: input.runContext.hostRuntime.ids
468
+ }
469
+ });
438
470
  }
439
471
  const streaming = input.streaming ?? true;
440
472
  const driver = await recordOperationSpan(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dexto/core",
3
- "version": "1.8.10",
3
+ "version": "1.8.11",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -157,7 +157,7 @@
157
157
  "nanoid": "^5.1.6",
158
158
  "winston": "^3.17.0",
159
159
  "yaml": "^2.8.3",
160
- "@dexto/llm": "1.8.10"
160
+ "@dexto/llm": "1.8.11"
161
161
  },
162
162
  "devDependencies": {
163
163
  "@opentelemetry/context-async-hooks": "^1.28.0",