@superblocksteam/vite-plugin-file-sync 2.0.128 → 2.0.129-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-service/context-download.d.ts +17 -0
- package/dist/ai-service/context-download.d.ts.map +1 -1
- package/dist/ai-service/context-download.js +55 -10
- package/dist/ai-service/context-download.js.map +1 -1
- package/dist/ai-service/context-flush-scheduler.d.ts +75 -0
- package/dist/ai-service/context-flush-scheduler.d.ts.map +1 -0
- package/dist/ai-service/context-flush-scheduler.js +134 -0
- package/dist/ai-service/context-flush-scheduler.js.map +1 -0
- package/dist/ai-service/context-upload.d.ts +4 -1
- package/dist/ai-service/context-upload.d.ts.map +1 -1
- package/dist/ai-service/context-upload.js +7 -2
- package/dist/ai-service/context-upload.js.map +1 -1
- package/dist/ai-service/index.d.ts +10 -6
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +48 -19
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +17 -1
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.js +10 -27
- package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +44 -0
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +230 -52
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts +3 -2
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/manager.d.ts +10 -1
- package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/manager.js +24 -4
- package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
- package/dist/ai-service/llm/context-v2/storage/local.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/storage/local.js +36 -1
- package/dist/ai-service/llm/context-v2/storage/local.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/context.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/context.js +7 -4
- package/dist/ai-service/llm/stream/observers/context.js.map +1 -1
- package/dist/ai-service/types.d.ts +2 -0
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +102 -32
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/sync-service/checkpoint-result.d.ts +22 -0
- package/dist/sync-service/checkpoint-result.d.ts.map +1 -0
- package/dist/sync-service/checkpoint-result.js +22 -0
- package/dist/sync-service/checkpoint-result.js.map +1 -0
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +11 -4
- package/dist/sync-service/index.js.map +1 -1
- package/package.json +8 -8
|
@@ -8,6 +8,8 @@ import { createVercelProvider } from "./interaction/adapters/vercel.js";
|
|
|
8
8
|
import { StreamOrchestrator, StreamConfig, defaultFirstChunkTimeoutMs, LoggingObserver, LLMObsObserver, ContextObserver, RetryNotificationObserver, wrapToolsForObservability, } from "./stream/index.js";
|
|
9
9
|
import { logToolContextIntegrityIssues } from "./tool-context-integrity.js";
|
|
10
10
|
import { extractWorkflowMetrics } from "./workflow-metrics.js";
|
|
11
|
+
/** Context setups slower than this get a warning log (pre-network hang risk). */
|
|
12
|
+
const SLOW_CONTEXT_SETUP_WARN_MS = 5_000;
|
|
11
13
|
function extractPromptCostTokens(usage) {
|
|
12
14
|
const totalInputTokens = usage.inputTokens ?? 0;
|
|
13
15
|
const cachedReadTokens = usage.inputTokenDetails?.cacheReadTokens ?? usage.cachedInputTokens ?? 0;
|
|
@@ -295,6 +297,7 @@ export class LLMClient {
|
|
|
295
297
|
"This should be populated from llmConfig sent by the UI.");
|
|
296
298
|
}
|
|
297
299
|
const contextId = contextConfig?.contextId;
|
|
300
|
+
const contextSetupStartedAt = performance.now();
|
|
298
301
|
const { contextHandle, ctx } = await this.createContext(contextId, contextConfig?.contextOptionsV2, tracer, contextConfig?.contextManagement, peer);
|
|
299
302
|
if (contextConfig?.messages?.length) {
|
|
300
303
|
await ctx.initializeWith(contextConfig.messages);
|
|
@@ -314,11 +317,24 @@ export class LLMClient {
|
|
|
314
317
|
}
|
|
315
318
|
}
|
|
316
319
|
await ctx.startTurn(safeUser);
|
|
320
|
+
// Context setup (create + history replay + start turn) runs before any
|
|
321
|
+
// network call; if it is slow the user sees a silent "generating" hang
|
|
322
|
+
// with nothing in APM (APPS-4690). Log timing so stalls here are visible.
|
|
323
|
+
const contextSetupMs = Math.round(performance.now() - contextSetupStartedAt);
|
|
324
|
+
if (contextSetupMs > SLOW_CONTEXT_SETUP_WARN_MS) {
|
|
325
|
+
// contextId identifies which context was loading (correlate with the
|
|
326
|
+
// manager's "Loading context ... from storage" breadcrumb); persistent
|
|
327
|
+
// restores show replayedMessages=0 because their history comes from
|
|
328
|
+
// storage, not from contextConfig.messages.
|
|
329
|
+
logger.warn(`[llm-client] slow context setup: ${contextSetupMs}ms ` +
|
|
330
|
+
`(contextId=${contextId?.name ?? "ephemeral"} replayedMessages=${contextConfig?.messages?.length ?? 0})`);
|
|
331
|
+
}
|
|
317
332
|
try {
|
|
318
333
|
const fallbackEnabled = this.unifiedProviderEnabled && (enableFallback ?? false);
|
|
319
334
|
logger.info(`[llm-client] provider=${providerConfig.provider} model=${providerConfig.model} ` +
|
|
320
335
|
`unifiedProvider=${this.unifiedProviderEnabled} fallback=${fallbackEnabled}` +
|
|
321
|
-
` retry=${safeJsonStringify(retryConfig)}`
|
|
336
|
+
` retry=${safeJsonStringify(retryConfig)}` +
|
|
337
|
+
` contextSetupMs=${contextSetupMs}`);
|
|
322
338
|
// Opus models can take 60-120s to emit their first content chunk during
|
|
323
339
|
// high-effort reasoning. Give these sessions longer idle/total timeouts;
|
|
324
340
|
// server-side heartbeats still reset the idle timer mid-silence (see
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/ai-service/llm/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/ai-service/llm/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export declare class ContextV2Adapter implements ConversationContext {
|
|
|
14
14
|
startTurn(user: UserModelMessage): Promise<void>;
|
|
15
15
|
startStep(): void;
|
|
16
16
|
endStep(responses: ModelMessage[], usage?: LanguageModelUsage): Promise<void>;
|
|
17
|
-
endTurn(_usage?: LanguageModelUsage): void
|
|
17
|
+
endTurn(_usage?: LanguageModelUsage): Promise<void>;
|
|
18
18
|
getMessages(): Promise<ModelMessage[]>;
|
|
19
19
|
storeSummary(toolCallId: string, summary: CompactionSummary): void;
|
|
20
20
|
setCompactionCallbacks(callbacks: CompactionCallbacks | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,IAAI,CAAC;AAGZ,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAsBzE,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAqB;IAEvC,OAAO;IAIP,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,GAAG,gBAAgB;IAIxD,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI3C,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,IAAI,CAAC;AAGZ,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAsBzE,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAqB;IAEvC,OAAO;IAIP,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,GAAG,gBAAgB;IAIxD,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI3C,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,SAAS,IAAI,IAAI;IAIX,OAAO,CACX,SAAS,EAAE,YAAY,EAAE,EACzB,KAAK,CAAC,EAAE,kBAAkB,GACzB,OAAO,CAAC,IAAI,CAAC;IAqBV,OAAO,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAI5C,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIlE,sBAAsB,CAAC,SAAS,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI;IAIxE,oBAAoB,IAAI,IAAI;IAI5B,6BAA6B,IAAI,OAAO;IAIxC,cAAc,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAIpD,cAAc,IAAI,iBAAiB,GAAG,SAAS;IAI/C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/C,qBAAqB,IAAI,MAAM,EAAE;IAI3B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5C"}
|
|
@@ -28,24 +28,7 @@ export class ContextV2Adapter {
|
|
|
28
28
|
this.v2.setSystemPrompt(prompt);
|
|
29
29
|
}
|
|
30
30
|
async initializeWith(messages) {
|
|
31
|
-
|
|
32
|
-
for (const msg of messages) {
|
|
33
|
-
if (msg.role === "system") {
|
|
34
|
-
// Preserve system messages as the system prompt instead of silently
|
|
35
|
-
// dropping them. When multiple system messages exist, the last one wins.
|
|
36
|
-
// An explicit setSystemPrompt() call after initializeWith() still takes
|
|
37
|
-
// precedence because it runs later.
|
|
38
|
-
this.v2.setSystemPrompt(msg);
|
|
39
|
-
}
|
|
40
|
-
else if (msg.role === "user") {
|
|
41
|
-
await this.v2.addUserMessage(msg);
|
|
42
|
-
}
|
|
43
|
-
else if (msg.role === "assistant" || msg.role === "tool") {
|
|
44
|
-
// Not sure what we do for usage... for historical ModelMessages from the ai-sdk, we do not have real usage
|
|
45
|
-
const minimalUsage = createUsage();
|
|
46
|
-
await this.v2.addResponse(msg, minimalUsage);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
31
|
+
return this.v2.initializeWith(messages);
|
|
49
32
|
}
|
|
50
33
|
async startTurn(user) {
|
|
51
34
|
await this.v2.addUserMessage(user);
|
|
@@ -63,15 +46,15 @@ export class ContextV2Adapter {
|
|
|
63
46
|
this.lastUsage = usage ?? this.lastUsage;
|
|
64
47
|
// at the very least, we will have some data. on the first turn, this is 0. in the future,
|
|
65
48
|
// either `usage` is defined and we will use that, or we will use the last usage.
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
49
|
+
const effectiveUsage = usage ?? this.lastUsage ?? createUsage();
|
|
50
|
+
// Commit the step's messages in one batch — a single full-record rewrite is
|
|
51
|
+
// deferred to endTurn rather than run once per message (APPS-4690).
|
|
52
|
+
await this.v2.addResponses(newResponses.filter(Boolean), effectiveUsage);
|
|
53
|
+
}
|
|
54
|
+
async endTurn(_usage) {
|
|
55
|
+
// Persist the full-record snapshot once per generation. Per-message
|
|
56
|
+
// persisting wedged the event loop on large-history apps (APPS-4690).
|
|
57
|
+
await this.v2.endTurn();
|
|
75
58
|
}
|
|
76
59
|
async getMessages() {
|
|
77
60
|
return this.v2.getMessages();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,MAAM,MAAM,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;AAEzD,MAAM,WAAW,GAAG,CAClB,cAAsB,CAAC,EACvB,eAAuB,CAAC,EACJ,EAAE,CAAC,CAAC;IACxB,WAAW;IACX,YAAY;IACZ,WAAW,EAAE,WAAW,GAAG,YAAY;IACvC,iBAAiB,EAAE;QACjB,aAAa,EAAE,WAAW;QAC1B,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE,CAAC;KACpB;IACD,kBAAkB,EAAE;QAClB,UAAU,EAAE,YAAY;QACxB,eAAe,EAAE,CAAC;KACnB;CACF,CAAC,CAAC;AAEH,MAAM,OAAO,gBAAgB;IACnB,EAAE,CAAY;IACd,aAAa,GAAG,CAAC,CAAC;IAClB,SAAS,CAAsB;IAEvC,YAAoB,OAAkB;QACpC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAkB;QACnC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,eAAe,CAAC,MAA0B;QACxC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAwB;QAC3C,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,7 +77,51 @@ export declare class ContextV2 implements Context {
|
|
|
77
77
|
toRecord(): ContextRecordV2;
|
|
78
78
|
setSystemPrompt(prompt: SystemModelMessage): void;
|
|
79
79
|
addUserMessage(message: UserModelMessage): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Replay a full message history into an empty context (cold-pod session
|
|
82
|
+
* restore). Unlike per-turn `addUserMessage`/`addResponse`, this persists
|
|
83
|
+
* exactly once at the end: persisting per replayed message serializes the
|
|
84
|
+
* entire accumulated context each time — O(n²) work that blocks the event
|
|
85
|
+
* loop for minutes at large history sizes (APPS-4690).
|
|
86
|
+
*
|
|
87
|
+
* Must only be called on an empty context. Replaying on top of messages
|
|
88
|
+
* loaded from storage would silently duplicate the conversation (and, for
|
|
89
|
+
* persistent contexts, re-append every message to the event log).
|
|
90
|
+
*/
|
|
91
|
+
initializeWith(messages: ModelMessage[]): Promise<void>;
|
|
80
92
|
addResponse(response: ModelMessage, usage: LanguageModelUsage): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Commit a whole step's responses into the conversation.
|
|
95
|
+
*
|
|
96
|
+
* The streaming path (`ContextObserver` → adapter `endStep`) used to call
|
|
97
|
+
* {@link addResponse} once per response message, and every call rewrote the
|
|
98
|
+
* entire context file (an O(history) synchronous `JSON.stringify`). On
|
|
99
|
+
* large-history apps that repeated full-record rewrite blocked the event
|
|
100
|
+
* loop for seconds *per message* mid-generation — the wedge in APPS-4690.
|
|
101
|
+
*
|
|
102
|
+
* This commits the step's messages without a full-record rewrite: each
|
|
103
|
+
* message is appended to the event log (an O(1) append that carries
|
|
104
|
+
* per-message durability), and the legacy full-record snapshot is deferred
|
|
105
|
+
* to {@link endTurn} so the whole generation costs one rewrite instead of
|
|
106
|
+
* one per message. Screenshot-media stripping is likewise deferred to a
|
|
107
|
+
* single backward pass (mirroring {@link initializeWith}) instead of an
|
|
108
|
+
* O(history) scan per message.
|
|
109
|
+
*/
|
|
110
|
+
addResponses(responses: ModelMessage[], usage: LanguageModelUsage): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Persist the full record once, at the end of a generation.
|
|
113
|
+
*
|
|
114
|
+
* Per-step {@link addResponses} no longer rewrites the whole context file
|
|
115
|
+
* (APPS-4690); this single end-of-turn snapshot keeps the legacy `main.json`
|
|
116
|
+
* (attachments + the checkpoint/Bucketeer snapshot) reasonably fresh while
|
|
117
|
+
* per-message durability is carried by the event log. Enqueued so it
|
|
118
|
+
* serializes behind any in-flight step commit.
|
|
119
|
+
*/
|
|
120
|
+
endTurn(): Promise<void>;
|
|
121
|
+
/** Store a single assistant/tool/other response message and return it. */
|
|
122
|
+
private ingestResponse;
|
|
123
|
+
/** Single backwards pass keeping media on only the newest screenshot. */
|
|
124
|
+
private stripAllButLatestScreenshot;
|
|
81
125
|
/**
|
|
82
126
|
* Runs the configured compaction strategy after the most recent response
|
|
83
127
|
* has been stored. For the server-side strategy this is a no-op; for the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { setImmediate } from "node:timers/promises";
|
|
1
2
|
import { getPrefixedLogger } from "../../../util/logger.js";
|
|
2
3
|
import { findBreakpoints } from "./caching.js";
|
|
3
4
|
import { ServerSideCompactionStrategy } from "./compaction/server-side.js";
|
|
@@ -7,6 +8,36 @@ import { getTotalInputTokens } from "./token-tracker.js";
|
|
|
7
8
|
import { toStoredMessage, toSdkMessages, CACHE_BREAKPOINT_PROVIDER_OPTIONS, normalizeToolMessage, stripUndefinedFromToolOutputs, repairBrokenToolCalls, repairOrphanedToolResults, normalizeReasoningProviderOptions, stripUnsignedReasoning, stripTrailingAssistantPrefill, extractTokenUsage, } from "./types.js";
|
|
8
9
|
import { uniquifyFilePartFilenames } from "./uniquify-filenames.js";
|
|
9
10
|
const logger = getPrefixedLogger("[context-v2]");
|
|
11
|
+
/**
|
|
12
|
+
* Persists slower than this get a warning log with the message count.
|
|
13
|
+
* Diagnostic threshold for APPS-4690: large-history apps can cross it on
|
|
14
|
+
* every turn (each response rewrites the full context file), so treat it as
|
|
15
|
+
* a signal that the context is oversized, not as a per-occurrence alert.
|
|
16
|
+
* Raise or remove once per-turn full-file rewrites are addressed.
|
|
17
|
+
*/
|
|
18
|
+
const SLOW_PERSIST_WARN_MS = 500;
|
|
19
|
+
/** Messages replayed between explicit event-loop yields in initializeWith. */
|
|
20
|
+
const REPLAY_YIELD_INTERVAL = 100;
|
|
21
|
+
/**
|
|
22
|
+
* Usage attributed to messages replayed from history (no live usage data).
|
|
23
|
+
* Token accounting is intentionally zeroed for replayed messages — the first
|
|
24
|
+
* real response after replay restores accurate cumulative tracking via
|
|
25
|
+
* `getLastKnownInputTokens` monotonicity.
|
|
26
|
+
*/
|
|
27
|
+
const ZERO_USAGE = {
|
|
28
|
+
inputTokens: 0,
|
|
29
|
+
outputTokens: 0,
|
|
30
|
+
totalTokens: 0,
|
|
31
|
+
inputTokenDetails: {
|
|
32
|
+
noCacheTokens: 0,
|
|
33
|
+
cacheReadTokens: 0,
|
|
34
|
+
cacheWriteTokens: 0,
|
|
35
|
+
},
|
|
36
|
+
outputTokenDetails: {
|
|
37
|
+
textTokens: 0,
|
|
38
|
+
reasoningTokens: 0,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
10
41
|
/**
|
|
11
42
|
* Whether an assistant message contains `tool-call` content parts whose
|
|
12
43
|
* matching `tool-result` messages have not been stored yet. Used by
|
|
@@ -185,54 +216,70 @@ export class ContextV2 {
|
|
|
185
216
|
await this.appendEvent("prompt_sent", storedMessage);
|
|
186
217
|
});
|
|
187
218
|
}
|
|
188
|
-
|
|
219
|
+
/**
|
|
220
|
+
* Replay a full message history into an empty context (cold-pod session
|
|
221
|
+
* restore). Unlike per-turn `addUserMessage`/`addResponse`, this persists
|
|
222
|
+
* exactly once at the end: persisting per replayed message serializes the
|
|
223
|
+
* entire accumulated context each time — O(n²) work that blocks the event
|
|
224
|
+
* loop for minutes at large history sizes (APPS-4690).
|
|
225
|
+
*
|
|
226
|
+
* Must only be called on an empty context. Replaying on top of messages
|
|
227
|
+
* loaded from storage would silently duplicate the conversation (and, for
|
|
228
|
+
* persistent contexts, re-append every message to the event log).
|
|
229
|
+
*/
|
|
230
|
+
async initializeWith(messages) {
|
|
231
|
+
const enqueuedAt = performance.now();
|
|
232
|
+
let replayMs = 0;
|
|
189
233
|
await this.queue.enqueue(async () => {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
normalizeReasoningProviderOptions(response);
|
|
201
|
-
const extraMeta = this.compaction.collectAssistantMetadata(response) ?? {};
|
|
202
|
-
storedResponse = toStoredMessage(response, {
|
|
203
|
-
cumulativeInputTokens,
|
|
204
|
-
tokenCount: usage.outputTokens,
|
|
205
|
-
...extraMeta,
|
|
206
|
-
});
|
|
207
|
-
this.messages.push(storedResponse);
|
|
208
|
-
break;
|
|
234
|
+
const replayStartedAt = performance.now();
|
|
235
|
+
if (this.messages.length > 0) {
|
|
236
|
+
logger.warn(`initializeWith called on a non-empty context (${this.messages.length} existing messages); appending — this likely duplicates history`);
|
|
237
|
+
}
|
|
238
|
+
for (let i = 0; i < messages.length; i++) {
|
|
239
|
+
// Without an event store (ephemeral contexts) nothing below awaits
|
|
240
|
+
// real I/O, so the whole replay runs as one synchronous block; yield
|
|
241
|
+
// periodically so timers, sockets, and heartbeats can run.
|
|
242
|
+
if (i > 0 && i % REPLAY_YIELD_INTERVAL === 0) {
|
|
243
|
+
await setImmediate();
|
|
209
244
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
if (hasScreenshotMedia(normalized)) {
|
|
214
|
-
let strippedCount = 0;
|
|
215
|
-
for (let i = 0; i < this.messages.length; i++) {
|
|
216
|
-
const msg = this.messages[i];
|
|
217
|
-
if (msg && hasScreenshotMedia(msg)) {
|
|
218
|
-
this.messages[i] = stripScreenshotMediaFromToolMessage(msg);
|
|
219
|
-
strippedCount++;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
if (strippedCount > 0) {
|
|
223
|
-
logger.info(`Stripped media from ${strippedCount} older screenshot(s)`);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
const extraMeta = this.compaction.collectToolMetadata(normalized) ?? {};
|
|
227
|
-
storedResponse = toStoredMessage(normalized, extraMeta);
|
|
228
|
-
this.messages.push(storedResponse);
|
|
229
|
-
break;
|
|
245
|
+
const message = messages[i];
|
|
246
|
+
if (!message) {
|
|
247
|
+
continue;
|
|
230
248
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
249
|
+
if (message.role === "system") {
|
|
250
|
+
// Last system message wins; an explicit setSystemPrompt() after
|
|
251
|
+
// initializeWith() still takes precedence because it runs later.
|
|
252
|
+
this.systemPrompt = toStoredMessage(message);
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
if (message.role === "user") {
|
|
256
|
+
const storedMessage = toStoredMessage(message);
|
|
257
|
+
this.messages.push(storedMessage);
|
|
258
|
+
await this.appendEvent("prompt_sent", storedMessage);
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
const storedResponse = this.ingestResponse(message, ZERO_USAGE, {
|
|
262
|
+
stripOlderScreenshots: false,
|
|
263
|
+
});
|
|
264
|
+
const eventUsage = message.role === "assistant"
|
|
265
|
+
? extractTokenUsage(ZERO_USAGE)
|
|
266
|
+
: undefined;
|
|
267
|
+
await this.appendEvent("response_received", storedResponse, eventUsage);
|
|
235
268
|
}
|
|
269
|
+
this.stripAllButLatestScreenshot();
|
|
270
|
+
await this.persist();
|
|
271
|
+
replayMs = Math.round(performance.now() - replayStartedAt);
|
|
272
|
+
});
|
|
273
|
+
// queueWaitMs separates queue contention from replay work so a slow
|
|
274
|
+
// number here points at the right culprit (APPS-4690 diagnosis log).
|
|
275
|
+
const queueWaitMs = Math.round(performance.now() - enqueuedAt) - replayMs;
|
|
276
|
+
logger.info(`initializeWith: replayed ${messages.length} messages in ${replayMs}ms (queueWaitMs=${queueWaitMs})`);
|
|
277
|
+
}
|
|
278
|
+
async addResponse(response, usage) {
|
|
279
|
+
await this.queue.enqueue(async () => {
|
|
280
|
+
const storedResponse = this.ingestResponse(response, usage, {
|
|
281
|
+
stripOlderScreenshots: true,
|
|
282
|
+
});
|
|
236
283
|
if (response.role === "assistant" || response.role === "tool") {
|
|
237
284
|
const eventUsage = response.role === "assistant" ? extractTokenUsage(usage) : undefined;
|
|
238
285
|
await this.appendEvent("response_received", storedResponse, eventUsage);
|
|
@@ -246,6 +293,134 @@ export class ContextV2 {
|
|
|
246
293
|
// — a `return` over the previous line would have made this unreachable.
|
|
247
294
|
await this.runCompactionIfNeeded(response, usage);
|
|
248
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Commit a whole step's responses into the conversation.
|
|
298
|
+
*
|
|
299
|
+
* The streaming path (`ContextObserver` → adapter `endStep`) used to call
|
|
300
|
+
* {@link addResponse} once per response message, and every call rewrote the
|
|
301
|
+
* entire context file (an O(history) synchronous `JSON.stringify`). On
|
|
302
|
+
* large-history apps that repeated full-record rewrite blocked the event
|
|
303
|
+
* loop for seconds *per message* mid-generation — the wedge in APPS-4690.
|
|
304
|
+
*
|
|
305
|
+
* This commits the step's messages without a full-record rewrite: each
|
|
306
|
+
* message is appended to the event log (an O(1) append that carries
|
|
307
|
+
* per-message durability), and the legacy full-record snapshot is deferred
|
|
308
|
+
* to {@link endTurn} so the whole generation costs one rewrite instead of
|
|
309
|
+
* one per message. Screenshot-media stripping is likewise deferred to a
|
|
310
|
+
* single backward pass (mirroring {@link initializeWith}) instead of an
|
|
311
|
+
* O(history) scan per message.
|
|
312
|
+
*/
|
|
313
|
+
async addResponses(responses, usage) {
|
|
314
|
+
if (responses.length === 0) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
await this.queue.enqueue(async () => {
|
|
318
|
+
for (const response of responses) {
|
|
319
|
+
const storedResponse = this.ingestResponse(response, usage, {
|
|
320
|
+
stripOlderScreenshots: false,
|
|
321
|
+
});
|
|
322
|
+
if (response.role === "assistant" || response.role === "tool") {
|
|
323
|
+
const eventUsage = response.role === "assistant"
|
|
324
|
+
? extractTokenUsage(usage)
|
|
325
|
+
: undefined;
|
|
326
|
+
await this.appendEvent("response_received", storedResponse, eventUsage);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
this.stripAllButLatestScreenshot();
|
|
330
|
+
});
|
|
331
|
+
// Compaction runs once after the step is committed. It inspects the whole
|
|
332
|
+
// message array and only acts when no tool calls are pending, so a single
|
|
333
|
+
// post-batch call preserves the per-message deferral behavior. When it does
|
|
334
|
+
// compact it persists the (smaller) compacted record itself.
|
|
335
|
+
const lastResponse = responses[responses.length - 1];
|
|
336
|
+
if (lastResponse) {
|
|
337
|
+
await this.runCompactionIfNeeded(lastResponse, usage);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Persist the full record once, at the end of a generation.
|
|
342
|
+
*
|
|
343
|
+
* Per-step {@link addResponses} no longer rewrites the whole context file
|
|
344
|
+
* (APPS-4690); this single end-of-turn snapshot keeps the legacy `main.json`
|
|
345
|
+
* (attachments + the checkpoint/Bucketeer snapshot) reasonably fresh while
|
|
346
|
+
* per-message durability is carried by the event log. Enqueued so it
|
|
347
|
+
* serializes behind any in-flight step commit.
|
|
348
|
+
*/
|
|
349
|
+
async endTurn() {
|
|
350
|
+
await this.queue.enqueue(async () => {
|
|
351
|
+
await this.persist();
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
/** Store a single assistant/tool/other response message and return it. */
|
|
355
|
+
ingestResponse(response, usage, options) {
|
|
356
|
+
switch (response.role) {
|
|
357
|
+
case "assistant": {
|
|
358
|
+
// Total input tokens = non-cached + cached (prompt caching splits these)
|
|
359
|
+
const reportedInputTokens = getTotalInputTokens(usage);
|
|
360
|
+
// Ensure cumulative tokens never decrease - on cache misses, the LLM may
|
|
361
|
+
// report artificially low input tokens (just new tokens, not the full context).
|
|
362
|
+
// Use the higher of reported tokens or last known to maintain monotonicity.
|
|
363
|
+
const lastKnownTokens = this.getLastKnownInputTokens();
|
|
364
|
+
const cumulativeInputTokens = Math.max(reportedInputTokens, lastKnownTokens);
|
|
365
|
+
normalizeReasoningProviderOptions(response);
|
|
366
|
+
const extraMeta = this.compaction.collectAssistantMetadata(response) ?? {};
|
|
367
|
+
const storedResponse = toStoredMessage(response, {
|
|
368
|
+
cumulativeInputTokens,
|
|
369
|
+
tokenCount: usage.outputTokens,
|
|
370
|
+
...extraMeta,
|
|
371
|
+
});
|
|
372
|
+
this.messages.push(storedResponse);
|
|
373
|
+
return storedResponse;
|
|
374
|
+
}
|
|
375
|
+
case "tool": {
|
|
376
|
+
const normalized = normalizeToolMessage(stripUndefinedFromToolOutputs(response));
|
|
377
|
+
// Strip media from older screenshots so at most one is kept in stored
|
|
378
|
+
// messages. Bulk replay defers this to a single pass at the end.
|
|
379
|
+
if (options.stripOlderScreenshots && hasScreenshotMedia(normalized)) {
|
|
380
|
+
let strippedCount = 0;
|
|
381
|
+
for (let i = 0; i < this.messages.length; i++) {
|
|
382
|
+
const msg = this.messages[i];
|
|
383
|
+
if (msg && hasScreenshotMedia(msg)) {
|
|
384
|
+
this.messages[i] = stripScreenshotMediaFromToolMessage(msg);
|
|
385
|
+
strippedCount++;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (strippedCount > 0) {
|
|
389
|
+
logger.info(`Stripped media from ${strippedCount} older screenshot(s)`);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
const extraMeta = this.compaction.collectToolMetadata(normalized) ?? {};
|
|
393
|
+
const storedResponse = toStoredMessage(normalized, extraMeta);
|
|
394
|
+
this.messages.push(storedResponse);
|
|
395
|
+
return storedResponse;
|
|
396
|
+
}
|
|
397
|
+
default: {
|
|
398
|
+
const storedResponse = toStoredMessage(response);
|
|
399
|
+
this.messages.push(storedResponse);
|
|
400
|
+
return storedResponse;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
/** Single backwards pass keeping media on only the newest screenshot. */
|
|
405
|
+
stripAllButLatestScreenshot() {
|
|
406
|
+
let latestKept = false;
|
|
407
|
+
let strippedCount = 0;
|
|
408
|
+
for (let i = this.messages.length - 1; i >= 0; i--) {
|
|
409
|
+
const msg = this.messages[i];
|
|
410
|
+
if (!msg || !hasScreenshotMedia(msg)) {
|
|
411
|
+
continue;
|
|
412
|
+
}
|
|
413
|
+
if (!latestKept) {
|
|
414
|
+
latestKept = true;
|
|
415
|
+
continue;
|
|
416
|
+
}
|
|
417
|
+
this.messages[i] = stripScreenshotMediaFromToolMessage(msg);
|
|
418
|
+
strippedCount++;
|
|
419
|
+
}
|
|
420
|
+
if (strippedCount > 0) {
|
|
421
|
+
logger.info(`Stripped media from ${strippedCount} older screenshot(s)`);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
249
424
|
/**
|
|
250
425
|
* Runs the configured compaction strategy after the most recent response
|
|
251
426
|
* has been stored. For the server-side strategy this is a no-op; for the
|
|
@@ -477,16 +652,19 @@ export class ContextV2 {
|
|
|
477
652
|
return 0;
|
|
478
653
|
}
|
|
479
654
|
async persist() {
|
|
480
|
-
if (this.isDisposed) {
|
|
655
|
+
if (this.isDisposed || !this.onPersist) {
|
|
481
656
|
return;
|
|
482
657
|
}
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
658
|
+
const startedAt = performance.now();
|
|
659
|
+
try {
|
|
660
|
+
await this.onPersist(this.toRecord());
|
|
661
|
+
}
|
|
662
|
+
catch (err) {
|
|
663
|
+
logger.error(`Failed to persist context: ${err}`);
|
|
664
|
+
}
|
|
665
|
+
const elapsedMs = performance.now() - startedAt;
|
|
666
|
+
if (elapsedMs > SLOW_PERSIST_WARN_MS) {
|
|
667
|
+
logger.warn(`slow persist: ${Math.round(elapsedMs)}ms (messages=${this.messages.length})`);
|
|
490
668
|
}
|
|
491
669
|
}
|
|
492
670
|
}
|