@farazirfan/costar-server-executor 1.7.2 → 1.7.5

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 (30) hide show
  1. package/dist/agent/pi-embedded-helpers/errors.d.ts +35 -0
  2. package/dist/agent/pi-embedded-helpers/errors.d.ts.map +1 -0
  3. package/dist/agent/pi-embedded-helpers/errors.js +89 -0
  4. package/dist/agent/pi-embedded-helpers/errors.js.map +1 -0
  5. package/dist/agent/pi-embedded-runner/compact.d.ts +45 -0
  6. package/dist/agent/pi-embedded-runner/compact.d.ts.map +1 -0
  7. package/dist/agent/pi-embedded-runner/compact.js +176 -0
  8. package/dist/agent/pi-embedded-runner/compact.js.map +1 -0
  9. package/dist/agent/pi-embedded-runner/run.d.ts +17 -0
  10. package/dist/agent/pi-embedded-runner/run.d.ts.map +1 -1
  11. package/dist/agent/pi-embedded-runner/run.js +176 -30
  12. package/dist/agent/pi-embedded-runner/run.js.map +1 -1
  13. package/dist/agent/pi-embedded-runner/tool-result-truncation.d.ts +72 -0
  14. package/dist/agent/pi-embedded-runner/tool-result-truncation.d.ts.map +1 -0
  15. package/dist/agent/pi-embedded-runner/tool-result-truncation.js +281 -0
  16. package/dist/agent/pi-embedded-runner/tool-result-truncation.js.map +1 -0
  17. package/dist/agent/pi-embedded-runner/types.d.ts +25 -0
  18. package/dist/agent/pi-embedded-runner/types.d.ts.map +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +8 -5
  21. package/dist/index.js.map +1 -1
  22. package/dist/tools/fetch-api-data.d.ts +15 -4
  23. package/dist/tools/fetch-api-data.d.ts.map +1 -1
  24. package/dist/tools/fetch-api-data.js +169 -81
  25. package/dist/tools/fetch-api-data.js.map +1 -1
  26. package/dist/tools/index.d.ts +5 -5
  27. package/dist/tools/index.d.ts.map +1 -1
  28. package/dist/tools/index.js +8 -7
  29. package/dist/tools/index.js.map +1 -1
  30. package/package.json +1 -1
@@ -1,16 +1,37 @@
1
1
  /**
2
2
  * Embedded Pi Agent Runner (based on OpenClaw's pi-embedded-runner/run.ts)
3
3
  * This is the main agent execution function that uses @mariozechner/pi-ai
4
+ *
5
+ * Overflow recovery flow (ported from OpenClaw lines 386-598):
6
+ * 1. Detect overflow from promptError or assistantErrorText
7
+ * 2. Check isCompactionFailureError — skip retry for compaction failures
8
+ * 3. Call compactEmbeddedPiSessionDirect up to MAX_OVERFLOW_COMPACTION_ATTEMPTS times
9
+ * 4. Fall back to truncateOversizedToolResultsInSession if compaction fails
10
+ * 5. Reset session file as absolute last resort (CoStar-specific)
4
11
  */
5
12
  import fs from "node:fs/promises";
6
13
  import os from "node:os";
7
14
  import { createAgentSession, SessionManager, SettingsManager, } from "@mariozechner/pi-coding-agent";
8
- import { resolveModel, DEFAULT_PROVIDER, DEFAULT_MODEL } from "./model.js";
15
+ import { resolveModel, DEFAULT_PROVIDER, DEFAULT_MODEL, DEFAULT_CONTEXT_TOKENS } from "./model.js";
9
16
  import { getCustomTools } from "./tools.js";
10
17
  import { buildAgentSystemPrompt, createSystemPromptOverride } from "./system-prompt.js";
11
18
  import { subscribeEmbeddedPiSession } from "./subscribe.js";
19
+ import { isContextOverflowError, isCompactionFailureError, describeUnknownError, } from "../pi-embedded-helpers/errors.js";
20
+ import { compactEmbeddedPiSessionDirect } from "./compact.js";
21
+ import { truncateOversizedToolResultsInSession, sessionLikelyHasOversizedToolResults, } from "./tool-result-truncation.js";
22
+ // Re-export for backwards compatibility (used by existing tests)
23
+ export { isContextOverflowError } from "../pi-embedded-helpers/errors.js";
24
+ /**
25
+ * Maximum number of auto-compaction attempts on context overflow
26
+ * (following OpenClaw's MAX_OVERFLOW_COMPACTION_ATTEMPTS)
27
+ */
28
+ const MAX_OVERFLOW_COMPACTION_ATTEMPTS = 3;
12
29
  /**
13
30
  * Run embedded pi agent (matches OpenClaw's architecture)
31
+ *
32
+ * Includes context overflow detection, auto-compaction, tool result truncation,
33
+ * and session reset as last resort.
34
+ * (Ported from OpenClaw's run.ts lines 386-598)
14
35
  */
15
36
  export async function runEmbeddedPiAgent(params) {
16
37
  const started = Date.now();
@@ -23,21 +44,140 @@ export async function runEmbeddedPiAgent(params) {
23
44
  if (!model) {
24
45
  throw new Error(error ?? `Unknown model: ${provider}/${modelId}`);
25
46
  }
26
- try {
47
+ const contextWindowTokens = model.contextWindow ?? DEFAULT_CONTEXT_TOKENS;
48
+ let overflowCompactionAttempts = 0;
49
+ let toolResultTruncationAttempted = false;
50
+ // Retry loop for context overflow + auto-compaction (following OpenClaw's pattern)
51
+ while (true) {
52
+ await fs.mkdir(params.workspaceDir, { recursive: true });
27
53
  const result = await runEmbeddedAttempt(params, model, authStorage, modelRegistry);
54
+ const { aborted, promptError, sessionIdUsed, assistantTexts } = result;
55
+ // Extract assistant error text (following OpenClaw's pattern)
56
+ const assistantErrorText = result.error ?? undefined;
57
+ // --- Context overflow detection (following OpenClaw lines 473-489) ---
58
+ // Check promptError first; only check assistantError if no promptError
59
+ const contextOverflowError = !aborted
60
+ ? (() => {
61
+ if (promptError) {
62
+ const errorText = describeUnknownError(promptError);
63
+ if (isContextOverflowError(errorText)) {
64
+ return { text: errorText, source: "promptError" };
65
+ }
66
+ // Prompt submission failed with a non-overflow error. Do not
67
+ // inspect prior assistant errors from history for this attempt.
68
+ return null;
69
+ }
70
+ if (assistantErrorText && isContextOverflowError(assistantErrorText)) {
71
+ return { text: assistantErrorText, source: "assistantError" };
72
+ }
73
+ return null;
74
+ })()
75
+ : null;
76
+ if (contextOverflowError) {
77
+ const errorText = contextOverflowError.text;
78
+ console.warn(`[PI_AGENT] [context-overflow-diag] sessionKey=${params.sessionKey ?? params.sessionId} ` +
79
+ `provider=${provider}/${modelId} source=${contextOverflowError.source} ` +
80
+ `sessionFile=${params.sessionFile} ` +
81
+ `compactionAttempts=${overflowCompactionAttempts} error=${errorText.slice(0, 200)}`);
82
+ const isCompactionFailure = isCompactionFailureError(errorText);
83
+ // Attempt auto-compaction on context overflow (NOT on compaction_failure)
84
+ if (!isCompactionFailure &&
85
+ overflowCompactionAttempts < MAX_OVERFLOW_COMPACTION_ATTEMPTS) {
86
+ overflowCompactionAttempts++;
87
+ console.warn(`[PI_AGENT] context overflow detected (attempt ${overflowCompactionAttempts}/${MAX_OVERFLOW_COMPACTION_ATTEMPTS}); attempting auto-compaction for ${provider}/${modelId}`);
88
+ const compactResult = await compactEmbeddedPiSessionDirect({
89
+ sessionId: params.sessionId,
90
+ sessionKey: params.sessionKey,
91
+ sessionFile: params.sessionFile,
92
+ workspaceDir: params.workspaceDir,
93
+ agentDir: params.agentDir,
94
+ config: params.config,
95
+ provider,
96
+ model: modelId,
97
+ thinkLevel: params.thinkLevel,
98
+ extraSystemPrompt: params.extraSystemPrompt,
99
+ skillEntries: params.skillEntries,
100
+ authProfileId: params.authProfileId,
101
+ });
102
+ if (compactResult.compacted) {
103
+ console.log(`[PI_AGENT] auto-compaction succeeded for ${provider}/${modelId}; retrying prompt`);
104
+ continue;
105
+ }
106
+ console.warn(`[PI_AGENT] auto-compaction failed for ${provider}/${modelId}: ${compactResult.reason ?? "nothing to compact"}`);
107
+ }
108
+ // Fallback: try truncating oversized tool results in the session.
109
+ // This handles the case where a single tool result exceeds the
110
+ // context window and compaction cannot reduce it further.
111
+ if (!toolResultTruncationAttempted) {
112
+ const hasOversized = result.messagesSnapshot
113
+ ? sessionLikelyHasOversizedToolResults({
114
+ messages: result.messagesSnapshot,
115
+ contextWindowTokens,
116
+ })
117
+ : false;
118
+ if (hasOversized) {
119
+ toolResultTruncationAttempted = true;
120
+ console.warn(`[PI_AGENT] [context-overflow-recovery] Attempting tool result truncation for ${provider}/${modelId} ` +
121
+ `(contextWindow=${contextWindowTokens} tokens)`);
122
+ const truncResult = await truncateOversizedToolResultsInSession({
123
+ sessionFile: params.sessionFile,
124
+ contextWindowTokens,
125
+ sessionId: params.sessionId,
126
+ sessionKey: params.sessionKey,
127
+ });
128
+ if (truncResult.truncated) {
129
+ console.log(`[PI_AGENT] [context-overflow-recovery] Truncated ${truncResult.truncatedCount} tool result(s); retrying prompt`);
130
+ // Session is now smaller; allow compaction retries again.
131
+ overflowCompactionAttempts = 0;
132
+ continue;
133
+ }
134
+ console.warn(`[PI_AGENT] [context-overflow-recovery] Tool result truncation did not help: ${truncResult.reason ?? "unknown"}`);
135
+ }
136
+ }
137
+ // CoStar-specific: reset session as absolute last resort
138
+ // (OpenClaw returns an error; we reset to keep the agent running 24/7)
139
+ const kind = isCompactionFailure ? "compaction_failure" : "context_overflow";
140
+ console.warn(`[PI_AGENT] Context overflow unrecoverable (${kind}); resetting session`);
141
+ await resetSessionFile(params.sessionFile);
142
+ return {
143
+ payloads: [
144
+ {
145
+ text: "Context overflow: prompt too large for the model. " +
146
+ "I've reset my session to continue. What would you like me to do?",
147
+ isError: true,
148
+ },
149
+ ],
150
+ meta: {
151
+ durationMs: Date.now() - started,
152
+ agentMeta: {
153
+ sessionId: sessionIdUsed,
154
+ provider,
155
+ model: model.id,
156
+ },
157
+ error: { kind, message: errorText },
158
+ },
159
+ };
160
+ }
161
+ // --- Non-overflow error from promptError (following OpenClaw pattern) ---
162
+ if (promptError) {
163
+ const message = describeUnknownError(promptError);
164
+ console.error(`[PI_AGENT] Prompt error:`, message);
165
+ throw promptError;
166
+ }
167
+ // --- Success path ---
28
168
  const usage = {
29
169
  inputTokens: result.inputTokens ?? 0,
30
170
  outputTokens: result.outputTokens ?? 0,
31
171
  totalTokens: (result.inputTokens ?? 0) + (result.outputTokens ?? 0),
32
172
  };
33
173
  const agentMeta = {
34
- sessionId: result.sessionIdUsed,
174
+ sessionId: sessionIdUsed,
35
175
  provider,
36
176
  model: model.id,
37
177
  usage,
38
178
  };
39
179
  // Build payloads from assistant texts (join all chunks into single response)
40
- const fullText = result.assistantTexts.join("");
180
+ const fullText = assistantTexts.join("");
41
181
  const payloads = fullText ? [{ text: fullText, mediaUrls: [] }] : [];
42
182
  console.log(`[PI_AGENT] Completed in ${Date.now() - started}ms - tokens: ${usage.inputTokens}/${usage.outputTokens}`);
43
183
  return {
@@ -49,30 +189,33 @@ export async function runEmbeddedPiAgent(params) {
49
189
  },
50
190
  };
51
191
  }
52
- catch (error) {
53
- const message = error instanceof Error ? error.message : String(error);
54
- console.error(`[PI_AGENT] Error:`, message);
55
- return {
56
- payloads: [
57
- {
58
- text: `Agent error: ${message}`,
59
- isError: true,
60
- },
61
- ],
62
- meta: {
63
- durationMs: Date.now() - started,
64
- agentMeta: {
65
- sessionId: params.sessionId,
66
- provider,
67
- model: model.id,
68
- },
69
- error: { kind: "unknown", message },
70
- },
71
- };
192
+ }
193
+ /**
194
+ * Reset session file to empty state.
195
+ * Backs up the old session first in case it's needed.
196
+ */
197
+ export async function resetSessionFile(sessionFile) {
198
+ try {
199
+ // Backup the old session
200
+ const backupPath = `${sessionFile}.overflow-${Date.now()}.bak`;
201
+ try {
202
+ await fs.copyFile(sessionFile, backupPath);
203
+ console.log(`[PI_AGENT] Session backed up to ${backupPath}`);
204
+ }
205
+ catch {
206
+ /* file might not exist */
207
+ }
208
+ // Write empty session
209
+ await fs.writeFile(sessionFile, "{}", "utf-8");
210
+ console.log(`[PI_AGENT] Session file reset: ${sessionFile}`);
211
+ }
212
+ catch (err) {
213
+ console.error(`[PI_AGENT] Failed to reset session file:`, err);
72
214
  }
73
215
  }
74
216
  /**
75
- * Run embedded attempt using pi-coding-agent
217
+ * Run embedded attempt using pi-coding-agent.
218
+ * Returns structured result with error info for the overflow loop to inspect.
76
219
  */
77
220
  async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
78
221
  const resolvedWorkspace = params.workspaceDir;
@@ -112,7 +255,6 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
112
255
  const settingsManager = SettingsManager.create(resolvedWorkspace, params.agentDir ?? process.cwd());
113
256
  console.log(`[PI_ATTEMPT] Using auth storage for API keys`);
114
257
  // Convert CoStar tools to ToolDefinition format (following OpenClaw's pattern)
115
- // OpenClaw passes: tools=[], customTools=toToolDefinitions(allTools)
116
258
  const customTools = getCustomTools();
117
259
  console.log(`[PI_ATTEMPT] Loaded ${customTools.length} custom tools`);
118
260
  // Configure compaction reserve tokens (following OpenClaw's pattern)
@@ -125,8 +267,7 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
125
267
  console.log(`[PI_ATTEMPT] Set compaction reserve tokens to ${DEFAULT_COMPACTION_RESERVE_TOKENS} (was ${currentReserveTokens})`);
126
268
  }
127
269
  console.log(`[PI_ATTEMPT] Creating agent session with model:`, model);
128
- // Create agent session using pi-coding-agent (following OpenClaw's pattern exactly)
129
- // OpenClaw passes: tools=[], customTools=toToolDefinitions(allTools)
270
+ // Create agent session using pi-coding-agent
130
271
  const { session } = await createAgentSession({
131
272
  cwd: resolvedWorkspace,
132
273
  agentDir: params.agentDir ?? process.cwd(),
@@ -135,8 +276,8 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
135
276
  model: model,
136
277
  thinkingLevel: mapThinkingLevel(params.thinkLevel ?? "off"),
137
278
  systemPrompt,
138
- tools: [], // Empty - OpenClaw always uses customTools
139
- customTools, // All CoStar tools converted to ToolDefinition format
279
+ tools: [],
280
+ customTools,
140
281
  sessionManager,
141
282
  settingsManager,
142
283
  skills: [],
@@ -178,10 +319,12 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
178
319
  const outputTokens = subscription.getOutputTokens();
179
320
  return {
180
321
  aborted,
322
+ promptError: undefined,
181
323
  sessionIdUsed: params.sessionId,
182
324
  assistantTexts,
183
325
  inputTokens,
184
326
  outputTokens,
327
+ messagesSnapshot: session.messages,
185
328
  };
186
329
  }
187
330
  catch (error) {
@@ -190,13 +333,16 @@ async function runEmbeddedAttempt(params, model, authStorage, modelRegistry) {
190
333
  if (message.includes("abort")) {
191
334
  aborted = true;
192
335
  }
336
+ // Return the error as promptError for the overflow loop to inspect
193
337
  return {
194
338
  aborted,
339
+ promptError: error instanceof Error ? error : new Error(message),
195
340
  sessionIdUsed: params.sessionId,
196
341
  assistantTexts,
197
342
  inputTokens: subscription.getInputTokens(),
198
343
  outputTokens: subscription.getOutputTokens(),
199
344
  error: message,
345
+ messagesSnapshot: [],
200
346
  };
201
347
  }
202
348
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,qCAAqC,EACrC,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,iEAAiE;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E;;;GAGG;AACH,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAC;IAClF,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,yCAAyC,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC;IAE5E,qCAAqC;IACrC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,YAAY,CAC/D,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,MAAM,CAAC,MAAM,CACd,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,kBAAkB,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,mBAAmB,GAAI,KAAa,CAAC,aAAa,IAAI,sBAAsB,CAAC;IAEnF,IAAI,0BAA0B,GAAG,CAAC,CAAC;IACnC,IAAI,6BAA6B,GAAG,KAAK,CAAC;IAE1C,mFAAmF;IACnF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAEnF,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QAEvE,8DAA8D;QAC9D,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QAErD,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,oBAAoB,GAAG,CAAC,OAAO;YACnC,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;oBACpD,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,aAAsB,EAAE,CAAC;oBAC7D,CAAC;oBACD,6DAA6D;oBAC7D,gEAAgE;oBAChE,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,kBAAkB,IAAI,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACrE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAyB,EAAE,CAAC;gBACzE,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC;YAC5C,OAAO,CAAC,IAAI,CACV,iDAAiD,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,GAAG;gBACvF,YAAY,QAAQ,IAAI,OAAO,WAAW,oBAAoB,CAAC,MAAM,GAAG;gBACxE,eAAe,MAAM,CAAC,WAAW,GAAG;gBACpC,sBAAsB,0BAA0B,UAAU,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACtF,CAAC;YAEF,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAEhE,0EAA0E;YAC1E,IACE,CAAC,mBAAmB;gBACpB,0BAA0B,GAAG,gCAAgC,EAC7D,CAAC;gBACD,0BAA0B,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CACV,iDAAiD,0BAA0B,IAAI,gCAAgC,qCAAqC,QAAQ,IAAI,OAAO,EAAE,CAC1K,CAAC;gBAEF,MAAM,aAAa,GAAG,MAAM,8BAA8B,CAAC;oBACzD,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ;oBACR,KAAK,EAAE,OAAO;oBACd,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,aAAa,EAAE,MAAM,CAAC,aAAa;iBACpC,CAAC,CAAC;gBAEH,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CACT,4CAA4C,QAAQ,IAAI,OAAO,mBAAmB,CACnF,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,IAAI,CACV,yCAAyC,QAAQ,IAAI,OAAO,KAAK,aAAa,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAChH,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,+DAA+D;YAC/D,0DAA0D;YAC1D,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB;oBAC1C,CAAC,CAAC,oCAAoC,CAAC;wBACnC,QAAQ,EAAE,MAAM,CAAC,gBAAgB;wBACjC,mBAAmB;qBACpB,CAAC;oBACJ,CAAC,CAAC,KAAK,CAAC;gBAEV,IAAI,YAAY,EAAE,CAAC;oBACjB,6BAA6B,GAAG,IAAI,CAAC;oBACrC,OAAO,CAAC,IAAI,CACV,gFAAgF,QAAQ,IAAI,OAAO,GAAG;wBACpG,kBAAkB,mBAAmB,UAAU,CAClD,CAAC;oBACF,MAAM,WAAW,GAAG,MAAM,qCAAqC,CAAC;wBAC9D,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,mBAAmB;wBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,CAAC,CAAC;oBACH,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;wBAC1B,OAAO,CAAC,GAAG,CACT,oDAAoD,WAAW,CAAC,cAAc,kCAAkC,CACjH,CAAC;wBACF,0DAA0D;wBAC1D,0BAA0B,GAAG,CAAC,CAAC;wBAC/B,SAAS;oBACX,CAAC;oBACD,OAAO,CAAC,IAAI,CACV,+EAA+E,WAAW,CAAC,MAAM,IAAI,SAAS,EAAE,CACjH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,yDAAyD;YACzD,uEAAuE;YACvE,MAAM,IAAI,GAAG,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAE7E,OAAO,CAAC,IAAI,CACV,8CAA8C,IAAI,sBAAsB,CACzE,CAAC;YACF,MAAM,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAE3C,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EACF,oDAAoD;4BACpD,kEAAkE;wBACpE,OAAO,EAAE,IAAI;qBACd;iBACF;gBACD,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;oBAChC,SAAS,EAAE;wBACT,SAAS,EAAE,aAAa;wBACxB,QAAQ;wBACR,KAAK,EAAE,KAAK,CAAC,EAAE;qBAChB;oBACD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;iBACpC;aACF,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,WAAW,CAAC;QACpB,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,GAAG;YACZ,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;YACpC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;YACtC,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;SACpE,CAAC;QAEF,MAAM,SAAS,GAAwB;YACrC,SAAS,EAAE,aAAa;YACxB,QAAQ;YACR,KAAK,EAAE,KAAK,CAAC,EAAE;YACf,KAAK;SACN,CAAC;QAEF,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,OAAO,CAAC,GAAG,CACT,2BAA2B,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,gBAAgB,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,EAAE,CACzG,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAChD,IAAI,EAAE;gBACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,SAAS;gBACT,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IACxD,IAAI,CAAC;QACH,yBAAyB;QACzB,MAAM,UAAU,GAAG,GAAG,WAAW,aAAa,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,mCAAmC,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,sBAAsB;QACtB,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,kCAAkC,WAAW,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAAgC,EAChC,KAAU,EACV,WAAgB,EAChB,aAAkB;IAElB,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,SAAS,YAAY,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/F,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,uCAAuC;IACvC,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5F,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,qDAAqD;IACrD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;QAC9C,YAAY,EAAE,iBAAiB;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE;YACnB,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;YACf,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE;YACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB;QACD,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;QAC9D,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClC,MAAM,EAAE,MAAM,CAAC,YAAY;KAC5B,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;IAElE,+BAA+B;IAC/B,MAAM,cAAc,GAAG,MAAM,EAAE;SAC5B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;SACxB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAEtB,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,WAAW,aAAa,cAAc,GAAG,CAAC,CAAC;IAE5F,iCAAiC;IACjC,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAC5C,iBAAiB,EACjB,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CACjC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAE5D,+EAA+E;IAC/E,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,CAAC,MAAM,eAAe,CAAC,CAAC;IAEtE,qEAAqE;IACrE,MAAM,iCAAiC,GAAG,MAAM,CAAC;IACjD,MAAM,oBAAoB,GAAG,eAAe,CAAC,0BAA0B,EAAE,CAAC;IAC1E,IAAI,oBAAoB,GAAG,iCAAiC,EAAE,CAAC;QAC7D,eAAe,CAAC,cAAc,CAAC;YAC7B,UAAU,EAAE,EAAE,aAAa,EAAE,iCAAiC,EAAE;SACjE,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,iDAAiD,iCAAiC,SAAS,oBAAoB,GAAG,CACnH,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;IAEtE,6CAA6C;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC;QAC3C,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE;QAC1C,WAAW;QACX,aAAa;QACb,KAAK,EAAE,KAAK;QACZ,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3D,YAAY;QACZ,KAAK,EAAE,EAAE;QACT,WAAW;QACX,cAAc;QACd,eAAe;QACf,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,wBAAwB,EAAE,EAAE;KAC7B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,2DAA2D;IAC3D,MAAM,YAAY,GAAG,0BAA0B,CAAC;QAC9C,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;IAEH,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAAG,YAAY,CAAC;IAE7E,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,OAAgB;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,SAAS;SACxB,CAAC,CAAC,CAAC;QAEJ,0CAA0C;QAC1C,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YAClC,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QAEH,yEAAyE;QACzE,IAAI,CAAC;YACH,MAAM,sBAAsB,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,IAAI,EAAE,CAAC;YACd,uCAAuC;QACzC,CAAC;QAED,oCAAoC;QACpC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;QAEpD,OAAO;YACL,OAAO;YACP,WAAW,EAAE,SAA8B;YAC3C,aAAa,EAAE,MAAM,CAAC,SAAS;YAC/B,cAAc;YACd,WAAW;YACX,YAAY;YACZ,gBAAgB,EAAE,OAAO,CAAC,QAAqB;SAChD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAE9C,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,mEAAmE;QACnE,OAAO;YACL,OAAO;YACP,WAAW,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;YAChE,aAAa,EAAE,MAAM,CAAC,SAAS;YAC/B,cAAc;YACd,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE;YAC1C,YAAY,EAAE,YAAY,CAAC,eAAe,EAAE;YAC5C,KAAK,EAAE,OAAO;YACd,gBAAgB,EAAE,EAAe;SAClC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,+CAA+C;QAC/C,WAAW,EAAE,CAAC;QAEd,kDAAkD;QAClD,IAAI,CAAC;YACF,cAAsB,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACpD,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,UAAU,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,KAA+B;IAE/B,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Tool result truncation — fallback for oversized tool results.
3
+ * Ported from OpenClaw's pi-embedded-runner/tool-result-truncation.ts
4
+ *
5
+ * When compaction alone can't reduce the session below the context window,
6
+ * this module truncates individual tool results that exceed a size threshold.
7
+ */
8
+ import type { AgentMessage } from "@mariozechner/pi-agent-core";
9
+ /**
10
+ * Hard character limit for a single tool result text block.
11
+ * Even for the largest context windows (~2M tokens), a single tool result
12
+ * should not exceed ~400K characters (~100K tokens).
13
+ */
14
+ export declare const HARD_MAX_TOOL_RESULT_CHARS = 400000;
15
+ /**
16
+ * Truncate a single text string to fit within maxChars, preserving the beginning.
17
+ */
18
+ export declare function truncateToolResultText(text: string, maxChars: number): string;
19
+ /**
20
+ * Calculate the maximum allowed characters for a single tool result
21
+ * based on the model's context window tokens.
22
+ *
23
+ * Uses a rough 4 chars ≈ 1 token heuristic (conservative for English text;
24
+ * actual ratio varies by tokenizer).
25
+ */
26
+ export declare function calculateMaxToolResultChars(contextWindowTokens: number): number;
27
+ /**
28
+ * Find oversized tool result entries in a session and truncate them.
29
+ *
30
+ * This operates on the session file by:
31
+ * 1. Opening the session manager
32
+ * 2. Walking the current branch to find oversized tool results
33
+ * 3. Branching from before the first oversized tool result
34
+ * 4. Re-appending all entries from that point with truncated tool results
35
+ *
36
+ * @returns Object indicating whether any truncation was performed
37
+ */
38
+ export declare function truncateOversizedToolResultsInSession(params: {
39
+ sessionFile: string;
40
+ contextWindowTokens: number;
41
+ sessionId?: string;
42
+ sessionKey?: string;
43
+ }): Promise<{
44
+ truncated: boolean;
45
+ truncatedCount: number;
46
+ reason?: string;
47
+ }>;
48
+ /**
49
+ * Truncate oversized tool results in an array of messages (in-memory).
50
+ * Returns a new array with truncated messages.
51
+ *
52
+ * This is used as a pre-emptive guard before sending messages to the LLM,
53
+ * without modifying the session file.
54
+ */
55
+ export declare function truncateOversizedToolResultsInMessages(messages: AgentMessage[], contextWindowTokens: number): {
56
+ messages: AgentMessage[];
57
+ truncatedCount: number;
58
+ };
59
+ /**
60
+ * Check if a tool result message exceeds the size limit for a given context window.
61
+ */
62
+ export declare function isOversizedToolResult(msg: AgentMessage, contextWindowTokens: number): boolean;
63
+ /**
64
+ * Estimate whether the session likely has oversized tool results that caused
65
+ * a context overflow. Used as a heuristic to decide whether to attempt
66
+ * tool result truncation before giving up.
67
+ */
68
+ export declare function sessionLikelyHasOversizedToolResults(params: {
69
+ messages: unknown[];
70
+ contextWindowTokens: number;
71
+ }): boolean;
72
+ //# sourceMappingURL=tool-result-truncation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-result-truncation.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/tool-result-truncation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAWhE;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAiBlD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY7E;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAK/E;AA8DD;;;;;;;;;;GAUG;AACH,wBAAsB,qCAAqC,CAAC,MAAM,EAAE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwH3E;AAED;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,YAAY,EAAE,EACxB,mBAAmB,EAAE,MAAM,GAC1B;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAiBtD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAM7F;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAAC,MAAM,EAAE;IAC3D,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAeV"}