veryfront 0.1.1012 → 0.1.1014

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 (28) hide show
  1. package/esm/deno.js +1 -1
  2. package/esm/src/agent/hosted/chat-execution-runtime.d.ts.map +1 -1
  3. package/esm/src/agent/hosted/chat-execution-runtime.js +4 -6
  4. package/esm/src/agent/hosted/cloud-prepared-chat-execution-runtime.d.ts +4 -0
  5. package/esm/src/agent/hosted/cloud-prepared-chat-execution-runtime.d.ts.map +1 -1
  6. package/esm/src/agent/hosted/cloud-prepared-chat-execution-runtime.js +21 -1
  7. package/esm/src/agent/hosted/context-budget-manager.d.ts +3 -0
  8. package/esm/src/agent/hosted/context-budget-manager.d.ts.map +1 -1
  9. package/esm/src/agent/hosted/context-budget-manager.js +10 -2
  10. package/esm/src/agent/hosted/durable-chat-run-start.d.ts +3 -0
  11. package/esm/src/agent/hosted/durable-chat-run-start.d.ts.map +1 -1
  12. package/esm/src/agent/hosted/durable-chat-run-start.js +6 -1
  13. package/esm/src/agent/hosted/prepared-chat-execution.d.ts +1 -1
  14. package/esm/src/agent/hosted/prepared-chat-execution.d.ts.map +1 -1
  15. package/esm/src/agent/hosted/prepared-chat-execution.js +6 -0
  16. package/esm/src/agent/hosted/stream-terminal-error.d.ts.map +1 -1
  17. package/esm/src/agent/hosted/stream-terminal-error.js +1 -0
  18. package/esm/src/chat/message-prep.d.ts +18 -0
  19. package/esm/src/chat/message-prep.d.ts.map +1 -1
  20. package/esm/src/chat/message-prep.js +352 -2
  21. package/esm/src/chat/stream-watchdog.d.ts +1 -0
  22. package/esm/src/chat/stream-watchdog.d.ts.map +1 -1
  23. package/esm/src/chat/stream-watchdog.js +7 -0
  24. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  25. package/esm/src/server/handlers/dev/framework-candidates.generated.js +3 -2
  26. package/esm/src/utils/version-constant.d.ts +1 -1
  27. package/esm/src/utils/version-constant.js +1 -1
  28. package/package.json +1 -1
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.1012",
3
+ "version": "0.1.1014",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-execution-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/chat-execution-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-execution-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/chat-execution-runtime.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { createHostedMirroredUiStream, createMirroredToolChunkState, } from "../
7
7
  import { finalizeHostedDetached, finalizeHostedResponse, } from "./stream-finalization.js";
8
8
  import { getEmptyHostedFinalizedMessageTerminalError, getHostedStreamErrorText, shouldFailEmptyHostedFinalizedMessage, } from "./stream-terminal-error.js";
9
9
  import { createChatStreamWatchdog, DEFAULT_CHAT_STREAM_TOOL_RUNNING_TIMEOUT_MS, } from "../../chat/stream-watchdog.js";
10
+ import { unrefTimer } from "../../platform/compat/process.js";
10
11
  const INCOMPLETE_TOOL_CALLS_PART_ERROR_TEXT = "Assistant ended before tool execution completed";
11
12
  const FINALIZATION_TERMINAL_STATE_FALLBACK_MODEL_ID = "";
12
13
  const DEFAULT_STREAM_BOOTSTRAP_KEEPALIVE_INTERVAL_MS = 30_000;
@@ -56,17 +57,14 @@ function createStreamBootstrapWatchdogKeepalive(input) {
56
57
  const timeoutMs = resolveStreamBootstrapTimeoutMs(input.timeoutMs);
57
58
  const timeoutController = new AbortController();
58
59
  const interval = globalThis.setInterval(() => {
59
- input.rootStreamWatchdog.observe({
60
- type: "message-metadata",
61
- messageMetadata: {
62
- createdAt: new Date().toISOString(),
63
- },
64
- });
60
+ input.rootStreamWatchdog.keepAlive();
65
61
  }, intervalMs);
66
62
  const timeout = globalThis.setTimeout(() => {
67
63
  timeoutController.abort(new DOMException(`Chat stream bootstrap timeout after ${timeoutMs}ms`, "AbortError"));
68
64
  clearInterval(interval);
69
65
  }, timeoutMs);
66
+ unrefTimer(interval);
67
+ unrefTimer(timeout);
70
68
  return {
71
69
  signal: timeoutController.signal,
72
70
  dispose: () => {
@@ -9,6 +9,8 @@ export declare const VERYFRONT_CHAT_STREAM_TOOL_TIMEOUT_ENV = "VERYFRONT_CHAT_ST
9
9
  type ChatStreamWatchdogEnv = Record<string, string | undefined>;
10
10
  /** Resolve Veryfront Cloud chat stream watchdog timeout overrides from environment values. */
11
11
  export declare function resolveVeryfrontCloudChatStreamWatchdogOptions(env?: ChatStreamWatchdogEnv): Pick<ChatStreamWatchdogOptions, "idleTimeoutMs" | "toolRunningTimeoutMs">;
12
+ /** Derive hosted chat bootstrap watchdog options from resolved root stream watchdog options. */
13
+ export declare function resolveVeryfrontCloudStreamBootstrapWatchdogOptions(options: Pick<ChatStreamWatchdogOptions, "idleTimeoutMs" | "toolRunningTimeoutMs">): Pick<PreparedHostedChatExecutionRuntimeOptions, "streamBootstrapKeepaliveIntervalMs" | "streamBootstrapTimeoutMs">;
12
14
  /** Input payload for create Veryfront Cloud prepared hosted chat execution runtime options. */
13
15
  export type CreateVeryfrontCloudPreparedHostedChatExecutionRuntimeOptionsInput = {
14
16
  apiUrl: string | URL;
@@ -18,6 +20,8 @@ export type CreateVeryfrontCloudPreparedHostedChatExecutionRuntimeOptionsInput =
18
20
  traceStream?: <TResult>(operation: () => Promise<TResult>) => Promise<TResult>;
19
21
  setActiveSpanAttributes?: (attributes: AgentTraceAttributes) => void;
20
22
  createRootStreamWatchdog?: PreparedHostedChatExecutionRuntimeOptions["createRootStreamWatchdog"];
23
+ streamBootstrapKeepaliveIntervalMs?: PreparedHostedChatExecutionRuntimeOptions["streamBootstrapKeepaliveIntervalMs"];
24
+ streamBootstrapTimeoutMs?: PreparedHostedChatExecutionRuntimeOptions["streamBootstrapTimeoutMs"];
21
25
  };
22
26
  /** Options accepted by create Veryfront Cloud prepared hosted chat execution runtime. */
23
27
  export declare function createVeryfrontCloudPreparedHostedChatExecutionRuntimeOptions(input: CreateVeryfrontCloudPreparedHostedChatExecutionRuntimeOptionsInput): PreparedHostedChatExecutionRuntimeOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-prepared-chat-execution-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/cloud-prepared-chat-execution-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,8BAA8B,CAAC;AAE9F,2DAA2D;AAC3D,eAAO,MAAM,sCAAsC,0CAA0C,CAAC;AAC9F,kEAAkE;AAClE,eAAO,MAAM,sCAAsC,0CAA0C,CAAC;AAE9F,KAAK,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAWhE,8FAA8F;AAC9F,wBAAgB,8CAA8C,CAC5D,GAAG,GAAE,qBAGJ,GACA,IAAI,CAAC,yBAAyB,EAAE,eAAe,GAAG,sBAAsB,CAAC,CAQ3E;AAED,+FAA+F;AAC/F,MAAM,MAAM,kEAAkE,GAAG;IAC/E,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,MAAM,EAAE,yCAAyC,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,CAAC,EAAE,gCAAgC,CAAC;IAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChG,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACrE,wBAAwB,CAAC,EAAE,yCAAyC,CAAC,0BAA0B,CAAC,CAAC;CAClG,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,6DAA6D,CAC3E,KAAK,EAAE,kEAAkE,GACxE,yCAAyC,CAiB3C"}
1
+ {"version":3,"file":"cloud-prepared-chat-execution-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/cloud-prepared-chat-execution-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,8BAA8B,CAAC;AAE9F,2DAA2D;AAC3D,eAAO,MAAM,sCAAsC,0CAA0C,CAAC;AAC9F,kEAAkE;AAClE,eAAO,MAAM,sCAAsC,0CAA0C,CAAC;AAE9F,KAAK,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAWhE,8FAA8F;AAC9F,wBAAgB,8CAA8C,CAC5D,GAAG,GAAE,qBAGJ,GACA,IAAI,CAAC,yBAAyB,EAAE,eAAe,GAAG,sBAAsB,CAAC,CAQ3E;AAED,gGAAgG;AAChG,wBAAgB,mDAAmD,CACjE,OAAO,EAAE,IAAI,CAAC,yBAAyB,EAAE,eAAe,GAAG,sBAAsB,CAAC,GACjF,IAAI,CACL,yCAAyC,EACzC,oCAAoC,GAAG,0BAA0B,CAClE,CAaA;AAED,+FAA+F;AAC/F,MAAM,MAAM,kEAAkE,GAAG;IAC/E,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,MAAM,EAAE,yCAAyC,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,CAAC,EAAE,gCAAgC,CAAC;IAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChG,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACrE,wBAAwB,CAAC,EAAE,yCAAyC,CAAC,0BAA0B,CAAC,CAAC;IACjG,kCAAkC,CAAC,EAAE,yCAAyC,CAC5E,oCAAoC,CACrC,CAAC;IACF,wBAAwB,CAAC,EAAE,yCAAyC,CAClE,0BAA0B,CAC3B,CAAC;CACH,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,6DAA6D,CAC3E,KAAK,EAAE,kEAAkE,GACxE,yCAAyC,CA0B3C"}
@@ -25,8 +25,24 @@ export function resolveVeryfrontCloudChatStreamWatchdogOptions(env = {
25
25
  ...(toolRunningTimeoutMs !== undefined ? { toolRunningTimeoutMs } : {}),
26
26
  };
27
27
  }
28
+ /** Derive hosted chat bootstrap watchdog options from resolved root stream watchdog options. */
29
+ export function resolveVeryfrontCloudStreamBootstrapWatchdogOptions(options) {
30
+ const streamBootstrapKeepaliveIntervalMs = typeof options.idleTimeoutMs === "number"
31
+ ? Math.max(1, Math.floor(options.idleTimeoutMs / 2))
32
+ : undefined;
33
+ return {
34
+ ...(streamBootstrapKeepaliveIntervalMs !== undefined
35
+ ? { streamBootstrapKeepaliveIntervalMs }
36
+ : {}),
37
+ ...(options.toolRunningTimeoutMs !== undefined
38
+ ? { streamBootstrapTimeoutMs: options.toolRunningTimeoutMs }
39
+ : {}),
40
+ };
41
+ }
28
42
  /** Options accepted by create Veryfront Cloud prepared hosted chat execution runtime. */
29
43
  export function createVeryfrontCloudPreparedHostedChatExecutionRuntimeOptions(input) {
44
+ const watchdogOptions = resolveVeryfrontCloudChatStreamWatchdogOptions();
45
+ const streamBootstrapOptions = resolveVeryfrontCloudStreamBootstrapWatchdogOptions(watchdogOptions);
30
46
  return {
31
47
  apiUrl: input.apiUrl,
32
48
  tracer: input.tracer,
@@ -35,10 +51,14 @@ export function createVeryfrontCloudPreparedHostedChatExecutionRuntimeOptions(in
35
51
  traceStream: input.traceStream,
36
52
  createRootStreamWatchdog: input.createRootStreamWatchdog ??
37
53
  (() => createChatStreamWatchdog({
38
- ...resolveVeryfrontCloudChatStreamWatchdogOptions(),
54
+ ...watchdogOptions,
39
55
  setTimeoutFn: dntShim.dntGlobalThis.setTimeout,
40
56
  clearTimeoutFn: globalThis.clearTimeout,
41
57
  })),
58
+ streamBootstrapKeepaliveIntervalMs: input.streamBootstrapKeepaliveIntervalMs ??
59
+ streamBootstrapOptions.streamBootstrapKeepaliveIntervalMs,
60
+ streamBootstrapTimeoutMs: input.streamBootstrapTimeoutMs ??
61
+ streamBootstrapOptions.streamBootstrapTimeoutMs,
42
62
  logger: input.logger,
43
63
  setActiveSpanAttributes: input.setActiveSpanAttributes,
44
64
  };
@@ -1,3 +1,4 @@
1
+ import { type MessageTokenBreakdown } from "../../chat/message-prep.js";
1
2
  import type { InferSchema } from "../../extensions/schema/index.js";
2
3
  import type { AgentRuntimeMessage } from "../runtime/message-adapter.js";
3
4
  export declare const AGENT_RUN_CONTEXT_COMPACTED_EVENT_TYPE: "AGENT_RUN_CONTEXT_COMPACTED";
@@ -39,6 +40,8 @@ export type ContextBudgetDiagnostics = {
39
40
  compacted: boolean;
40
41
  tokensBefore: number;
41
42
  tokensAfter: number;
43
+ beforeBreakdown: MessageTokenBreakdown;
44
+ afterBreakdown: MessageTokenBreakdown;
42
45
  tokenBudget: number;
43
46
  reserveTokens: number;
44
47
  summaryTokens: number;
@@ -1 +1 @@
1
- {"version":3,"file":"context-budget-manager.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/context-budget-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,eAAO,MAAM,sCAAsC,EAAG,6BAAsC,CAAC;AAE7F,eAAO,MAAM,iCAAiC;;GAI7C,CAAC;AAEF,eAAO,MAAM,sCAAsC;;;;;;;;;;;GAkClD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAChD,UAAU,CAAC,OAAO,iCAAiC,CAAC,CACrD,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,WAAW,CACrD,UAAU,CAAC,OAAO,sCAAsC,CAAC,CAC1D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;AAE9E,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE;IAC5C,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,KAAK,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC;AAEnE,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,uBAAuB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,6BAA6B,CAAC;IAC7C,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI3D;AAgND,mDAAmD;AACnD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,EACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CA+FrC"}
1
+ {"version":3,"file":"context-budget-manager.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/context-budget-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,eAAO,MAAM,sCAAsC,EAAG,6BAAsC,CAAC;AAE7F,eAAO,MAAM,iCAAiC;;GAI7C,CAAC;AAEF,eAAO,MAAM,sCAAsC;;;;;;;;;;;GAkClD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAChD,UAAU,CAAC,OAAO,iCAAiC,CAAC,CACrD,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,WAAW,CACrD,UAAU,CAAC,OAAO,sCAAsC,CAAC,CAC1D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;AAE9E,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE;IAC5C,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,KAAK,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC;AAEnE,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,qBAAqB,CAAC;IACvC,cAAc,EAAE,qBAAqB,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,uBAAuB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,6BAA6B,CAAC;IAC7C,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI3D;AAgND,mDAAmD;AACnD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,EACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAuGrC"}
@@ -1,4 +1,4 @@
1
- import { estimateTokens } from "../../chat/message-prep.js";
1
+ import { estimateMessageTokenBreakdown, estimateTokens, } from "../../chat/message-prep.js";
2
2
  import { defineSchema } from "../../schemas/index.js";
3
3
  export const AGENT_RUN_CONTEXT_COMPACTED_EVENT_TYPE = "AGENT_RUN_CONTEXT_COMPACTED";
4
4
  export const getContextCompactionSummarySchema = defineSchema((v) => v.object({
@@ -191,14 +191,19 @@ export async function applyContextBudget(messages, options) {
191
191
  assertValidContextBudgetOptions(options);
192
192
  const reason = options.reason ?? "context_window";
193
193
  const tokensBefore = getMessageListTokens(messages);
194
+ const beforeBreakdown = estimateMessageTokenBreakdown(messages);
194
195
  const usableBudget = getUsableTokenBudget(options);
195
196
  if (tokensBefore <= usableBudget) {
197
+ const retainedMessages = [...messages];
198
+ const afterBreakdown = estimateMessageTokenBreakdown(retainedMessages);
196
199
  return {
197
- messages: [...messages],
200
+ messages: retainedMessages,
198
201
  diagnostics: {
199
202
  compacted: false,
200
203
  tokensBefore,
201
204
  tokensAfter: tokensBefore,
205
+ beforeBreakdown,
206
+ afterBreakdown,
202
207
  tokenBudget: options.tokenBudget,
203
208
  reserveTokens: options.reserveTokens,
204
209
  summaryTokens: 0,
@@ -243,6 +248,7 @@ export async function applyContextBudget(messages, options) {
243
248
  });
244
249
  const compactedMessages = [summaryMessage, ...retainedMessages];
245
250
  const tokensAfter = getMessageListTokens(compactedMessages);
251
+ const afterBreakdown = estimateMessageTokenBreakdown(compactedMessages);
246
252
  if (tokensAfter > usableBudget) {
247
253
  throw new ContextCompactionError("Context compaction result exceeded usable token budget");
248
254
  }
@@ -263,6 +269,8 @@ export async function applyContextBudget(messages, options) {
263
269
  compacted: true,
264
270
  tokensBefore,
265
271
  tokensAfter,
272
+ beforeBreakdown,
273
+ afterBreakdown,
266
274
  tokenBudget: options.tokenBudget,
267
275
  reserveTokens: options.reserveTokens,
268
276
  summaryTokens: estimateTokens(summary.text),
@@ -1,3 +1,4 @@
1
+ import type { ChatUiMessage } from "../../chat/types.js";
1
2
  import type { AgUiResumeValue } from "../ag-ui/tool-shared.js";
2
3
  import type { DetachedRunTracker } from "../service/detached-run-tracker.js";
3
4
  import type { ParsedHostedChatRequest } from "./chat-request-parser.js";
@@ -50,6 +51,8 @@ export declare function resolveHostedDurableRunSetupErrorResponse(input: {
50
51
  errorCode: string;
51
52
  statusCode: HostedDurableRunSetupErrorStatusCode;
52
53
  };
54
+ /** Prepare durable detached-start messages without carrying completed large historical tool inputs. */
55
+ export declare function prepareDetachedStartMessages(messages: ChatUiMessage[]): ChatUiMessage[];
53
56
  /** Execute hosted durable chat run. */
54
57
  export declare function executeHostedDurableChatRun<TExecution>(input: ExecuteHostedDurableChatRunInput<TExecution>): Promise<Response>;
55
58
  //# sourceMappingURL=durable-chat-run-start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"durable-chat-run-start.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/durable-chat-run-start.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,0EAA0E;AAC1E,MAAM,MAAM,oCAAoC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAErF,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,iCAAiC,GAAG;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAClE,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,mCAAmC,CAAC,UAAU,IAAI;IAC5D,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,iCAAiC,CAAC,UAAU,IAAI;IAC1D,SAAS,EAAE,UAAU,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,gCAAgC,CAAC,UAAU,IAAI;IACzD,GAAG,EAAE,uBAAuB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,uBAAuB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACxE,sBAAsB,EAAE,CACtB,KAAK,EAAE,mCAAmC,CAAC,UAAU,CAAC,KACnD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iCAAiC,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3F,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,iCAAiC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5F,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC,CAAC;AA0BF,mEAAmE;AACnE,wBAAgB,yCAAyC,CAAC,KAAK,EAAE;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,oCAAoC,CAAC;CAClD,CAiBA;AAqFD,uCAAuC;AACvC,wBAAsB,2BAA2B,CAAC,UAAU,EAC1D,KAAK,EAAE,gCAAgC,CAAC,UAAU,CAAC,GAClD,OAAO,CAAC,QAAQ,CAAC,CA0DnB"}
1
+ {"version":3,"file":"durable-chat-run-start.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/durable-chat-run-start.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,0EAA0E;AAC1E,MAAM,MAAM,oCAAoC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAErF,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,iCAAiC,GAAG;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAClE,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,mCAAmC,CAAC,UAAU,IAAI;IAC5D,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,iCAAiC,CAAC,UAAU,IAAI;IAC1D,SAAS,EAAE,UAAU,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,gCAAgC,CAAC,UAAU,IAAI;IACzD,GAAG,EAAE,uBAAuB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,uBAAuB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACxE,sBAAsB,EAAE,CACtB,KAAK,EAAE,mCAAmC,CAAC,UAAU,CAAC,KACnD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iCAAiC,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3F,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,iCAAiC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5F,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC,CAAC;AA0BF,mEAAmE;AACnE,wBAAgB,yCAAyC,CAAC,KAAK,EAAE;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,oCAAoC,CAAC;CAClD,CAiBA;AAyBD,uGAAuG;AACvG,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAEvF;AA8DD,uCAAuC;AACvC,wBAAsB,2BAA2B,CAAC,UAAU,EAC1D,KAAK,EAAE,gCAAgC,CAAC,UAAU,CAAC,GAClD,OAAO,CAAC,QAAQ,CAAC,CA0DnB"}
@@ -1,4 +1,5 @@
1
1
  import { parseProviderError } from "../../chat/provider-errors.js";
2
+ import { compactHistoricalUiMessageToolInputs } from "../../chat/message-prep.js";
2
3
  import { AgUiDetachedStartAcceptedSchema, buildDetachedAgUiStartRequest, executeAgUiDetachedStart, } from "../ag-ui/detached-start.js";
3
4
  function readBooleanProperty(input, propertyName) {
4
5
  if (!input) {
@@ -51,6 +52,10 @@ async function parseAcceptedDetachedStartResponse(response) {
51
52
  duplicate: readBooleanProperty(payloadObject, "duplicate"),
52
53
  };
53
54
  }
55
+ /** Prepare durable detached-start messages without carrying completed large historical tool inputs. */
56
+ export function prepareDetachedStartMessages(messages) {
57
+ return compactHistoricalUiMessageToolInputs(messages);
58
+ }
54
59
  async function executeHostedDurableChatRunStart(input) {
55
60
  const { durableRootRun, conversationId } = input.req;
56
61
  if (!durableRootRun || !conversationId) {
@@ -60,7 +65,7 @@ async function executeHostedDurableChatRunStart(input) {
60
65
  const detachedStartRequest = buildDetachedAgUiStartRequest({
61
66
  runId: durableRootRun.runId,
62
67
  threadId: conversationId,
63
- messages: input.req.messages,
68
+ messages: prepareDetachedStartMessages(input.req.messages),
64
69
  model: input.req.model,
65
70
  forwardedProps: input.req.forwardedProps,
66
71
  });
@@ -6,7 +6,7 @@ export type PreparedHostedChatExecution = Omit<CreateBootstrappedHostedChatExecu
6
6
  runtimeKind?: string;
7
7
  };
8
8
  /** Options accepted by prepared hosted chat execution runtime. */
9
- export type PreparedHostedChatExecutionRuntimeOptions = Pick<CreateBootstrappedHostedChatExecutionRuntimeInput, "tracer" | "resolveProvider" | "traceStream" | "logger" | "spanName" | "terminalErrorCode" | "incompleteToolCallsPartErrorText" | "createRootStreamWatchdog" | "createTerminalAdapter"> & {
9
+ export type PreparedHostedChatExecutionRuntimeOptions = Pick<CreateBootstrappedHostedChatExecutionRuntimeInput, "tracer" | "resolveProvider" | "traceStream" | "logger" | "spanName" | "terminalErrorCode" | "incompleteToolCallsPartErrorText" | "createRootStreamWatchdog" | "streamBootstrapKeepaliveIntervalMs" | "streamBootstrapTimeoutMs" | "createTerminalAdapter"> & {
10
10
  apiUrl: string | URL;
11
11
  trace?: <TResult>(operationName: string, operation: () => Promise<TResult>) => Promise<TResult>;
12
12
  setActiveSpanAttributes?: (attributes: AgentTraceAttributes) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"prepared-chat-execution.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/prepared-chat-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAGL,KAAK,iDAAiD,EACvD,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,8DAA8D;AAC9D,MAAM,MAAM,2BAA2B,GACnC,IAAI,CACJ,iDAAiD,EAC/C,QAAQ,GACR,aAAa,GACb,mBAAmB,GACnB,QAAQ,GACR,iBAAiB,GACjB,aAAa,GACb,QAAQ,GACR,UAAU,GACV,mBAAmB,GACnB,kCAAkC,GAClC,0BAA0B,GAC1B,uBAAuB,CAC1B,GACC;IACA,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEJ,kEAAkE;AAClE,MAAM,MAAM,yCAAyC,GACjD,IAAI,CACJ,iDAAiD,EAC/C,QAAQ,GACR,iBAAiB,GACjB,aAAa,GACb,QAAQ,GACR,UAAU,GACV,mBAAmB,GACnB,kCAAkC,GAClC,0BAA0B,GAC1B,uBAAuB,CAC1B,GACC;IACA,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChG,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACtE,CAAC;AAEJ,+DAA+D;AAC/D,MAAM,MAAM,sCAAsC,CAChD,UAAU,SAAS,2BAA2B,GAAG,2BAA2B,IAC1E,UAAU,GAAG;IACf,kBAAkB,EAAE,WAAW,CAAC;IAChC,SAAS,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,wCAAwC,CAClD,UAAU,SAAS,2BAA2B,GAAG,2BAA2B,IAC1E,UAAU,GAAG;IACf,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AA+CF,2EAA2E;AAC3E,wBAAsB,+CAA+C,CACnE,UAAU,SAAS,2BAA2B,EAC9C,KAAK,EAAE;IACP,SAAS,EAAE,sCAAsC,CAAC,UAAU,CAAC,CAAC;IAC9D,OAAO,EAAE,yCAAyC,CAAC;CACpD,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2BpB;AAED,mDAAmD;AACnD,wBAAsB,sCAAsC,CAC1D,UAAU,SAAS,2BAA2B,EAC9C,KAAK,EAAE;IACP,SAAS,EAAE,wCAAwC,CAAC,UAAU,CAAC,CAAC;IAChE,OAAO,EAAE,yCAAyC,CAAC;CACpD,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChB"}
1
+ {"version":3,"file":"prepared-chat-execution.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/prepared-chat-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAGL,KAAK,iDAAiD,EACvD,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,8DAA8D;AAC9D,MAAM,MAAM,2BAA2B,GACnC,IAAI,CACJ,iDAAiD,EAC/C,QAAQ,GACR,aAAa,GACb,mBAAmB,GACnB,QAAQ,GACR,iBAAiB,GACjB,aAAa,GACb,QAAQ,GACR,UAAU,GACV,mBAAmB,GACnB,kCAAkC,GAClC,0BAA0B,GAC1B,uBAAuB,CAC1B,GACC;IACA,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEJ,kEAAkE;AAClE,MAAM,MAAM,yCAAyC,GACjD,IAAI,CACJ,iDAAiD,EAC/C,QAAQ,GACR,iBAAiB,GACjB,aAAa,GACb,QAAQ,GACR,UAAU,GACV,mBAAmB,GACnB,kCAAkC,GAClC,0BAA0B,GAC1B,oCAAoC,GACpC,0BAA0B,GAC1B,uBAAuB,CAC1B,GACC;IACA,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChG,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACtE,CAAC;AAEJ,+DAA+D;AAC/D,MAAM,MAAM,sCAAsC,CAChD,UAAU,SAAS,2BAA2B,GAAG,2BAA2B,IAC1E,UAAU,GAAG;IACf,kBAAkB,EAAE,WAAW,CAAC;IAChC,SAAS,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,wCAAwC,CAClD,UAAU,SAAS,2BAA2B,GAAG,2BAA2B,IAC1E,UAAU,GAAG;IACf,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAqDF,2EAA2E;AAC3E,wBAAsB,+CAA+C,CACnE,UAAU,SAAS,2BAA2B,EAC9C,KAAK,EAAE;IACP,SAAS,EAAE,sCAAsC,CAAC,UAAU,CAAC,CAAC;IAC9D,OAAO,EAAE,yCAAyC,CAAC;CACpD,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2BpB;AAED,mDAAmD;AACnD,wBAAsB,sCAAsC,CAC1D,UAAU,SAAS,2BAA2B,EAC9C,KAAK,EAAE;IACP,SAAS,EAAE,wCAAwC,CAAC,UAAU,CAAC,CAAC;IAChE,OAAO,EAAE,yCAAyC,CAAC;CACpD,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChB"}
@@ -28,6 +28,12 @@ function createBootstrappedPreparedHostedChatExecutionRuntime(input) {
28
28
  terminalErrorCode: input.runtime.terminalErrorCode,
29
29
  incompleteToolCallsPartErrorText: input.runtime.incompleteToolCallsPartErrorText,
30
30
  createRootStreamWatchdog: input.runtime.createRootStreamWatchdog,
31
+ ...(input.runtime.streamBootstrapKeepaliveIntervalMs !== undefined
32
+ ? { streamBootstrapKeepaliveIntervalMs: input.runtime.streamBootstrapKeepaliveIntervalMs }
33
+ : {}),
34
+ ...(input.runtime.streamBootstrapTimeoutMs !== undefined
35
+ ? { streamBootstrapTimeoutMs: input.runtime.streamBootstrapTimeoutMs }
36
+ : {}),
31
37
  createTerminalAdapter: input.runtime.createTerminalAdapter,
32
38
  ...(input.responseMessageId ? { responseMessageId: input.responseMessageId } : {}),
33
39
  });
@@ -1 +1 @@
1
- {"version":3,"file":"stream-terminal-error.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/stream-terminal-error.ts"],"names":[],"mappings":"AAwDA,8CAA8C;AAC9C,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAkDF,uCAAuC;AACvC,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAErE;AAED,mEAAmE;AACnE,wBAAgB,2CAA2C,CAAC,KAAK,EAAE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B,GAAG,yBAAyB,CAQ5B;AAED,4DAA4D;AAC5D,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAC5C,GAAG,OAAO,CAEV"}
1
+ {"version":3,"file":"stream-terminal-error.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/stream-terminal-error.ts"],"names":[],"mappings":"AAyDA,8CAA8C;AAC9C,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAkDF,uCAAuC;AACvC,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAErE;AAED,mEAAmE;AACnE,wBAAgB,2CAA2C,CAAC,KAAK,EAAE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B,GAAG,yBAAyB,CAQ5B;AAED,4DAA4D;AAC5D,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAC5C,GAAG,OAAO,CAEV"}
@@ -34,6 +34,7 @@ function getHostedStreamTimeoutTerminalError(error) {
34
34
  const normalized = message.toLowerCase();
35
35
  const isTimeout = normalized.includes("stream timed out") ||
36
36
  normalized.includes("chat stream idle timeout") ||
37
+ normalized.includes("chat stream bootstrap timeout") ||
37
38
  normalized.includes("stream timeout");
38
39
  if (!isTimeout) {
39
40
  return null;
@@ -5,6 +5,20 @@ export interface PrepareProviderModelMessagesFromUiMessagesOptions {
5
5
  }
6
6
  /** Estimate tokens. */
7
7
  export declare function estimateTokens(value: unknown): number;
8
+ /** Approximate token categories for context diagnostics. */
9
+ export type MessageTokenBreakdown = {
10
+ totalTokens: number;
11
+ systemTextTokens: number;
12
+ userContentTokens: number;
13
+ assistantContentTokens: number;
14
+ reasoningTokens: number;
15
+ toolCallInputTokens: number;
16
+ toolResultOutputTokens: number;
17
+ fileTokens: number;
18
+ unknownTokens: number;
19
+ };
20
+ /** Estimate token categories for provider, UI, or runtime messages. */
21
+ export declare function estimateMessageTokenBreakdown(messages: readonly unknown[]): MessageTokenBreakdown;
8
22
  /** Compress turn. */
9
23
  export declare function compressTurn(messages: ProviderModelMessage[], startIdx: number, endIdx: number): ProviderModelMessage[];
10
24
  /** Enforce token budget with turn compression. */
@@ -23,6 +37,10 @@ export declare function sanitizeProviderModelMessages(messages: ProviderModelMes
23
37
  export declare function prepareProviderModelMessagesFromUiMessages(messages: ChatUiMessage[], options?: PrepareProviderModelMessagesFromUiMessagesOptions): ProviderModelMessage[];
24
38
  /** Mask old tool outputs. */
25
39
  export declare function maskOldToolOutputs(messages: ProviderModelMessage[]): ProviderModelMessage[];
40
+ /** Compact large historical tool-call inputs after matching results are available. */
41
+ export declare function compactOldToolInputs(messages: ProviderModelMessage[]): ProviderModelMessage[];
42
+ /** Compact large historical UI-message tool inputs after matching results are available. */
43
+ export declare function compactHistoricalUiMessageToolInputs(messages: ChatUiMessage[]): ChatUiMessage[];
26
44
  /** Repair tool pairs. */
27
45
  export declare function repairToolPairs(messages: ProviderModelMessage[]): ProviderModelMessage[];
28
46
  /** Estimate overhead. */
@@ -1 +1 @@
1
- {"version":3,"file":"message-prep.d.ts","sourceRoot":"","sources":["../../../src/src/chat/message-prep.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AASjC,OAAO,EAKL,KAAK,aAAa,EAGlB,KAAK,oBAAoB,EAE1B,MAAM,YAAY,CAAC;AAMpB,4EAA4E;AAC5E,MAAM,WAAW,iDAAiD;IAChE,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,uBAAuB;AACvB,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAOD,qBAAqB;AACrB,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,oBAAoB,EAAE,EAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,oBAAoB,EAAE,CAiCxB;AAqCD,kDAAkD;AAClD,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,oBAAoB,EAAE,EAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,oBAAoB,EAAE,CAiExB;AA+BD,4DAA4D;AAC5D,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGxE;AAED,gDAAgD;AAChD,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAwB7F;AAED,qDAAqD;AACrD,wBAAgB,wCAAwC,CACtD,QAAQ,EAAE,aAAa,EAAE,GACxB,aAAa,EAAE,CAmDjB;AAyCD,gCAAgC;AAChC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAiBhF;AAsFD,wCAAwC;AACxC,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,oBAAoB,EAAE,GAC/B,oBAAoB,EAAE,CA8BxB;AA4ED,wDAAwD;AACxD,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,GAAE,iDAAsD,GAC9D,oBAAoB,EAAE,CAqBxB;AAmRD,6BAA6B;AAC7B,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,oBAAoB,EAAE,CA4E3F;AAWD,yBAAyB;AACzB,wBAAgB,eAAe,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,oBAAoB,EAAE,CA4IxF;AAED,yBAAyB;AACzB,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,oBAAoB,EAAE,CA4B7F;AAED,wBAAwB;AACxB,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,oBAAoB,EAAE,EAChC,QAAQ,GAAE,MAAU,GACnB,oBAAoB,EAAE,CAexB;AAED,2BAA2B;AAC3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,oBAAoB,EAAE,CAgE1F;AAED,4BAA4B;AAC5B,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,oBAAoB,EAAE,EAChC,MAAM,GAAE,MAA6B,EACrC,QAAQ,GAAE,MAAU,GACnB,oBAAoB,EAAE,CAMxB"}
1
+ {"version":3,"file":"message-prep.d.ts","sourceRoot":"","sources":["../../../src/src/chat/message-prep.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,103 @@ const CHARS_PER_TOKEN = 4;
6
6
  export function estimateTokens(value) {
7
7
  return Math.ceil(JSON.stringify(value ?? "").length / CHARS_PER_TOKEN);
8
8
  }
9
+ function createEmptyTokenBreakdown(totalTokens) {
10
+ return {
11
+ totalTokens,
12
+ systemTextTokens: 0,
13
+ userContentTokens: 0,
14
+ assistantContentTokens: 0,
15
+ reasoningTokens: 0,
16
+ toolCallInputTokens: 0,
17
+ toolResultOutputTokens: 0,
18
+ fileTokens: 0,
19
+ unknownTokens: 0,
20
+ };
21
+ }
22
+ function addPartTokenBreakdown(breakdown, role, part) {
23
+ if (!isRecord(part) || typeof part.type !== "string") {
24
+ breakdown.unknownTokens += estimateTokens(part);
25
+ return;
26
+ }
27
+ switch (part.type) {
28
+ case "text": {
29
+ const tokens = estimateTokens(typeof part.text === "string" ? part.text : part);
30
+ if (role === "system")
31
+ breakdown.systemTextTokens += tokens;
32
+ else if (role === "user")
33
+ breakdown.userContentTokens += tokens;
34
+ else if (role === "assistant")
35
+ breakdown.assistantContentTokens += tokens;
36
+ else
37
+ breakdown.unknownTokens += tokens;
38
+ return;
39
+ }
40
+ case "reasoning":
41
+ breakdown.reasoningTokens += estimateTokens(part);
42
+ return;
43
+ case "tool-call":
44
+ case "tool_call":
45
+ case "dynamic-tool":
46
+ breakdown.toolCallInputTokens += estimateTokens("input" in part ? part.input : "args" in part ? part.args : part);
47
+ return;
48
+ case "tool-result":
49
+ case "tool_result":
50
+ breakdown.toolResultOutputTokens += estimateTokens("output" in part ? part.output : "result" in part ? part.result : part);
51
+ return;
52
+ case "file":
53
+ case "image":
54
+ breakdown.fileTokens += estimateTokens(part);
55
+ return;
56
+ default:
57
+ if (part.type.startsWith("tool-")) {
58
+ breakdown.toolCallInputTokens += estimateTokens("input" in part ? part.input : "args" in part ? part.args : part);
59
+ return;
60
+ }
61
+ breakdown.unknownTokens += estimateTokens(part);
62
+ }
63
+ }
64
+ /** Estimate token categories for provider, UI, or runtime messages. */
65
+ export function estimateMessageTokenBreakdown(messages) {
66
+ const breakdown = createEmptyTokenBreakdown(estimateTokens(messages));
67
+ for (const message of messages) {
68
+ if (!isRecord(message)) {
69
+ breakdown.unknownTokens += estimateTokens(message);
70
+ continue;
71
+ }
72
+ const role = typeof message.role === "string" ? message.role : "unknown";
73
+ if ("parts" in message && Array.isArray(message.parts)) {
74
+ for (const part of message.parts) {
75
+ addPartTokenBreakdown(breakdown, role, part);
76
+ }
77
+ continue;
78
+ }
79
+ if ("content" in message) {
80
+ const content = message.content;
81
+ if (typeof content === "string") {
82
+ const tokens = estimateTokens(content);
83
+ if (role === "system")
84
+ breakdown.systemTextTokens += tokens;
85
+ else if (role === "user")
86
+ breakdown.userContentTokens += tokens;
87
+ else if (role === "assistant")
88
+ breakdown.assistantContentTokens += tokens;
89
+ else
90
+ breakdown.unknownTokens += tokens;
91
+ }
92
+ else if (Array.isArray(content)) {
93
+ for (const part of content) {
94
+ addPartTokenBreakdown(breakdown, role, part);
95
+ }
96
+ }
97
+ else {
98
+ breakdown.unknownTokens += estimateTokens(content);
99
+ }
100
+ continue;
101
+ }
102
+ breakdown.unknownTokens += estimateTokens(message);
103
+ }
104
+ return breakdown;
105
+ }
9
106
  function truncate(text, maxLen) {
10
107
  if (text.length <= maxLen)
11
108
  return text;
@@ -137,9 +234,38 @@ const DEFAULT_CONTEXT_WINDOW = 200_000;
137
234
  const DEFAULT_TOKEN_BUDGET = Math.floor(DEFAULT_CONTEXT_WINDOW * BUDGET_RATIO);
138
235
  const TOKENS_PER_TOOL = 250;
139
236
  const MASK_THRESHOLD = 500;
237
+ const TOOL_INPUT_MASK_THRESHOLD = 1_000;
238
+ const HISTORICAL_TOOL_INPUT_SUMMARY_KIND = "historical_tool_input_summary";
239
+ const WRITE_TOOL_INPUT_NAMES = new Set([
240
+ "create_file",
241
+ "createfile",
242
+ "update_file",
243
+ "updatefile",
244
+ "write_file",
245
+ "writefile",
246
+ "edit",
247
+ ]);
248
+ const CHILD_AGENT_TOOL_INPUT_NAMES = new Set(["invoke_agent"]);
140
249
  function serializedLength(value) {
141
250
  return JSON.stringify(value ?? "").length;
142
251
  }
252
+ function serializedValue(value) {
253
+ try {
254
+ return JSON.stringify(value ?? null);
255
+ }
256
+ catch {
257
+ return String(value);
258
+ }
259
+ }
260
+ function stableHash(value) {
261
+ const text = serializedValue(value);
262
+ let hash = 0x811c9dc5;
263
+ for (let index = 0; index < text.length; index++) {
264
+ hash ^= text.charCodeAt(index);
265
+ hash = Math.imul(hash, 0x01000193) >>> 0;
266
+ }
267
+ return hash.toString(16).padStart(8, "0");
268
+ }
143
269
  function tryParseJson(value) {
144
270
  if (typeof value !== "string")
145
271
  return value;
@@ -153,6 +279,130 @@ function tryParseJson(value) {
153
279
  function isRecord(value) {
154
280
  return typeof value === "object" && value !== null && !Array.isArray(value);
155
281
  }
282
+ function normalizeToolInputName(toolName) {
283
+ return toolName.toLowerCase().replace(/[^a-z0-9_]/g, "");
284
+ }
285
+ function isWriteToolInput(toolName) {
286
+ return WRITE_TOOL_INPUT_NAMES.has(normalizeToolInputName(toolName));
287
+ }
288
+ function isChildAgentToolInput(toolName) {
289
+ return CHILD_AGENT_TOOL_INPUT_NAMES.has(normalizeToolInputName(toolName));
290
+ }
291
+ function shouldCompactHistoricalToolInput(toolName, input) {
292
+ return isRecord(input) && (isWriteToolInput(toolName) || isChildAgentToolInput(toolName));
293
+ }
294
+ function compactMetadataValue(value) {
295
+ if (typeof value === "string")
296
+ return truncate(value, 200);
297
+ if (typeof value === "number" || typeof value === "boolean")
298
+ return value;
299
+ if (Array.isArray(value)) {
300
+ const compact = value
301
+ .filter((entry) => typeof entry === "string" || typeof entry === "number" || typeof entry === "boolean")
302
+ .slice(0, 20);
303
+ return compact.length > 0 ? compact : undefined;
304
+ }
305
+ if (isRecord(value)) {
306
+ const compact = {};
307
+ for (const [key, entry] of Object.entries(value).slice(0, 20)) {
308
+ if (typeof entry === "string")
309
+ compact[key] = truncate(entry, 200);
310
+ else if (typeof entry === "number" || typeof entry === "boolean")
311
+ compact[key] = entry;
312
+ }
313
+ return Object.keys(compact).length > 0 ? compact : undefined;
314
+ }
315
+ return undefined;
316
+ }
317
+ function copyFirstMetadataField(target, input, outputName, inputNames) {
318
+ for (const name of inputNames) {
319
+ const value = compactMetadataValue(input[name]);
320
+ if (value !== undefined) {
321
+ target[outputName] = value;
322
+ return;
323
+ }
324
+ }
325
+ }
326
+ function copyNamedMetadataFields(target, input, names) {
327
+ for (const name of names) {
328
+ const value = compactMetadataValue(input[name]);
329
+ if (value !== undefined) {
330
+ target[name] = value;
331
+ }
332
+ }
333
+ }
334
+ function compactHistoricalToolInput(toolName, input, charCount) {
335
+ const compact = {
336
+ kind: HISTORICAL_TOOL_INPUT_SUMMARY_KIND,
337
+ toolName,
338
+ originalInputChars: charCount,
339
+ originalInputHash: stableHash(input),
340
+ omitted: "Full historical tool input omitted after the tool completed.",
341
+ };
342
+ if (isWriteToolInput(toolName)) {
343
+ copyFirstMetadataField(compact, input, "path", [
344
+ "path",
345
+ "filePath",
346
+ "file_path",
347
+ "targetPath",
348
+ "target_path",
349
+ "filename",
350
+ ]);
351
+ }
352
+ else if (isChildAgentToolInput(toolName)) {
353
+ copyNamedMetadataFields(compact, input, [
354
+ "agent_id",
355
+ "agentId",
356
+ "model",
357
+ "description",
358
+ "tools",
359
+ "max_steps",
360
+ "maxSteps",
361
+ "thinking",
362
+ ]);
363
+ }
364
+ return compact;
365
+ }
366
+ function collectHistoricalToolResultIds(messages, beforeIndex) {
367
+ const resultIds = new Set();
368
+ for (let index = 0; index < beforeIndex; index++) {
369
+ const message = messages[index];
370
+ if (!message || !Array.isArray(message.content))
371
+ continue;
372
+ for (const part of message.content) {
373
+ if (isToolResultPart(part)) {
374
+ resultIds.add(part.toolCallId);
375
+ }
376
+ }
377
+ }
378
+ return resultIds;
379
+ }
380
+ function isCompletedUiToolPart(part) {
381
+ return isToolLikePart(part) &&
382
+ isRecord(part) &&
383
+ (part.state === "output-available" ||
384
+ part.state === "output-error" ||
385
+ part.state === "output-denied" ||
386
+ part.state === "error" ||
387
+ part.state === "completed");
388
+ }
389
+ function collectHistoricalUiToolResultIds(messages, beforeIndex) {
390
+ const resultIds = new Set();
391
+ for (let index = 0; index < beforeIndex; index++) {
392
+ const message = messages[index];
393
+ if (!message)
394
+ continue;
395
+ for (const part of message.parts) {
396
+ if (!isCompletedUiToolPart(part))
397
+ continue;
398
+ const toolCallId = getToolPartCallId(part);
399
+ if (toolCallId) {
400
+ resultIds.add(toolCallId);
401
+ }
402
+ }
403
+ }
404
+ return resultIds;
405
+ }
156
406
  /** Check whether the model supports the file media type. */
157
407
  export function isModelSupportedFileMediaType(mediaType) {
158
408
  return mediaType.startsWith("image/") || mediaType === "application/pdf" ||
@@ -249,6 +499,9 @@ function isToolLikePart(part) {
249
499
  return isRecord(part) && typeof part.type === "string" &&
250
500
  (part.type === "dynamic-tool" || part.type === "tool_call" || part.type.startsWith("tool-"));
251
501
  }
502
+ function isUiToolInputPart(part) {
503
+ return isToolLikePart(part) && "input" in part;
504
+ }
252
505
  function hasToolState(part, state) {
253
506
  return isRecord(part) && part.state === state && isToolLikePart(part);
254
507
  }
@@ -454,7 +707,8 @@ export function prepareProviderModelMessagesFromUiMessages(messages, options = {
454
707
  const patchedMessages = ensureToolCallInputs(dedupeToolHistory(providerModelMessages));
455
708
  const sanitized = sanitizeProviderModelMessages(patchedMessages);
456
709
  const masked = maskOldToolOutputs(sanitized);
457
- const compacted = enforceTokenBudget(masked);
710
+ const compactedInputs = compactOldToolInputs(masked);
711
+ const compacted = enforceTokenBudget(compactedInputs);
458
712
  const filtered = filterValidMessages(compacted);
459
713
  return repairToolPairs(filtered);
460
714
  }
@@ -755,6 +1009,102 @@ export function maskOldToolOutputs(messages) {
755
1009
  return copyProviderModelMessageSourceId(msg, { ...msg, content: newContent });
756
1010
  });
757
1011
  }
1012
+ /** Compact large historical tool-call inputs after matching results are available. */
1013
+ export function compactOldToolInputs(messages) {
1014
+ let lastUserIdx = -1;
1015
+ for (let i = messages.length - 1; i >= 0; i--) {
1016
+ const message = messages[i];
1017
+ if (message?.role === "user") {
1018
+ lastUserIdx = i;
1019
+ break;
1020
+ }
1021
+ }
1022
+ if (lastUserIdx <= 0)
1023
+ return messages;
1024
+ const historicalResultIds = collectHistoricalToolResultIds(messages, lastUserIdx);
1025
+ let mutated = false;
1026
+ const result = messages.map((msg, idx) => {
1027
+ if (idx >= lastUserIdx || msg.role !== "assistant" || !Array.isArray(msg.content)) {
1028
+ return msg;
1029
+ }
1030
+ let messageMutated = false;
1031
+ const content = msg.content.map((part) => {
1032
+ if (!isToolCallPart(part)) {
1033
+ return part;
1034
+ }
1035
+ if (!historicalResultIds.has(part.toolCallId)) {
1036
+ return part;
1037
+ }
1038
+ if (!shouldCompactHistoricalToolInput(part.toolName, part.input)) {
1039
+ return part;
1040
+ }
1041
+ const charCount = serializedLength(part.input);
1042
+ if (charCount < TOOL_INPUT_MASK_THRESHOLD) {
1043
+ return part;
1044
+ }
1045
+ messageMutated = true;
1046
+ return {
1047
+ ...part,
1048
+ input: compactHistoricalToolInput(part.toolName, part.input, charCount),
1049
+ };
1050
+ });
1051
+ if (!messageMutated) {
1052
+ return msg;
1053
+ }
1054
+ mutated = true;
1055
+ return copyProviderModelMessageSourceId(msg, { ...msg, content });
1056
+ });
1057
+ return mutated ? result : messages;
1058
+ }
1059
+ /** Compact large historical UI-message tool inputs after matching results are available. */
1060
+ export function compactHistoricalUiMessageToolInputs(messages) {
1061
+ let lastUserIdx = -1;
1062
+ for (let i = messages.length - 1; i >= 0; i--) {
1063
+ const message = messages[i];
1064
+ if (message?.role === "user") {
1065
+ lastUserIdx = i;
1066
+ break;
1067
+ }
1068
+ }
1069
+ if (lastUserIdx <= 0)
1070
+ return messages;
1071
+ const historicalResultIds = collectHistoricalUiToolResultIds(messages, lastUserIdx);
1072
+ let mutated = false;
1073
+ const result = messages.map((message, index) => {
1074
+ if (index >= lastUserIdx || message.role !== "assistant") {
1075
+ return message;
1076
+ }
1077
+ let messageMutated = false;
1078
+ const parts = message.parts.map((part) => {
1079
+ if (!isUiToolInputPart(part)) {
1080
+ return part;
1081
+ }
1082
+ const toolCallId = getToolPartCallId(part);
1083
+ if (!toolCallId || !historicalResultIds.has(toolCallId)) {
1084
+ return part;
1085
+ }
1086
+ const toolName = getMessagePartToolName(part);
1087
+ if (!toolName || !shouldCompactHistoricalToolInput(toolName, part.input)) {
1088
+ return part;
1089
+ }
1090
+ const charCount = serializedLength(part.input);
1091
+ if (charCount < TOOL_INPUT_MASK_THRESHOLD) {
1092
+ return part;
1093
+ }
1094
+ messageMutated = true;
1095
+ return {
1096
+ ...part,
1097
+ input: compactHistoricalToolInput(toolName, part.input, charCount),
1098
+ };
1099
+ });
1100
+ if (!messageMutated) {
1101
+ return message;
1102
+ }
1103
+ mutated = true;
1104
+ return { ...message, parts };
1105
+ });
1106
+ return mutated ? result : messages;
1107
+ }
758
1108
  function createSyntheticToolResult(toolCallId, toolName) {
759
1109
  return {
760
1110
  type: "tool-result",
@@ -903,7 +1253,7 @@ export function ensureToolCallInputs(messages) {
903
1253
  }
904
1254
  /** Compact for step. */
905
1255
  export function compactForStep(messages, overhead = 0) {
906
- const compacted = enforceTokenBudget(maskOldToolOutputs(messages), DEFAULT_TOKEN_BUDGET, overhead);
1256
+ const compacted = enforceTokenBudget(compactOldToolInputs(maskOldToolOutputs(messages)), DEFAULT_TOKEN_BUDGET, overhead);
907
1257
  let end = compacted.length;
908
1258
  while (end > 1 && compacted[end - 1]?.role === "assistant") {
909
1259
  end--;
@@ -41,6 +41,7 @@ export declare function isHeartbeatOnlyMetadataChunk(chunk: ChatUiMessageChunk<M
41
41
  export declare function createChatStreamWatchdog(options?: ChatStreamWatchdogOptions): {
42
42
  signal: AbortSignal;
43
43
  readonly lastTimeoutState: ChatStreamWatchdogState | null;
44
+ keepAlive(): void;
44
45
  observe(chunk: ChatUiMessageChunk<MessageMetadata>): void;
45
46
  dispose(): void;
46
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"stream-watchdog.d.ts","sourceRoot":"","sources":["../../../src/src/chat/stream-watchdog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtE,qDAAqD;AACrD,eAAO,MAAM,mCAAmC,SAAU,CAAC;AAC3D,6DAA6D;AAC7D,eAAO,MAAM,2CAA2C,SAAU,CAAC;AAEnE,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAC/B,kBAAkB,GAClB,sBAAsB,GACtB,cAAc,GACd,gBAAgB,CAAC;AAErB,sCAAsC;AACtC,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,UAAU,CAAC,YAAY,CAAC;CACjD,CAAC;AAEF,gDAAgD;AAChD,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAE5B,KAAK,EAAE,uBAAuB;CAU3C;AAED,6CAA6C;AAC7C,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,CAAC,EAAE;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,OAAO,GAAE,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,eAAe,GAAG,sBAAsB,CAG1F,GACA,uBAAuB,CAOzB;AAED,mDAAmD;AACnD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,uBAAuB,EAChC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,GACxC,OAAO,CAMT;AAED,+CAA+C;AAC/C,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,uBAAuB,EACrC,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GAClC,uBAAuB,CA+DzB;AAED,6DAA6D;AAC7D,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,OAAO,CAEhG;AAED,mCAAmC;AACnC,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,yBAAyB;;+BAsChD,uBAAuB,GAAG,IAAI;mBAGvC,kBAAkB,CAAC,eAAe,CAAC;;EAgBrD"}
1
+ {"version":3,"file":"stream-watchdog.d.ts","sourceRoot":"","sources":["../../../src/src/chat/stream-watchdog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtE,qDAAqD;AACrD,eAAO,MAAM,mCAAmC,SAAU,CAAC;AAC3D,6DAA6D;AAC7D,eAAO,MAAM,2CAA2C,SAAU,CAAC;AAEnE,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAC/B,kBAAkB,GAClB,sBAAsB,GACtB,cAAc,GACd,gBAAgB,CAAC;AAErB,sCAAsC;AACtC,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,UAAU,CAAC,YAAY,CAAC;CACjD,CAAC;AAEF,gDAAgD;AAChD,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAE5B,KAAK,EAAE,uBAAuB;CAU3C;AAED,6CAA6C;AAC7C,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,CAAC,EAAE;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,OAAO,GAAE,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,eAAe,GAAG,sBAAsB,CAG1F,GACA,uBAAuB,CAOzB;AAED,mDAAmD;AACnD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,uBAAuB,EAChC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,GACxC,OAAO,CAMT;AAED,+CAA+C;AAC/C,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,uBAAuB,EACrC,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GAClC,uBAAuB,CA+DzB;AAED,6DAA6D;AAC7D,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,OAAO,CAEhG;AAED,mCAAmC;AACnC,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,yBAAyB;;+BAsChD,uBAAuB,GAAG,IAAI;;mBAWvC,kBAAkB,CAAC,eAAe,CAAC;;EAgBrD"}
@@ -114,6 +114,13 @@ export function createChatStreamWatchdog(options) {
114
114
  get lastTimeoutState() {
115
115
  return lastTimeoutState;
116
116
  },
117
+ keepAlive() {
118
+ if (isLongRunningToolRunning(state, resolvedOptions.longRunningToolNames)) {
119
+ return;
120
+ }
121
+ state = createChatStreamWatchdogState("response_pending", undefined, resolvedOptions);
122
+ arm();
123
+ },
117
124
  observe(chunk) {
118
125
  if (isHeartbeatOnlyMetadataChunk(chunk)) {
119
126
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"framework-candidates.generated.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/dev/framework-candidates.generated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAm4bjD,CAAC"}
1
+ {"version":3,"file":"framework-candidates.generated.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/dev/framework-candidates.generated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAo4bjD,CAAC"}
@@ -4456,6 +4456,7 @@ export const FRAMEWORK_CANDIDATES = [
4456
4456
  "UseUploadsRegistryOptions",
4457
4457
  "UseUploadsRegistryOptions,",
4458
4458
  "UseUploadsRegistryResult",
4459
+ "UseUploadsRegistryResult).isLoading,",
4459
4460
  "UseUploadsRegistryResult,",
4460
4461
  "Used",
4461
4462
  "Useful",
@@ -5296,6 +5297,7 @@ export const FRAMEWORK_CANDIDATES = [
5296
5297
  "assertEquals((await",
5297
5298
  "assertEquals((first",
5298
5299
  "assertEquals((full?.messages[0]?.parts[0]",
5300
+ "assertEquals((latest",
5299
5301
  "assertEquals((text",
5300
5302
  "assertEquals(await",
5301
5303
  "assertEquals(b.get().items.map((f)",
@@ -5330,7 +5332,6 @@ export const FRAMEWORK_CANDIDATES = [
5330
5332
  "assertEquals(items.length,",
5331
5333
  "assertEquals(items[0]!.id,",
5332
5334
  "assertEquals(items[0]!.type,",
5333
- "assertEquals(latest?.isLoading,",
5334
5335
  "assertEquals(matches.length,",
5335
5336
  "assertEquals(matches[0]?.title,",
5336
5337
  "assertEquals(menu.parentElement,",
@@ -13976,7 +13977,7 @@ export const FRAMEWORK_CANDIDATES = [
13976
13977
  "view.get().remove(",
13977
13978
  "view.get().save(conversation({",
13978
13979
  "view.get().save(fresh);",
13979
- "view.root.unmount();",
13980
+ "view.root.unmount());",
13980
13981
  "view:",
13981
13982
  "viewBox",
13982
13983
  "viewBox:",
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.1012";
2
+ export declare const VERSION = "0.1.1014";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.1012";
4
+ export const VERSION = "0.1.1014";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.1012",
3
+ "version": "0.1.1014",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",