@farazirfan/costar-server-executor 1.7.2 → 1.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/pi-embedded-helpers/errors.d.ts +35 -0
- package/dist/agent/pi-embedded-helpers/errors.d.ts.map +1 -0
- package/dist/agent/pi-embedded-helpers/errors.js +89 -0
- package/dist/agent/pi-embedded-helpers/errors.js.map +1 -0
- package/dist/agent/pi-embedded-runner/compact.d.ts +45 -0
- package/dist/agent/pi-embedded-runner/compact.d.ts.map +1 -0
- package/dist/agent/pi-embedded-runner/compact.js +176 -0
- package/dist/agent/pi-embedded-runner/compact.js.map +1 -0
- package/dist/agent/pi-embedded-runner/run.d.ts +17 -0
- package/dist/agent/pi-embedded-runner/run.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/run.js +176 -30
- package/dist/agent/pi-embedded-runner/run.js.map +1 -1
- package/dist/agent/pi-embedded-runner/tool-result-truncation.d.ts +72 -0
- package/dist/agent/pi-embedded-runner/tool-result-truncation.d.ts.map +1 -0
- package/dist/agent/pi-embedded-runner/tool-result-truncation.js +281 -0
- package/dist/agent/pi-embedded-runner/tool-result-truncation.js.map +1 -0
- package/dist/agent/pi-embedded-runner/types.d.ts +25 -0
- package/dist/agent/pi-embedded-runner/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error classification helpers for context overflow and compaction failures.
|
|
3
|
+
* Ported from OpenClaw's pi-embedded-helpers/errors.ts
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Detect context overflow errors from API error messages.
|
|
7
|
+
* Matches known error patterns from Anthropic, OpenAI, and other providers.
|
|
8
|
+
*
|
|
9
|
+
* (Ported from OpenClaw — exact pattern matching)
|
|
10
|
+
*/
|
|
11
|
+
export declare function isContextOverflowError(errorMessage?: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Fuzzy context overflow detection using regex patterns.
|
|
14
|
+
* Catches edge cases that isContextOverflowError misses.
|
|
15
|
+
* Excludes "context window too small" errors.
|
|
16
|
+
*
|
|
17
|
+
* (Ported from OpenClaw)
|
|
18
|
+
*/
|
|
19
|
+
export declare function isLikelyContextOverflowError(errorMessage?: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Detect compaction-specific failure errors.
|
|
22
|
+
* These occur when the compaction/summarization process itself fails
|
|
23
|
+
* (e.g., the summary prompt is also too large).
|
|
24
|
+
*
|
|
25
|
+
* Important: compaction failures should NOT trigger another compaction retry.
|
|
26
|
+
*
|
|
27
|
+
* (Ported from OpenClaw)
|
|
28
|
+
*/
|
|
29
|
+
export declare function isCompactionFailureError(errorMessage?: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Describe an unknown error as a string.
|
|
32
|
+
* (Simplified from OpenClaw's describeUnknownError)
|
|
33
|
+
*/
|
|
34
|
+
export declare function describeUnknownError(err: unknown): string;
|
|
35
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-helpers/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAwBrE;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAW3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAgBvE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAKzD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error classification helpers for context overflow and compaction failures.
|
|
3
|
+
* Ported from OpenClaw's pi-embedded-helpers/errors.ts
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Detect context overflow errors from API error messages.
|
|
7
|
+
* Matches known error patterns from Anthropic, OpenAI, and other providers.
|
|
8
|
+
*
|
|
9
|
+
* (Ported from OpenClaw — exact pattern matching)
|
|
10
|
+
*/
|
|
11
|
+
export function isContextOverflowError(errorMessage) {
|
|
12
|
+
if (!errorMessage) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
const lower = errorMessage.toLowerCase();
|
|
16
|
+
const hasRequestSizeExceeds = lower.includes("request size exceeds");
|
|
17
|
+
const hasContextWindow = lower.includes("context window") ||
|
|
18
|
+
lower.includes("context length") ||
|
|
19
|
+
lower.includes("maximum context length");
|
|
20
|
+
return (lower.includes("request_too_large") ||
|
|
21
|
+
lower.includes("request exceeds the maximum size") ||
|
|
22
|
+
lower.includes("context length exceeded") ||
|
|
23
|
+
lower.includes("maximum context length") ||
|
|
24
|
+
lower.includes("prompt is too long") ||
|
|
25
|
+
lower.includes("exceeds model context window") ||
|
|
26
|
+
(hasRequestSizeExceeds && hasContextWindow) ||
|
|
27
|
+
lower.includes("context overflow:") ||
|
|
28
|
+
(lower.includes("413") && lower.includes("too large")) ||
|
|
29
|
+
// Anthropic-specific: "input length and `max_tokens` exceed context limit"
|
|
30
|
+
(lower.includes("input length") && lower.includes("exceed") && lower.includes("context limit")) ||
|
|
31
|
+
(lower.includes("max_tokens") && lower.includes("exceed") && lower.includes("context limit")));
|
|
32
|
+
}
|
|
33
|
+
const CONTEXT_WINDOW_TOO_SMALL_RE = /context window.*(too small|minimum is)/i;
|
|
34
|
+
const CONTEXT_OVERFLOW_HINT_RE = /context.*overflow|context window.*(too (?:large|long)|exceed|over|limit|max(?:imum)?|requested|sent|tokens)|(?:prompt|request|input).*(too (?:large|long)|exceed|over|limit|max(?:imum)?)/i;
|
|
35
|
+
/**
|
|
36
|
+
* Fuzzy context overflow detection using regex patterns.
|
|
37
|
+
* Catches edge cases that isContextOverflowError misses.
|
|
38
|
+
* Excludes "context window too small" errors.
|
|
39
|
+
*
|
|
40
|
+
* (Ported from OpenClaw)
|
|
41
|
+
*/
|
|
42
|
+
export function isLikelyContextOverflowError(errorMessage) {
|
|
43
|
+
if (!errorMessage) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (CONTEXT_WINDOW_TOO_SMALL_RE.test(errorMessage)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
if (isContextOverflowError(errorMessage)) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
return CONTEXT_OVERFLOW_HINT_RE.test(errorMessage);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Detect compaction-specific failure errors.
|
|
56
|
+
* These occur when the compaction/summarization process itself fails
|
|
57
|
+
* (e.g., the summary prompt is also too large).
|
|
58
|
+
*
|
|
59
|
+
* Important: compaction failures should NOT trigger another compaction retry.
|
|
60
|
+
*
|
|
61
|
+
* (Ported from OpenClaw)
|
|
62
|
+
*/
|
|
63
|
+
export function isCompactionFailureError(errorMessage) {
|
|
64
|
+
if (!errorMessage) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
const lower = errorMessage.toLowerCase();
|
|
68
|
+
const hasCompactionTerm = lower.includes("summarization failed") ||
|
|
69
|
+
lower.includes("auto-compaction") ||
|
|
70
|
+
lower.includes("compaction failed") ||
|
|
71
|
+
lower.includes("compaction");
|
|
72
|
+
if (!hasCompactionTerm) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
// For compaction failures, also accept "context overflow" without colon
|
|
76
|
+
// since the error message itself describes a compaction/summarization failure
|
|
77
|
+
return isContextOverflowError(errorMessage) || lower.includes("context overflow");
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Describe an unknown error as a string.
|
|
81
|
+
* (Simplified from OpenClaw's describeUnknownError)
|
|
82
|
+
*/
|
|
83
|
+
export function describeUnknownError(err) {
|
|
84
|
+
if (err instanceof Error) {
|
|
85
|
+
return err.message;
|
|
86
|
+
}
|
|
87
|
+
return String(err);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-helpers/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session compaction — calls session.compact() directly.
|
|
3
|
+
* Ported from OpenClaw's pi-embedded-runner/compact.ts (simplified for CoStar).
|
|
4
|
+
*
|
|
5
|
+
* Key difference from our previous forceCompactSession:
|
|
6
|
+
* - Uses session.compact(customInstructions) instead of sending a summarization prompt
|
|
7
|
+
* - Returns structured EmbeddedPiCompactResult instead of a boolean
|
|
8
|
+
* - Estimates tokensAfter using estimateTokens
|
|
9
|
+
*/
|
|
10
|
+
import type { EmbeddedPiCompactResult, RunEmbeddedPiAgentParams } from "./types.js";
|
|
11
|
+
/**
|
|
12
|
+
* Parameters for compactEmbeddedPiSessionDirect.
|
|
13
|
+
* Subset of RunEmbeddedPiAgentParams with compaction-specific additions.
|
|
14
|
+
*/
|
|
15
|
+
export type CompactEmbeddedPiSessionParams = {
|
|
16
|
+
sessionId: string;
|
|
17
|
+
sessionKey?: string;
|
|
18
|
+
sessionFile: string;
|
|
19
|
+
workspaceDir: string;
|
|
20
|
+
agentDir?: string;
|
|
21
|
+
config?: RunEmbeddedPiAgentParams["config"];
|
|
22
|
+
provider?: string;
|
|
23
|
+
model?: string;
|
|
24
|
+
thinkLevel?: "off" | "brief" | "full";
|
|
25
|
+
customInstructions?: string;
|
|
26
|
+
authProfileId?: string;
|
|
27
|
+
extraSystemPrompt?: string;
|
|
28
|
+
skillEntries?: Array<{
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
filePath: string;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Core compaction logic — opens session, creates agent, calls session.compact().
|
|
36
|
+
*
|
|
37
|
+
* Simplified from OpenClaw's compactEmbeddedPiSessionDirect:
|
|
38
|
+
* - No lane queueing (CoStar doesn't use lanes)
|
|
39
|
+
* - No sandbox resolution (CoStar runs in a single sandbox)
|
|
40
|
+
* - No channel/skills/bootstrap resolution (not needed for compaction)
|
|
41
|
+
*
|
|
42
|
+
* @returns Structured result with compaction details
|
|
43
|
+
*/
|
|
44
|
+
export declare function compactEmbeddedPiSessionDirect(params: CompactEmbeddedPiSessionParams): Promise<EmbeddedPiCompactResult>;
|
|
45
|
+
//# sourceMappingURL=compact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/compact.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA8BpF;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAgJlC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session compaction — calls session.compact() directly.
|
|
3
|
+
* Ported from OpenClaw's pi-embedded-runner/compact.ts (simplified for CoStar).
|
|
4
|
+
*
|
|
5
|
+
* Key difference from our previous forceCompactSession:
|
|
6
|
+
* - Uses session.compact(customInstructions) instead of sending a summarization prompt
|
|
7
|
+
* - Returns structured EmbeddedPiCompactResult instead of a boolean
|
|
8
|
+
* - Estimates tokensAfter using estimateTokens
|
|
9
|
+
*/
|
|
10
|
+
import fs from "node:fs/promises";
|
|
11
|
+
import os from "node:os";
|
|
12
|
+
import { createAgentSession, estimateTokens, SessionManager, SettingsManager, } from "@mariozechner/pi-coding-agent";
|
|
13
|
+
import { resolveModel, DEFAULT_PROVIDER, DEFAULT_MODEL } from "./model.js";
|
|
14
|
+
import { getCustomTools } from "./tools.js";
|
|
15
|
+
import { buildAgentSystemPrompt, createSystemPromptOverride } from "./system-prompt.js";
|
|
16
|
+
import { describeUnknownError } from "../pi-embedded-helpers/errors.js";
|
|
17
|
+
/**
|
|
18
|
+
* Default compaction reserve tokens — minimum tokens to keep after compaction.
|
|
19
|
+
* Matches OpenClaw's DEFAULT_COMPACTION_RESERVE_TOKENS.
|
|
20
|
+
*/
|
|
21
|
+
const DEFAULT_COMPACTION_RESERVE_TOKENS = 20_000;
|
|
22
|
+
/**
|
|
23
|
+
* Map thinking level to pi-ai format.
|
|
24
|
+
*/
|
|
25
|
+
function mapThinkingLevel(level) {
|
|
26
|
+
switch (level) {
|
|
27
|
+
case "off":
|
|
28
|
+
return "off";
|
|
29
|
+
case "brief":
|
|
30
|
+
return "minimal";
|
|
31
|
+
case "full":
|
|
32
|
+
return "medium";
|
|
33
|
+
default:
|
|
34
|
+
return "off";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Core compaction logic — opens session, creates agent, calls session.compact().
|
|
39
|
+
*
|
|
40
|
+
* Simplified from OpenClaw's compactEmbeddedPiSessionDirect:
|
|
41
|
+
* - No lane queueing (CoStar doesn't use lanes)
|
|
42
|
+
* - No sandbox resolution (CoStar runs in a single sandbox)
|
|
43
|
+
* - No channel/skills/bootstrap resolution (not needed for compaction)
|
|
44
|
+
*
|
|
45
|
+
* @returns Structured result with compaction details
|
|
46
|
+
*/
|
|
47
|
+
export async function compactEmbeddedPiSessionDirect(params) {
|
|
48
|
+
const resolvedWorkspace = params.workspaceDir;
|
|
49
|
+
const provider = (params.provider ?? DEFAULT_PROVIDER).trim() || DEFAULT_PROVIDER;
|
|
50
|
+
const modelId = (params.model ?? DEFAULT_MODEL).trim() || DEFAULT_MODEL;
|
|
51
|
+
const agentDir = params.agentDir ?? process.cwd();
|
|
52
|
+
// Resolve model and auth
|
|
53
|
+
const { model, error, authStorage, modelRegistry } = resolveModel(provider, modelId, agentDir, params.config);
|
|
54
|
+
if (!model) {
|
|
55
|
+
return {
|
|
56
|
+
ok: false,
|
|
57
|
+
compacted: false,
|
|
58
|
+
reason: error ?? `Unknown model: ${provider}/${modelId}`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
await fs.mkdir(resolvedWorkspace, { recursive: true });
|
|
63
|
+
// Ensure session file directory exists
|
|
64
|
+
const sessionFileDir = params.sessionFile.substring(0, params.sessionFile.lastIndexOf("/"));
|
|
65
|
+
if (sessionFileDir) {
|
|
66
|
+
await fs.mkdir(sessionFileDir, { recursive: true });
|
|
67
|
+
}
|
|
68
|
+
// Open session manager
|
|
69
|
+
const sessionManager = SessionManager.open(params.sessionFile);
|
|
70
|
+
const settingsManager = SettingsManager.create(resolvedWorkspace, agentDir);
|
|
71
|
+
// Ensure compaction reserve tokens are set
|
|
72
|
+
const currentReserveTokens = settingsManager.getCompactionReserveTokens();
|
|
73
|
+
if (currentReserveTokens < DEFAULT_COMPACTION_RESERVE_TOKENS) {
|
|
74
|
+
settingsManager.applyOverrides({
|
|
75
|
+
compaction: { reserveTokens: DEFAULT_COMPACTION_RESERVE_TOKENS },
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// Build minimal system prompt for compaction context
|
|
79
|
+
const systemPromptText = buildAgentSystemPrompt({
|
|
80
|
+
workspaceDir: resolvedWorkspace,
|
|
81
|
+
config: params.config,
|
|
82
|
+
extraSystemPrompt: params.extraSystemPrompt,
|
|
83
|
+
promptMode: "full",
|
|
84
|
+
thinkLevel: params.thinkLevel,
|
|
85
|
+
runtimeInfo: {
|
|
86
|
+
host: os.hostname(),
|
|
87
|
+
os: `${os.type()} ${os.release()}`,
|
|
88
|
+
arch: os.arch(),
|
|
89
|
+
node: process.version,
|
|
90
|
+
model: `${provider}/${modelId}`,
|
|
91
|
+
provider,
|
|
92
|
+
},
|
|
93
|
+
userTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
94
|
+
userTime: new Date().toISOString(),
|
|
95
|
+
skills: params.skillEntries,
|
|
96
|
+
});
|
|
97
|
+
const systemPrompt = createSystemPromptOverride(systemPromptText);
|
|
98
|
+
const customTools = getCustomTools();
|
|
99
|
+
// Create agent session
|
|
100
|
+
const { session } = await createAgentSession({
|
|
101
|
+
cwd: resolvedWorkspace,
|
|
102
|
+
agentDir,
|
|
103
|
+
authStorage,
|
|
104
|
+
modelRegistry,
|
|
105
|
+
model,
|
|
106
|
+
thinkingLevel: mapThinkingLevel(params.thinkLevel ?? "off"),
|
|
107
|
+
systemPrompt,
|
|
108
|
+
tools: [],
|
|
109
|
+
customTools,
|
|
110
|
+
sessionManager,
|
|
111
|
+
settingsManager,
|
|
112
|
+
skills: [],
|
|
113
|
+
contextFiles: [],
|
|
114
|
+
additionalExtensionPaths: [],
|
|
115
|
+
});
|
|
116
|
+
if (!session) {
|
|
117
|
+
return {
|
|
118
|
+
ok: false,
|
|
119
|
+
compacted: false,
|
|
120
|
+
reason: "Failed to create agent session for compaction",
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
// Call session.compact() — the pi-coding-agent's built-in compaction
|
|
125
|
+
// This generates a summary of older messages and keeps recent ones
|
|
126
|
+
const result = await session.compact(params.customInstructions);
|
|
127
|
+
// Estimate tokens after compaction
|
|
128
|
+
let tokensAfter;
|
|
129
|
+
try {
|
|
130
|
+
tokensAfter = 0;
|
|
131
|
+
for (const message of session.messages) {
|
|
132
|
+
tokensAfter += estimateTokens(message);
|
|
133
|
+
}
|
|
134
|
+
// Sanity check: tokensAfter should be less than tokensBefore
|
|
135
|
+
if (tokensAfter > result.tokensBefore) {
|
|
136
|
+
tokensAfter = undefined;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
tokensAfter = undefined;
|
|
141
|
+
}
|
|
142
|
+
console.log(`[COMPACT] Session ${params.sessionId} compacted: ` +
|
|
143
|
+
`${result.tokensBefore} → ${tokensAfter ?? "?"} tokens`);
|
|
144
|
+
return {
|
|
145
|
+
ok: true,
|
|
146
|
+
compacted: true,
|
|
147
|
+
result: {
|
|
148
|
+
summary: result.summary,
|
|
149
|
+
firstKeptEntryId: result.firstKeptEntryId,
|
|
150
|
+
tokensBefore: result.tokensBefore,
|
|
151
|
+
tokensAfter,
|
|
152
|
+
details: result.details,
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
finally {
|
|
157
|
+
try {
|
|
158
|
+
sessionManager.flushPendingToolResults?.();
|
|
159
|
+
session.dispose();
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
/* ignore dispose errors */
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
const reason = describeUnknownError(err);
|
|
168
|
+
console.error(`[COMPACT] Compaction failed for session ${params.sessionId}: ${reason}`);
|
|
169
|
+
return {
|
|
170
|
+
ok: false,
|
|
171
|
+
compacted: false,
|
|
172
|
+
reason,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=compact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,27 @@
|
|
|
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 type { RunEmbeddedPiAgentParams, EmbeddedPiRunResult } from "./types.js";
|
|
13
|
+
export { isContextOverflowError } from "../pi-embedded-helpers/errors.js";
|
|
6
14
|
/**
|
|
7
15
|
* Run embedded pi agent (matches OpenClaw's architecture)
|
|
16
|
+
*
|
|
17
|
+
* Includes context overflow detection, auto-compaction, tool result truncation,
|
|
18
|
+
* and session reset as last resort.
|
|
19
|
+
* (Ported from OpenClaw's run.ts lines 386-598)
|
|
8
20
|
*/
|
|
9
21
|
export declare function runEmbeddedPiAgent(params: RunEmbeddedPiAgentParams): Promise<EmbeddedPiRunResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Reset session file to empty state.
|
|
24
|
+
* Backs up the old session first in case it's needed.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resetSessionFile(sessionFile: string): Promise<void>;
|
|
10
27
|
//# sourceMappingURL=run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/run.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAiBpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAQ1E;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAiN9B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBzE"}
|
|
@@ -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
|
-
|
|
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:
|
|
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 =
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
|
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: [],
|
|
139
|
-
customTools,
|
|
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":"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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,281 @@
|
|
|
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 { SessionManager } from "@mariozechner/pi-coding-agent";
|
|
9
|
+
/**
|
|
10
|
+
* Maximum share of the context window a single tool result should occupy.
|
|
11
|
+
* Intentionally conservative — a single tool result should not consume more
|
|
12
|
+
* than 30% of the context window even without other messages.
|
|
13
|
+
*/
|
|
14
|
+
const MAX_TOOL_RESULT_CONTEXT_SHARE = 0.3;
|
|
15
|
+
/**
|
|
16
|
+
* Hard character limit for a single tool result text block.
|
|
17
|
+
* Even for the largest context windows (~2M tokens), a single tool result
|
|
18
|
+
* should not exceed ~400K characters (~100K tokens).
|
|
19
|
+
*/
|
|
20
|
+
export const HARD_MAX_TOOL_RESULT_CHARS = 400_000;
|
|
21
|
+
/**
|
|
22
|
+
* Minimum characters to keep when truncating.
|
|
23
|
+
* We always keep at least the first portion so the model understands
|
|
24
|
+
* what was in the content.
|
|
25
|
+
*/
|
|
26
|
+
const MIN_KEEP_CHARS = 2_000;
|
|
27
|
+
/**
|
|
28
|
+
* Suffix appended to truncated tool results.
|
|
29
|
+
*/
|
|
30
|
+
const TRUNCATION_SUFFIX = "\n\n⚠️ [Content truncated — original was too large for the model's context window. " +
|
|
31
|
+
"The content above is a partial view. If you need more, request specific sections or use " +
|
|
32
|
+
"offset/limit parameters to read smaller chunks.]";
|
|
33
|
+
/**
|
|
34
|
+
* Truncate a single text string to fit within maxChars, preserving the beginning.
|
|
35
|
+
*/
|
|
36
|
+
export function truncateToolResultText(text, maxChars) {
|
|
37
|
+
if (text.length <= maxChars) {
|
|
38
|
+
return text;
|
|
39
|
+
}
|
|
40
|
+
const keepChars = Math.max(MIN_KEEP_CHARS, maxChars - TRUNCATION_SUFFIX.length);
|
|
41
|
+
// Try to break at a newline boundary to avoid cutting mid-line
|
|
42
|
+
let cutPoint = keepChars;
|
|
43
|
+
const lastNewline = text.lastIndexOf("\n", keepChars);
|
|
44
|
+
if (lastNewline > keepChars * 0.8) {
|
|
45
|
+
cutPoint = lastNewline;
|
|
46
|
+
}
|
|
47
|
+
return text.slice(0, cutPoint) + TRUNCATION_SUFFIX;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Calculate the maximum allowed characters for a single tool result
|
|
51
|
+
* based on the model's context window tokens.
|
|
52
|
+
*
|
|
53
|
+
* Uses a rough 4 chars ≈ 1 token heuristic (conservative for English text;
|
|
54
|
+
* actual ratio varies by tokenizer).
|
|
55
|
+
*/
|
|
56
|
+
export function calculateMaxToolResultChars(contextWindowTokens) {
|
|
57
|
+
const maxTokens = Math.floor(contextWindowTokens * MAX_TOOL_RESULT_CONTEXT_SHARE);
|
|
58
|
+
// Rough conversion: ~4 chars per token on average
|
|
59
|
+
const maxChars = maxTokens * 4;
|
|
60
|
+
return Math.min(maxChars, HARD_MAX_TOOL_RESULT_CHARS);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get the total character count of text content blocks in a tool result message.
|
|
64
|
+
*/
|
|
65
|
+
function getToolResultTextLength(msg) {
|
|
66
|
+
if (!msg || msg.role !== "toolResult") {
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
const content = msg.content;
|
|
70
|
+
if (!Array.isArray(content)) {
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
let totalLength = 0;
|
|
74
|
+
for (const block of content) {
|
|
75
|
+
if (block && typeof block === "object" && block.type === "text") {
|
|
76
|
+
const text = block.text;
|
|
77
|
+
if (typeof text === "string") {
|
|
78
|
+
totalLength += text.length;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return totalLength;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Truncate a tool result message's text content blocks to fit within maxChars.
|
|
86
|
+
* Returns a new message (does not mutate the original).
|
|
87
|
+
*/
|
|
88
|
+
function truncateToolResultMessage(msg, maxChars) {
|
|
89
|
+
const content = msg.content;
|
|
90
|
+
if (!Array.isArray(content)) {
|
|
91
|
+
return msg;
|
|
92
|
+
}
|
|
93
|
+
// Calculate total text size
|
|
94
|
+
const totalTextChars = getToolResultTextLength(msg);
|
|
95
|
+
if (totalTextChars <= maxChars) {
|
|
96
|
+
return msg;
|
|
97
|
+
}
|
|
98
|
+
// Distribute the budget proportionally among text blocks
|
|
99
|
+
const newContent = content.map((block) => {
|
|
100
|
+
if (!block || typeof block !== "object" || block.type !== "text") {
|
|
101
|
+
return block; // Keep non-text blocks (images) as-is
|
|
102
|
+
}
|
|
103
|
+
const textBlock = block;
|
|
104
|
+
if (typeof textBlock.text !== "string") {
|
|
105
|
+
return block;
|
|
106
|
+
}
|
|
107
|
+
// Proportional budget for this block
|
|
108
|
+
const blockShare = textBlock.text.length / totalTextChars;
|
|
109
|
+
const blockBudget = Math.max(MIN_KEEP_CHARS, Math.floor(maxChars * blockShare));
|
|
110
|
+
return {
|
|
111
|
+
...textBlock,
|
|
112
|
+
text: truncateToolResultText(textBlock.text, blockBudget),
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
return { ...msg, content: newContent };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Find oversized tool result entries in a session and truncate them.
|
|
119
|
+
*
|
|
120
|
+
* This operates on the session file by:
|
|
121
|
+
* 1. Opening the session manager
|
|
122
|
+
* 2. Walking the current branch to find oversized tool results
|
|
123
|
+
* 3. Branching from before the first oversized tool result
|
|
124
|
+
* 4. Re-appending all entries from that point with truncated tool results
|
|
125
|
+
*
|
|
126
|
+
* @returns Object indicating whether any truncation was performed
|
|
127
|
+
*/
|
|
128
|
+
export async function truncateOversizedToolResultsInSession(params) {
|
|
129
|
+
const { sessionFile, contextWindowTokens } = params;
|
|
130
|
+
const maxChars = calculateMaxToolResultChars(contextWindowTokens);
|
|
131
|
+
try {
|
|
132
|
+
const sessionManager = SessionManager.open(sessionFile);
|
|
133
|
+
const branch = sessionManager.getBranch();
|
|
134
|
+
if (branch.length === 0) {
|
|
135
|
+
return { truncated: false, truncatedCount: 0, reason: "empty session" };
|
|
136
|
+
}
|
|
137
|
+
// Find oversized tool result entries and their indices in the branch
|
|
138
|
+
const oversizedIndices = [];
|
|
139
|
+
for (let i = 0; i < branch.length; i++) {
|
|
140
|
+
const entry = branch[i];
|
|
141
|
+
if (entry.type !== "message") {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const msg = entry.message;
|
|
145
|
+
if (msg.role !== "toolResult") {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const textLength = getToolResultTextLength(msg);
|
|
149
|
+
if (textLength > maxChars) {
|
|
150
|
+
oversizedIndices.push(i);
|
|
151
|
+
console.log(`[TOOL_TRUNCATION] Found oversized tool result: ` +
|
|
152
|
+
`entry=${entry.id} chars=${textLength} maxChars=${maxChars} ` +
|
|
153
|
+
`sessionKey=${params.sessionKey ?? params.sessionId ?? "unknown"}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (oversizedIndices.length === 0) {
|
|
157
|
+
return { truncated: false, truncatedCount: 0, reason: "no oversized tool results" };
|
|
158
|
+
}
|
|
159
|
+
// Branch from the parent of the first oversized entry
|
|
160
|
+
const firstOversizedIdx = oversizedIndices[0];
|
|
161
|
+
const firstOversizedEntry = branch[firstOversizedIdx];
|
|
162
|
+
const branchFromId = firstOversizedEntry.parentId;
|
|
163
|
+
if (!branchFromId) {
|
|
164
|
+
// The oversized entry is the root — very unusual but handle it
|
|
165
|
+
sessionManager.resetLeaf();
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
sessionManager.branch(branchFromId);
|
|
169
|
+
}
|
|
170
|
+
// Re-append all entries from the first oversized one onwards,
|
|
171
|
+
// with truncated tool results
|
|
172
|
+
const oversizedSet = new Set(oversizedIndices);
|
|
173
|
+
let truncatedCount = 0;
|
|
174
|
+
for (let i = firstOversizedIdx; i < branch.length; i++) {
|
|
175
|
+
const entry = branch[i];
|
|
176
|
+
if (entry.type === "message") {
|
|
177
|
+
let message = entry.message;
|
|
178
|
+
if (oversizedSet.has(i)) {
|
|
179
|
+
message = truncateToolResultMessage(message, maxChars);
|
|
180
|
+
truncatedCount++;
|
|
181
|
+
const newLength = getToolResultTextLength(message);
|
|
182
|
+
console.log(`[TOOL_TRUNCATION] Truncated tool result: ` +
|
|
183
|
+
`originalEntry=${entry.id} newChars=${newLength} ` +
|
|
184
|
+
`sessionKey=${params.sessionKey ?? params.sessionId ?? "unknown"}`);
|
|
185
|
+
}
|
|
186
|
+
// appendMessage expects Message | CustomMessage | BashExecutionMessage
|
|
187
|
+
sessionManager.appendMessage(message);
|
|
188
|
+
}
|
|
189
|
+
else if (entry.type === "compaction") {
|
|
190
|
+
sessionManager.appendCompaction(entry.summary, entry.firstKeptEntryId, entry.tokensBefore, entry.details, entry.fromHook);
|
|
191
|
+
}
|
|
192
|
+
else if (entry.type === "thinking_level_change") {
|
|
193
|
+
sessionManager.appendThinkingLevelChange(entry.thinkingLevel);
|
|
194
|
+
}
|
|
195
|
+
else if (entry.type === "model_change") {
|
|
196
|
+
sessionManager.appendModelChange(entry.provider, entry.modelId);
|
|
197
|
+
}
|
|
198
|
+
else if (entry.type === "custom") {
|
|
199
|
+
sessionManager.appendCustomEntry(entry.customType, entry.data);
|
|
200
|
+
}
|
|
201
|
+
else if (entry.type === "custom_message") {
|
|
202
|
+
sessionManager.appendCustomMessageEntry(entry.customType, entry.content, entry.display, entry.details);
|
|
203
|
+
}
|
|
204
|
+
else if (entry.type === "branch_summary") {
|
|
205
|
+
// Branch summaries reference specific entry IDs — skip to avoid inconsistency
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
else if (entry.type === "label") {
|
|
209
|
+
// Labels reference specific entry IDs — skip to avoid inconsistency
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
else if (entry.type === "session_info") {
|
|
213
|
+
if (entry.name) {
|
|
214
|
+
sessionManager.appendSessionInfo(entry.name);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
console.log(`[TOOL_TRUNCATION] Truncated ${truncatedCount} tool result(s) in session ` +
|
|
219
|
+
`(contextWindow=${contextWindowTokens} maxChars=${maxChars}) ` +
|
|
220
|
+
`sessionKey=${params.sessionKey ?? params.sessionId ?? "unknown"}`);
|
|
221
|
+
return { truncated: true, truncatedCount };
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
225
|
+
console.warn(`[TOOL_TRUNCATION] Failed to truncate: ${errMsg}`);
|
|
226
|
+
return { truncated: false, truncatedCount: 0, reason: errMsg };
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Truncate oversized tool results in an array of messages (in-memory).
|
|
231
|
+
* Returns a new array with truncated messages.
|
|
232
|
+
*
|
|
233
|
+
* This is used as a pre-emptive guard before sending messages to the LLM,
|
|
234
|
+
* without modifying the session file.
|
|
235
|
+
*/
|
|
236
|
+
export function truncateOversizedToolResultsInMessages(messages, contextWindowTokens) {
|
|
237
|
+
const maxChars = calculateMaxToolResultChars(contextWindowTokens);
|
|
238
|
+
let truncatedCount = 0;
|
|
239
|
+
const result = messages.map((msg) => {
|
|
240
|
+
if (msg.role !== "toolResult") {
|
|
241
|
+
return msg;
|
|
242
|
+
}
|
|
243
|
+
const textLength = getToolResultTextLength(msg);
|
|
244
|
+
if (textLength <= maxChars) {
|
|
245
|
+
return msg;
|
|
246
|
+
}
|
|
247
|
+
truncatedCount++;
|
|
248
|
+
return truncateToolResultMessage(msg, maxChars);
|
|
249
|
+
});
|
|
250
|
+
return { messages: result, truncatedCount };
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Check if a tool result message exceeds the size limit for a given context window.
|
|
254
|
+
*/
|
|
255
|
+
export function isOversizedToolResult(msg, contextWindowTokens) {
|
|
256
|
+
if (msg.role !== "toolResult") {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
const maxChars = calculateMaxToolResultChars(contextWindowTokens);
|
|
260
|
+
return getToolResultTextLength(msg) > maxChars;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Estimate whether the session likely has oversized tool results that caused
|
|
264
|
+
* a context overflow. Used as a heuristic to decide whether to attempt
|
|
265
|
+
* tool result truncation before giving up.
|
|
266
|
+
*/
|
|
267
|
+
export function sessionLikelyHasOversizedToolResults(params) {
|
|
268
|
+
const { messages, contextWindowTokens } = params;
|
|
269
|
+
const maxChars = calculateMaxToolResultChars(contextWindowTokens);
|
|
270
|
+
for (const msg of messages) {
|
|
271
|
+
if (msg.role !== "toolResult") {
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
const textLength = getToolResultTextLength(msg);
|
|
275
|
+
if (textLength > maxChars) {
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=tool-result-truncation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result-truncation.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/tool-result-truncation.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,5 +172,30 @@ export type EmbeddedRunAttemptResult = {
|
|
|
172
172
|
messagingToolSentTexts?: string[];
|
|
173
173
|
messagingToolSentTargets?: string[];
|
|
174
174
|
cloudCodeAssistFormatError?: boolean;
|
|
175
|
+
/** Snapshot of messages at time of attempt (used for overflow diagnostics) */
|
|
176
|
+
messagesSnapshot?: unknown[];
|
|
177
|
+
/** Number of auto-compactions that occurred during the attempt */
|
|
178
|
+
compactionCount?: number;
|
|
179
|
+
/** Usage from the attempt */
|
|
180
|
+
attemptUsage?: {
|
|
181
|
+
inputTokens: number;
|
|
182
|
+
outputTokens: number;
|
|
183
|
+
};
|
|
175
184
|
};
|
|
185
|
+
/**
|
|
186
|
+
* Result from compactEmbeddedPiSessionDirect
|
|
187
|
+
* (Ported from OpenClaw's EmbeddedPiCompactResult)
|
|
188
|
+
*/
|
|
189
|
+
export interface EmbeddedPiCompactResult {
|
|
190
|
+
ok: boolean;
|
|
191
|
+
compacted: boolean;
|
|
192
|
+
reason?: string;
|
|
193
|
+
result?: {
|
|
194
|
+
summary: string;
|
|
195
|
+
firstKeptEntryId: string;
|
|
196
|
+
tokensBefore: number;
|
|
197
|
+
tokensAfter?: number;
|
|
198
|
+
details?: unknown;
|
|
199
|
+
};
|
|
200
|
+
}
|
|
176
201
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,mBAAmB,CAAC;QAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,KAAK,CAAC;YACvB,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IACF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC,eAAe,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IAC7C,kBAAkB,CAAC,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;KACvD,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG;IAChE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE;YACN,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACnE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,YAAY,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH"}
|
package/package.json
CHANGED