@felan-ai/ext-rtk-optimizer 0.3.0 → 0.5.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/README.md +18 -8
- package/dist/command.d.ts +0 -2
- package/dist/command.d.ts.map +1 -1
- package/dist/command.js +1 -13
- package/dist/command.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +127 -18
- package/dist/index.js.map +1 -1
- package/dist/output-compactor.d.ts +4 -2
- package/dist/output-compactor.d.ts.map +1 -1
- package/dist/output-compactor.js +56 -13
- package/dist/output-compactor.js.map +1 -1
- package/dist/recovery.d.ts +9 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +64 -0
- package/dist/recovery.js.map +1 -0
- package/dist/rtk-gain.d.ts +24 -0
- package/dist/rtk-gain.d.ts.map +1 -0
- package/dist/rtk-gain.js +259 -0
- package/dist/rtk-gain.js.map +1 -0
- package/dist/techniques/truncate.d.ts +9 -0
- package/dist/techniques/truncate.d.ts.map +1 -1
- package/dist/techniques/truncate.js +77 -6
- package/dist/techniques/truncate.js.map +1 -1
- package/package.json +3 -3
- package/dist/output-metrics.d.ts +0 -15
- package/dist/output-metrics.d.ts.map +0 -1
- package/dist/output-metrics.js +0 -50
- package/dist/output-metrics.js.map +0 -1
package/README.md
CHANGED
|
@@ -19,10 +19,12 @@ work.
|
|
|
19
19
|
when ANSI stripping is enabled.
|
|
20
20
|
|
|
21
21
|
Build, test, Git, and linter commands receive command-aware compaction. Search
|
|
22
|
-
results can be grouped by file. A final character limit protects
|
|
23
|
-
from unusually large command results
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
results can be grouped by file. A final head-and-tail character limit protects
|
|
23
|
+
the context from unusually large command results and stores a recoverable copy
|
|
24
|
+
in session storage. Failed results retain their original evidence, and complete
|
|
25
|
+
JSON is never cut. Lossy source filtering and smart truncation for `read` are
|
|
26
|
+
disabled by default; explicit read ranges and reads of at most 80 lines stay
|
|
27
|
+
exact even when read compaction is enabled.
|
|
26
28
|
|
|
27
29
|
## Requirements
|
|
28
30
|
|
|
@@ -89,12 +91,20 @@ commands. Subcommands are:
|
|
|
89
91
|
- `/rtk show`
|
|
90
92
|
- `/rtk verify`
|
|
91
93
|
- `/rtk install`
|
|
92
|
-
- `/rtk stats`
|
|
93
|
-
- `/rtk clear-stats`
|
|
94
94
|
- `/rtk help`
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
RTK and post-tool savings are reported to Felan's persistent savings service when the
|
|
97
|
+
host provides it. They report two distinct sequential stages: RTK command-output
|
|
98
|
+
optimization from an isolated session/model tracker, and Felan post-tool
|
|
99
|
+
compaction for every supported result. Both use bounded token estimates and are
|
|
100
|
+
reported as separate Felan-owned savings measurements; they are not added twice.
|
|
101
|
+
The session tracker is queried once per model shard during session shutdown and
|
|
102
|
+
then deleted. A crashed session can recover its unfinished tracker on resume;
|
|
103
|
+
rare duplicate or skipped indicative measurements are acceptable. The global RTK
|
|
104
|
+
history is never imported. RTK command-output captures use the
|
|
105
|
+
`rtk-tracking-byte4-v1` estimator and are available on POSIX runtimes; on
|
|
106
|
+
Windows, rewriting remains available but the isolated RTK gain capture is
|
|
107
|
+
skipped because the POSIX environment wrapper is not used.
|
|
98
108
|
|
|
99
109
|
## Development
|
|
100
110
|
|
package/dist/command.d.ts
CHANGED
|
@@ -5,8 +5,6 @@ export interface RtkOptimizerController {
|
|
|
5
5
|
getRuntimeStatus(): RuntimeStatus;
|
|
6
6
|
refreshRuntimeStatus(): Promise<RuntimeStatus>;
|
|
7
7
|
install(onStatus: (message: string) => void): Promise<RuntimeStatus>;
|
|
8
|
-
getMetricsSummary(): string;
|
|
9
|
-
clearMetrics(): void;
|
|
10
8
|
}
|
|
11
9
|
export declare function registerRtkCommand(pi: FelanExtensionAPI, controller: RtkOptimizerController): void;
|
|
12
10
|
//# sourceMappingURL=command.d.ts.map
|
package/dist/command.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACrC,SAAS,IAAI,kBAAkB,CAAC;IAChC,gBAAgB,IAAI,aAAa,CAAC;IAClC,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACrC,SAAS,IAAI,kBAAkB,CAAC;IAChC,gBAAgB,IAAI,aAAa,CAAC;IAClC,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACtE;AAUD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAkDlG"}
|
package/dist/command.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
const USAGE = 'Usage: /rtk [show|verify|install|
|
|
1
|
+
const USAGE = 'Usage: /rtk [show|verify|install|help]';
|
|
2
2
|
const SUBCOMMANDS = [
|
|
3
3
|
['show', 'Show current RTK configuration and runtime status'],
|
|
4
4
|
['verify', 'Check whether rtk is available in the runtime'],
|
|
5
5
|
['install', 'Run the pinned official RTK installer'],
|
|
6
|
-
['stats', 'Show output-compaction metrics'],
|
|
7
|
-
['clear-stats', 'Clear output-compaction metrics'],
|
|
8
6
|
['help', 'Show command usage'],
|
|
9
7
|
];
|
|
10
8
|
export function registerRtkCommand(pi, controller) {
|
|
@@ -51,13 +49,6 @@ export function registerRtkCommand(pi, controller) {
|
|
|
51
49
|
ctx.ui.setStatus('rtk-install', undefined);
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
|
-
else if (subcommand === 'stats') {
|
|
55
|
-
ctx.ui.notify(controller.getMetricsSummary(), 'info');
|
|
56
|
-
}
|
|
57
|
-
else if (subcommand === 'clear-stats') {
|
|
58
|
-
controller.clearMetrics();
|
|
59
|
-
ctx.ui.notify('RTK metrics cleared.', 'info');
|
|
60
|
-
}
|
|
61
52
|
else {
|
|
62
53
|
ctx.ui.notify(USAGE, 'warning');
|
|
63
54
|
}
|
|
@@ -78,7 +69,4 @@ function formatSummary(config, status) {
|
|
|
78
69
|
'commandTools=bash,exec_command,write_stdin',
|
|
79
70
|
].join(', ');
|
|
80
71
|
}
|
|
81
|
-
function errorMessage(error) {
|
|
82
|
-
return error instanceof Error ? error.message : String(error);
|
|
83
|
-
}
|
|
84
72
|
//# sourceMappingURL=command.js.map
|
package/dist/command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { AgentRuntime, FelanExtension } from '@felan-ai/agent-core';
|
|
|
2
2
|
import type { RtkOptimizerConfig, RuntimeStatus } from './types.js';
|
|
3
3
|
export declare function refreshActiveRtkRuntime(runtime: AgentRuntime): Promise<RuntimeStatus>;
|
|
4
4
|
declare const rtkOptimizerExtension: FelanExtension;
|
|
5
|
+
export declare function estimateUtf8Tokens(values: readonly string[]): number;
|
|
5
6
|
export declare function shouldInjectSourceFilterTroubleshootingNote(config: RtkOptimizerConfig): boolean;
|
|
6
7
|
export declare function injectGuidelineIntoPrompt(systemPrompt: string, guideline: string): string;
|
|
7
8
|
export interface BoundedNoticeTracker {
|
|
@@ -13,7 +14,6 @@ export { RTK_OPTIMIZER_CONFIG, rtkOptimizerConfigFromSettings, validateRtkOptimi
|
|
|
13
14
|
export { computeRewriteDecision, inspectRtkRuntime, resolveRtkRewrite } from './command-rewriter.js';
|
|
14
15
|
export { installManagedRtk, managedRtkDirectory, managedRtkExecutable, MANAGED_RTK_VERSION, supportsManagedRtk, } from './installer.js';
|
|
15
16
|
export { compactToolResult } from './output-compactor.js';
|
|
16
|
-
export { OutputMetrics } from './output-metrics.js';
|
|
17
17
|
export { DEFAULT_RTK_OPTIMIZER_CONFIG } from './types.js';
|
|
18
18
|
export type { RtkMode, RtkOptimizerConfig, RtkOutputCompactionConfig, RtkSourceFilterLevel, RuntimeStatus, } from './types.js';
|
|
19
19
|
export default rtkOptimizerExtension;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA2B3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AASpE,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAE3F;AAED,QAAA,MAAM,qBAAqB,EAAE,cAiR5B,CAAC;AAyDF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAGpE;AAuBD,wBAAgB,2CAA2C,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAU/F;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAyBzF;AAkED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAoBnF;AAWD,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,YAAY,EACV,OAAO,EACP,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,eAAe,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,9 +3,10 @@ import { computeRewriteDecision, inspectRtkRuntime } from './command-rewriter.js
|
|
|
3
3
|
import { associateExtensionConfig } from '@felan-ai/agent-core';
|
|
4
4
|
import { RTK_OPTIMIZER_CONFIG, rtkOptimizerConfigFromSettings } from './config.js';
|
|
5
5
|
import { installManagedRtk } from './installer.js';
|
|
6
|
-
import { compactToolResult } from './output-compactor.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import { addRecoveryPath, compactToolResult } from './output-compactor.js';
|
|
7
|
+
import { persistRecoveryArtifact } from './recovery.js';
|
|
8
|
+
import { createRtkGainSegment, discoverRtkGainSegments, discardRtkGainSegment, readRtkGainSegment, wrapCommandWithRtkGain, } from './rtk-gain.js';
|
|
9
|
+
import { isTextContentBlock, toRecord } from './record-utils.js';
|
|
9
10
|
import { sanitizeStreamingCommandResult } from './tool-execution-sanitizer.js';
|
|
10
11
|
import { codexResultHasExited, isCommandToolName, isStreamingCommandToolName, readCodexSessionId, readRunningCodexSessionId, readToolCommand, writeToolCommand, } from './tool-shapes.js';
|
|
11
12
|
const EXTENSION_NAME = 'RTK optimizer';
|
|
@@ -20,11 +21,13 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
20
21
|
let runtimeStatus = { rtkAvailable: false };
|
|
21
22
|
let statusRefresh;
|
|
22
23
|
let missingRtkWarningShown = false;
|
|
23
|
-
const metrics = new OutputMetrics();
|
|
24
24
|
const warnedMessages = createBoundedNoticeTracker(100);
|
|
25
25
|
const suggestionNotices = createBoundedNoticeTracker(200);
|
|
26
26
|
const codexSessionCommands = new Map();
|
|
27
|
+
const codexSessionModels = new Map();
|
|
28
|
+
const toolCallModels = new Map();
|
|
27
29
|
const activeCodexCommands = new Map();
|
|
30
|
+
const rtkSegments = new Map();
|
|
28
31
|
const refreshRuntimeStatus = () => {
|
|
29
32
|
statusRefresh ??= inspectRtkRuntime(pi.runtime)
|
|
30
33
|
.then((status) => {
|
|
@@ -70,27 +73,30 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
70
73
|
missingRtkWarningShown = false;
|
|
71
74
|
return status;
|
|
72
75
|
},
|
|
73
|
-
getMetricsSummary: () => metrics.summary(),
|
|
74
|
-
clearMetrics: () => metrics.clear(),
|
|
75
76
|
});
|
|
76
77
|
pi.on('session_start', async (_event, ctx) => {
|
|
77
78
|
warnedMessages.reset();
|
|
78
79
|
suggestionNotices.reset();
|
|
79
80
|
codexSessionCommands.clear();
|
|
80
81
|
activeCodexCommands.clear();
|
|
81
|
-
|
|
82
|
+
toolCallModels.clear();
|
|
83
|
+
codexSessionModels.clear();
|
|
82
84
|
missingRtkWarningShown = false;
|
|
83
85
|
if (config.enabled) {
|
|
84
86
|
await refreshRuntimeStatus();
|
|
85
87
|
maybeWarnRtkMissing(ctx);
|
|
86
88
|
}
|
|
87
89
|
});
|
|
88
|
-
pi.on('session_shutdown', () => {
|
|
90
|
+
pi.on('session_shutdown', async () => {
|
|
89
91
|
if (activeRuntimeRefreshers.get(pi.runtime) === refreshRuntimeStatus) {
|
|
90
92
|
activeRuntimeRefreshers.delete(pi.runtime);
|
|
91
93
|
}
|
|
92
94
|
codexSessionCommands.clear();
|
|
95
|
+
codexSessionModels.clear();
|
|
96
|
+
toolCallModels.clear();
|
|
93
97
|
activeCodexCommands.clear();
|
|
98
|
+
rtkSegments.clear();
|
|
99
|
+
await flushRtkGainSegments(pi, runtimeStatus.command ?? 'rtk');
|
|
94
100
|
});
|
|
95
101
|
pi.on('agent_end', () => {
|
|
96
102
|
activeCodexCommands.clear();
|
|
@@ -106,6 +112,9 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
106
112
|
return systemPrompt === event.systemPrompt ? undefined : { systemPrompt };
|
|
107
113
|
});
|
|
108
114
|
pi.on('tool_call', async (event, ctx) => {
|
|
115
|
+
if (isCompactionToolName(event.toolName) && ctx.model) {
|
|
116
|
+
toolCallModels.set(event.toolCallId, { provider: ctx.model.provider, id: ctx.model.id });
|
|
117
|
+
}
|
|
109
118
|
if (!config.enabled || !isCommandToolName(event.toolName))
|
|
110
119
|
return undefined;
|
|
111
120
|
const command = readToolCommand(event.toolName, event.input);
|
|
@@ -126,7 +135,20 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
126
135
|
return undefined;
|
|
127
136
|
}
|
|
128
137
|
if (config.mode === 'rewrite') {
|
|
129
|
-
|
|
138
|
+
let rewrittenCommand = decision.rewrittenCommand;
|
|
139
|
+
if (config.outputCompaction.trackSavings && pi.savings) {
|
|
140
|
+
const model = toolCallModels.get(event.toolCallId);
|
|
141
|
+
const modelKey = JSON.stringify(model ?? null);
|
|
142
|
+
let segment = rtkSegments.get(modelKey);
|
|
143
|
+
if (!segment) {
|
|
144
|
+
segment = await createRtkGainSegment(pi.runtime, model);
|
|
145
|
+
if (segment)
|
|
146
|
+
rtkSegments.set(modelKey, segment);
|
|
147
|
+
}
|
|
148
|
+
if (segment)
|
|
149
|
+
rewrittenCommand = wrapCommandWithRtkGain(rewrittenCommand, segment);
|
|
150
|
+
}
|
|
151
|
+
writeToolCommand(event.toolName, event.input, rewrittenCommand);
|
|
130
152
|
if (config.showRewriteNotifications && ctx.hasUI) {
|
|
131
153
|
ctx.ui.notify(`RTK rewrite: ${trimMessage(command, 100)} -> ${trimMessage(decision.rewrittenCommand, 120)}`, 'info');
|
|
132
154
|
}
|
|
@@ -146,7 +168,7 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
146
168
|
activeCodexCommands.set(event.toolCallId, command);
|
|
147
169
|
});
|
|
148
170
|
pi.on('tool_execution_update', (event) => {
|
|
149
|
-
recordCodexSessionFromExecution(event.toolName, event.toolCallId, event.partialResult, activeCodexCommands, codexSessionCommands);
|
|
171
|
+
recordCodexSessionFromExecution(event.toolName, event.toolCallId, event.partialResult, activeCodexCommands, codexSessionCommands, codexSessionModels, toolCallModels);
|
|
150
172
|
if (!config.enabled ||
|
|
151
173
|
!config.outputCompaction.enabled ||
|
|
152
174
|
!config.outputCompaction.stripAnsi ||
|
|
@@ -155,7 +177,7 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
155
177
|
sanitizeStreamingCommandResult(event.partialResult);
|
|
156
178
|
});
|
|
157
179
|
pi.on('tool_execution_end', (event) => {
|
|
158
|
-
recordCodexSessionFromExecution(event.toolName, event.toolCallId, event.result, activeCodexCommands, codexSessionCommands);
|
|
180
|
+
recordCodexSessionFromExecution(event.toolName, event.toolCallId, event.result, activeCodexCommands, codexSessionCommands, codexSessionModels, toolCallModels);
|
|
159
181
|
activeCodexCommands.delete(event.toolCallId);
|
|
160
182
|
if (!config.enabled ||
|
|
161
183
|
!config.outputCompaction.enabled ||
|
|
@@ -166,11 +188,12 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
166
188
|
});
|
|
167
189
|
pi.on('tool_result', async (event, ctx) => {
|
|
168
190
|
const originatingCommand = commandForResult(event.toolName, event.input, codexSessionCommands);
|
|
169
|
-
|
|
191
|
+
const resultModel = modelForResult(event.toolName, event.input, event.toolCallId, toolCallModels, codexSessionModels);
|
|
192
|
+
updateCodexSessionCommands(event.toolName, event.input, event.details, originatingCommand, codexSessionCommands, codexSessionModels);
|
|
170
193
|
if (!config.enabled || !config.outputCompaction.enabled)
|
|
171
194
|
return undefined;
|
|
172
195
|
try {
|
|
173
|
-
|
|
196
|
+
let outcome = compactToolResult({
|
|
174
197
|
toolName: event.toolName,
|
|
175
198
|
input: event.input,
|
|
176
199
|
content: event.content,
|
|
@@ -178,10 +201,32 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
178
201
|
cwd: ctx.cwd,
|
|
179
202
|
agentDir: pi.agentDir,
|
|
180
203
|
...(originatingCommand === undefined ? {} : { command: originatingCommand }),
|
|
181
|
-
|
|
204
|
+
failed: event.isError || hasNonZeroExitCode(event.details),
|
|
182
205
|
});
|
|
183
|
-
if (!outcome.changed || !outcome.content)
|
|
206
|
+
if (!outcome.changed || !outcome.content) {
|
|
207
|
+
if (config.outputCompaction.trackSavings && isCompactionToolName(event.toolName)) {
|
|
208
|
+
reportSavings(pi.savings, event.toolName, event.content, event.content, resultModel);
|
|
209
|
+
}
|
|
210
|
+
toolCallModels.delete(event.toolCallId);
|
|
184
211
|
return undefined;
|
|
212
|
+
}
|
|
213
|
+
if (outcome.metadata?.truncated) {
|
|
214
|
+
const originalText = event.content
|
|
215
|
+
.filter(isTextContentBlock)
|
|
216
|
+
.map((block) => toRecord(block).text)
|
|
217
|
+
.filter((text) => typeof text === 'string')
|
|
218
|
+
.join('\n');
|
|
219
|
+
const recoveryPath = await persistRecoveryArtifact(pi.runtime, originalText);
|
|
220
|
+
if (!recoveryPath) {
|
|
221
|
+
warnOnce(ctx, `${EXTENSION_NAME}: output was not compacted because a recovery copy could not be stored.`);
|
|
222
|
+
return undefined;
|
|
223
|
+
}
|
|
224
|
+
outcome = addRecoveryPath(outcome, recoveryPath);
|
|
225
|
+
}
|
|
226
|
+
if (config.outputCompaction.trackSavings && isCompactionToolName(event.toolName)) {
|
|
227
|
+
reportSavings(pi.savings, event.toolName, event.content, outcome.content, resultModel, outcome.techniques);
|
|
228
|
+
}
|
|
229
|
+
toolCallModels.delete(event.toolCallId);
|
|
185
230
|
return {
|
|
186
231
|
content: outcome.content,
|
|
187
232
|
...(outcome.metadata === undefined ? {} : { details: mergeCompactionDetails(event.details, outcome.metadata) }),
|
|
@@ -193,6 +238,66 @@ const rtkOptimizerExtension = async (pi) => {
|
|
|
193
238
|
}
|
|
194
239
|
});
|
|
195
240
|
};
|
|
241
|
+
function hasNonZeroExitCode(details) {
|
|
242
|
+
const value = toRecord(details).exit_code;
|
|
243
|
+
return Number.isSafeInteger(value) && value !== 0;
|
|
244
|
+
}
|
|
245
|
+
function textBlocks(content) {
|
|
246
|
+
if (!Array.isArray(content))
|
|
247
|
+
return [];
|
|
248
|
+
return content.filter(isTextContentBlock).map((block) => toRecord(block).text);
|
|
249
|
+
}
|
|
250
|
+
function reportSavings(reporter, tool, original, compacted, model, techniques = []) {
|
|
251
|
+
if (!reporter)
|
|
252
|
+
return;
|
|
253
|
+
const baseline = textBlocks(original);
|
|
254
|
+
const actual = textBlocks(compacted);
|
|
255
|
+
void reporter.report({
|
|
256
|
+
category: 'output-optimization',
|
|
257
|
+
operation: 'post-tool-compaction',
|
|
258
|
+
baseline: { ...(model === undefined ? {} : { model }), tokens: { input: estimateUtf8Tokens(baseline), output: 0 } },
|
|
259
|
+
actual: { ...(model === undefined ? {} : { model }), tokens: { input: estimateUtf8Tokens(actual), output: 0 } },
|
|
260
|
+
basis: { kind: 'estimated-baseline', method: 'utf8-bytes/4-ceil-v1' },
|
|
261
|
+
dimensions: { tool, ...(techniques.length === 0 ? {} : { techniques }) },
|
|
262
|
+
}).catch(() => { });
|
|
263
|
+
}
|
|
264
|
+
async function flushRtkGainSegments(pi, executable) {
|
|
265
|
+
const segments = await discoverRtkGainSegments(pi.runtime);
|
|
266
|
+
await Promise.allSettled(segments.map(async (segment) => {
|
|
267
|
+
const totals = await readRtkGainSegment(pi.runtime, executable, segment);
|
|
268
|
+
if (!totals)
|
|
269
|
+
return;
|
|
270
|
+
if (totals.calls === 0 || !pi.savings) {
|
|
271
|
+
await discardRtkGainSegment(pi.runtime, segment);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
await pi.savings.report({
|
|
275
|
+
category: 'output-optimization',
|
|
276
|
+
operation: 'rtk-command-output',
|
|
277
|
+
baseline: { ...(segment.model === undefined ? {} : { model: segment.model }), tokens: { input: totals.inputTokens, output: 0 } },
|
|
278
|
+
actual: { ...(segment.model === undefined ? {} : { model: segment.model }), tokens: { input: totals.outputTokens, output: 0 } },
|
|
279
|
+
basis: { kind: 'observed-comparison', method: 'rtk-tracking-byte4-v1' },
|
|
280
|
+
calls: totals.calls,
|
|
281
|
+
});
|
|
282
|
+
await discardRtkGainSegment(pi.runtime, segment);
|
|
283
|
+
}));
|
|
284
|
+
}
|
|
285
|
+
export function estimateUtf8Tokens(values) {
|
|
286
|
+
const bytes = values.reduce((total, value) => total + new TextEncoder().encode(value).byteLength, 0);
|
|
287
|
+
return Math.ceil(bytes / 4);
|
|
288
|
+
}
|
|
289
|
+
function modelForCodexResult(input, models) {
|
|
290
|
+
const sessionId = readCodexSessionId(input);
|
|
291
|
+
return sessionId === undefined ? undefined : models.get(sessionId);
|
|
292
|
+
}
|
|
293
|
+
function modelForResult(toolName, input, toolCallId, toolCallModels, codexSessionModels) {
|
|
294
|
+
return toolName === 'write_stdin'
|
|
295
|
+
? modelForCodexResult(input, codexSessionModels)
|
|
296
|
+
: toolCallModels.get(toolCallId);
|
|
297
|
+
}
|
|
298
|
+
function isCompactionToolName(toolName) {
|
|
299
|
+
return isCommandToolName(toolName) || toolName === 'write_stdin' || toolName === 'read' || toolName === 'grep';
|
|
300
|
+
}
|
|
196
301
|
export function shouldInjectSourceFilterTroubleshootingNote(config) {
|
|
197
302
|
const compaction = config.outputCompaction;
|
|
198
303
|
return (config.enabled &&
|
|
@@ -239,7 +344,7 @@ function commandForResult(toolName, input, codexSessionCommands) {
|
|
|
239
344
|
const sessionId = readCodexSessionId(input);
|
|
240
345
|
return sessionId === undefined ? undefined : codexSessionCommands.get(sessionId);
|
|
241
346
|
}
|
|
242
|
-
function recordCodexSessionFromExecution(toolName, toolCallId, result, activeCodexCommands, codexSessionCommands) {
|
|
347
|
+
function recordCodexSessionFromExecution(toolName, toolCallId, result, activeCodexCommands, codexSessionCommands, codexSessionModels, toolCallModels) {
|
|
243
348
|
if (toolName !== 'exec_command')
|
|
244
349
|
return;
|
|
245
350
|
const command = activeCodexCommands.get(toolCallId);
|
|
@@ -248,8 +353,11 @@ function recordCodexSessionFromExecution(toolName, toolCallId, result, activeCod
|
|
|
248
353
|
const sessionId = readRunningCodexSessionId(toRecord(result).details);
|
|
249
354
|
if (sessionId !== undefined)
|
|
250
355
|
codexSessionCommands.set(sessionId, command);
|
|
356
|
+
const model = toolCallModels.get(toolCallId);
|
|
357
|
+
if (sessionId !== undefined && model)
|
|
358
|
+
codexSessionModels.set(sessionId, model);
|
|
251
359
|
}
|
|
252
|
-
function updateCodexSessionCommands(toolName, input, details, command, codexSessionCommands) {
|
|
360
|
+
function updateCodexSessionCommands(toolName, input, details, command, codexSessionCommands, codexSessionModels) {
|
|
253
361
|
if (toolName === 'exec_command' && command) {
|
|
254
362
|
const runningSessionId = readRunningCodexSessionId(details);
|
|
255
363
|
if (runningSessionId !== undefined)
|
|
@@ -263,6 +371,8 @@ function updateCodexSessionCommands(toolName, input, details, command, codexSess
|
|
|
263
371
|
return;
|
|
264
372
|
if (codexResultHasExited(details))
|
|
265
373
|
codexSessionCommands.delete(requestedSessionId);
|
|
374
|
+
if (codexResultHasExited(details))
|
|
375
|
+
codexSessionModels.delete(requestedSessionId);
|
|
266
376
|
}
|
|
267
377
|
function mergeCompactionDetails(existingDetails, compaction) {
|
|
268
378
|
const base = toRecord(existingDetails);
|
|
@@ -308,7 +418,6 @@ export { RTK_OPTIMIZER_CONFIG, rtkOptimizerConfigFromSettings, validateRtkOptimi
|
|
|
308
418
|
export { computeRewriteDecision, inspectRtkRuntime, resolveRtkRewrite } from './command-rewriter.js';
|
|
309
419
|
export { installManagedRtk, managedRtkDirectory, managedRtkExecutable, MANAGED_RTK_VERSION, supportsManagedRtk, } from './installer.js';
|
|
310
420
|
export { compactToolResult } from './output-compactor.js';
|
|
311
|
-
export { OutputMetrics } from './output-metrics.js';
|
|
312
421
|
export { DEFAULT_RTK_OPTIMIZER_CONFIG } from './types.js';
|
|
313
422
|
export default rtkOptimizerExtension;
|
|
314
423
|
associateExtensionConfig(rtkOptimizerExtension, RTK_OPTIMIZER_CONFIG);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAqC,MAAM,uBAAuB,CAAC;AAC9G,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAI1B,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,MAAM,kCAAkC,GACtC,iMAAiM,CAAC;AACpM,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAA8C,CAAC;AAE1F,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAqB;IACjE,OAAO,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,qBAAqB,GAAmB,KAAK,EAAE,EAAE,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,8BAA8B,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC/D,IAAI,aAAa,GAAkB,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC3D,IAAI,aAAiD,CAAC;IACtD,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,MAAM,cAAc,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAiC,CAAC;IACpE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiC,CAAC;IAChE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEtD,MAAM,oBAAoB,GAAG,GAA2B,EAAE;QACxD,aAAa,KAAK,iBAAiB,CAAC,EAAE,CAAC,OAAO,CAAC;aAC5C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,aAAa,GAAG,MAAM,CAAC;YACvB,IAAI,MAAM,CAAC,YAAY;gBAAE,sBAAsB,GAAG,KAAK,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC,CAAC,CAAC;QACL,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IACF,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAE9D,MAAM,wBAAwB,GAAG,KAAK,IAAmB,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,mBAAmB;YAAE,OAAO;QACxC,IACE,aAAa,CAAC,aAAa,KAAK,SAAS;YACzC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,aAAa,GAAG,yBAAyB,EACpE,CAAC;YACD,MAAM,oBAAoB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,GAAqB,EAAE,OAAe,EAAE,QAA6B,SAAS,EAAQ,EAAE;QACxG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,GAAqB,EAAQ,EAAE;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,aAAa,CAAC,YAAY,IAAI,sBAAsB;YAAE,OAAO;QAEnH,sBAAsB,GAAG,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,QAAQ,CAAC,GAAG,EAAE,GAAG,cAAc,sDAAsD,MAAM,GAAG,CAAC,CAAC;IAClG,CAAC,CAAC;IAEF,kBAAkB,CAAC,EAAE,EAAE;QACrB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;QACvB,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;QACrC,oBAAoB;QACpB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC1B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7D,aAAa,GAAG,MAAM,CAAC;YACvB,IAAI,MAAM,CAAC,YAAY;gBAAE,sBAAsB,GAAG,KAAK,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3C,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC1B,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAC7B,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAC5B,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,sBAAsB,GAAG,KAAK,CAAC;QAC/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,oBAAoB,EAAE,CAAC;YAC7B,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACnC,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,oBAAoB,EAAE,CAAC;YACrE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAC7B,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAC5B,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACtB,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,wBAAwB,EAAE,CAAC;QACjC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,2CAA2C,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3E,MAAM,YAAY,GAAG,yBAAyB,CAAC,KAAK,CAAC,YAAY,EAAE,kCAAkC,CAAC,CAAC;QACvG,OAAO,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACtD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5E,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,wBAAwB,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,mBAAmB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAC9D,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE;YACjE,GAAG,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC;SACtF,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,QAAQ,CACN,GAAG,EACH,GAAG,cAAc,8BAA8B,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAChH,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;YACjD,IAAI,MAAM,CAAC,gBAAgB,CAAC,YAAY,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACvD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;gBAC/C,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBACxD,IAAI,OAAO;wBAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClD,CAAC;gBACD,IAAI,OAAO;oBAAE,gBAAgB,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACpF,CAAC;YACD,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,wBAAwB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACjD,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,gBAAgB,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,EAC7F,MAAM,CACP,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,OAAO,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAChE,IAAI,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC3D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE;QACtC,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc;YAAE,OAAO;QAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO;YAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;QACvC,+BAA+B,CAC7B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,aAAa,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,CACf,CAAC;QACF,IACE,CAAC,MAAM,CAAC,OAAO;YACf,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;YAChC,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS;YAClC,CAAC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC;YAE3C,OAAO;QAET,8BAA8B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;QACpC,+BAA+B,CAC7B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,CACf,CAAC;QACF,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IACE,CAAC,MAAM,CAAC,OAAO;YACf,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;YAChC,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS;YAClC,CAAC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC;YAE3C,OAAO;QAET,8BAA8B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACxC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAC/F,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACtH,0BAA0B,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QAErI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE1E,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,iBAAiB,CAC7B;gBACE,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,EACD,MAAM,EACN;gBACE,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;gBAC5E,MAAM,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC;aAC3D,CACF,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,MAAM,CAAC,gBAAgB,CAAC,YAAY,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACvF,CAAC;gBACD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACxC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO;qBAC/B,MAAM,CAAC,kBAAkB,CAAC;qBAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;qBACpC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;qBAC1D,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAC7E,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,QAAQ,CAAC,GAAG,EAAE,GAAG,cAAc,yEAAyE,CAAC,CAAC;oBAC1G,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,MAAM,CAAC,gBAAgB,CAAC,YAAY,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjF,aAAa,CACX,EAAE,CAAC,OAAO,EACV,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,OAAO,EACb,OAAO,CAAC,OAAO,EACf,WAAW,EACX,OAAO,CAAC,UAAU,CACnB,CAAC;YACJ,CAAC;YACD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,OAA+B;gBAChD,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;aAChH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CACN,GAAG,EACH,GAAG,cAAc,iDAAiD,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CACvG,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAC1C,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAc,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa,CACpB,QAA8F,EAC9F,IAAY,EACZ,QAAqC,EACrC,SAAsC,EACtC,KAAwC,EACxC,aAAgC,EAAE;IAElC,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK,QAAQ,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,qBAAqB;QAC/B,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACnH,MAAM,EAAE,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/G,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,sBAAsB,EAAE;QACrE,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;KACzE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,EAAmI,EACnI,UAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QACD,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;YACtB,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,oBAAoB;YAC/B,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;YAChI,MAAM,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/H,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,uBAAuB,EAAE;YACvE,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QACH,MAAM,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAyB;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrG,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,MAAkD;IAC7F,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,cAAc,CACrB,QAAgB,EAChB,KAAc,EACd,UAAkB,EAClB,cAA0D,EAC1D,kBAA8D;IAE9D,OAAO,QAAQ,KAAK,aAAa;QAC/B,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC;QAChD,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,CAAC;AACjH,CAAC;AAED,MAAM,UAAU,2CAA2C,CAAC,MAA0B;IACpF,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC3C,OAAO,CACL,MAAM,CAAC,OAAO;QACd,UAAU,CAAC,OAAO;QAClB,UAAU,CAAC,cAAc,CAAC,OAAO;QACjC,UAAU,CAAC,0BAA0B;QACrC,UAAU,CAAC,mBAAmB,KAAK,MAAM;QACzC,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,YAAoB,EAAE,SAAiB;IAC/E,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,YAAY,CAAC;IAC3E,MAAM,MAAM,GAAG,KAAK,SAAS,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,eAAe,CAAC;IAC/B,IAAI,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IACtD,IAAI,YAAoB,CAAC;IACzB,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,YAAY,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,WAAW,GAAG,CAAC,CAAC;QAChB,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,YAAY,OAAO,SAAS,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM;QAC5C,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;AAC/G,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAgB,EAChB,KAAc,EACd,oBAAiD;IAEjD,IAAI,iBAAiB,CAAC,QAAQ,CAAC;QAAE,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzE,IAAI,QAAQ,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IACjD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,+BAA+B,CACtC,QAAgB,EAChB,UAAkB,EAClB,MAAe,EACf,mBAAgD,EAChD,oBAAyC,EACzC,kBAAsD,EACtD,cAA0D;IAE1D,IAAI,QAAQ,KAAK,cAAc;QAAE,OAAO;IACxC,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IACtE,IAAI,SAAS,KAAK,SAAS;QAAE,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK;QAAE,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,0BAA0B,CACjC,QAAgB,EAChB,KAAc,EACd,OAAgB,EAChB,OAA2B,EAC3B,oBAAyC,EACzC,kBAAsD;IAEtD,IAAI,QAAQ,KAAK,cAAc,IAAI,OAAO,EAAE,CAAC;QAC3C,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,gBAAgB,KAAK,SAAS;YAAE,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,KAAK,aAAa;QAAE,OAAO;IAEvC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,kBAAkB,KAAK,SAAS;QAAE,OAAO;IAC7C,IAAI,oBAAoB,CAAC,OAAO,CAAC;QAAE,oBAAoB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACnF,IAAI,oBAAoB,CAAC,OAAO,CAAC;QAAE,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,sBAAsB,CAC7B,eAAwB,EACxB,UAAwC;IAExC,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO;QACL,GAAG,IAAI;QACP,aAAa,EAAE,UAAU;QACzB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE;QACpD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5G,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,0BAA0B,CAAC,UAAkB;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,OAAO;QACL,QAAQ,CAAC,GAAG;YACV,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,OAAO,KAAK,SAAS;oBAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,SAAS,GAAG,GAAG;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,OAAO,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;AACjF,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAQ1D,eAAe,qBAAqB,CAAC;AACrC,wBAAwB,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { OutputMetrics } from './output-metrics.js';
|
|
2
1
|
import type { RtkOptimizerConfig } from './types.js';
|
|
3
2
|
interface ToolResultLikeEvent {
|
|
4
3
|
toolName: string;
|
|
@@ -9,7 +8,8 @@ export interface ToolResultCompactionOptions {
|
|
|
9
8
|
readonly cwd: string;
|
|
10
9
|
readonly agentDir: string;
|
|
11
10
|
readonly command?: string;
|
|
12
|
-
|
|
11
|
+
/** True when the tool failed or reported a non-zero process exit. */
|
|
12
|
+
readonly failed?: boolean;
|
|
13
13
|
}
|
|
14
14
|
export interface ToolResultCompactionMetadata {
|
|
15
15
|
applied: boolean;
|
|
@@ -19,7 +19,9 @@ export interface ToolResultCompactionMetadata {
|
|
|
19
19
|
compactedCharCount: number;
|
|
20
20
|
originalLineCount: number;
|
|
21
21
|
compactedLineCount: number;
|
|
22
|
+
recoveryPath?: string;
|
|
22
23
|
}
|
|
24
|
+
export declare function addRecoveryPath(outcome: ToolResultCompactionOutcome, recoveryPath: string): ToolResultCompactionOutcome;
|
|
23
25
|
export interface ToolResultCompactionOutcome {
|
|
24
26
|
changed: boolean;
|
|
25
27
|
content?: unknown[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-compactor.d.ts","sourceRoot":"","sources":["../src/output-compactor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output-compactor.d.ts","sourceRoot":"","sources":["../src/output-compactor.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,2BAA2B,EACpC,YAAY,EAAE,MAAM,GACnB,2BAA2B,CAc7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,4BAA4B,CAAC;CACzC;AAmkBD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,2BAA2B,GACnC,2BAA2B,CAuE7B"}
|
package/dist/output-compactor.js
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
import { aggregateLinterOutput, aggregateTestOutput, compactGitOutput, detectLanguage, filterBuildOutput, filterSourceCode, groupSearchResults, smartTruncate, stripAnsiFast,
|
|
2
|
-
import { mapTextContentBlocks, toRecord } from './record-utils.js';
|
|
1
|
+
import { aggregateLinterOutput, aggregateTestOutput, compactGitOutput, detectLanguage, filterBuildOutput, filterSourceCode, groupSearchResults, smartTruncate, stripAnsiFast, } from './techniques/index.js';
|
|
2
|
+
import { isTextContentBlock, mapTextContentBlocks, toRecord } from './record-utils.js';
|
|
3
3
|
import { isRuntimePathUnderRoot, joinRuntimePath, normalizeRuntimePath } from './runtime-path.js';
|
|
4
4
|
import { isCommandToolName, readToolCommand } from './tool-shapes.js';
|
|
5
|
+
import { truncateHeadTail } from './techniques/truncate.js';
|
|
6
|
+
export function addRecoveryPath(outcome, recoveryPath) {
|
|
7
|
+
if (!outcome.changed || !outcome.content || !outcome.metadata?.truncated)
|
|
8
|
+
return outcome;
|
|
9
|
+
const content = outcome.content.map((block, index) => {
|
|
10
|
+
if (index !== 0 || !isTextContentBlock(block))
|
|
11
|
+
return block;
|
|
12
|
+
return {
|
|
13
|
+
...block,
|
|
14
|
+
text: `${block.text}\n[RTK recovery: full original output at ${recoveryPath}]`,
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
...outcome,
|
|
19
|
+
content,
|
|
20
|
+
metadata: { ...outcome.metadata, recoveryPath },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
5
23
|
const LOSSY_TECHNIQUE_PREFIXES = [
|
|
6
24
|
'build',
|
|
7
25
|
'test',
|
|
@@ -297,7 +315,9 @@ function applyAnsiStripping(state, compaction) {
|
|
|
297
315
|
/** Applies hard character truncation when enabled and the threshold is exceeded. */
|
|
298
316
|
function applyTruncation(state, compaction) {
|
|
299
317
|
if (compaction.truncate.enabled && state.text.length > compaction.truncate.maxChars) {
|
|
300
|
-
state.text =
|
|
318
|
+
state.text = truncateHeadTail(state.text, compaction.truncate.maxChars, {
|
|
319
|
+
marker: (omitted) => `\n[RTK truncated: ${omitted} characters omitted; head and tail retained]\n`,
|
|
320
|
+
}).text;
|
|
301
321
|
state.techniques.push('truncate');
|
|
302
322
|
}
|
|
303
323
|
}
|
|
@@ -330,8 +350,22 @@ function applyReadCompactionBanner(state) {
|
|
|
330
350
|
state.text = `${formatReadCompactionBanner(state.techniques)}\n${state.text}`;
|
|
331
351
|
}
|
|
332
352
|
}
|
|
333
|
-
function compactCommandText(text, command, config) {
|
|
353
|
+
function compactCommandText(text, command, config, failed = false) {
|
|
334
354
|
const { state, compaction } = beginCompaction(text, config);
|
|
355
|
+
// A complete JSON document is a structured payload, not prose. Preserve it
|
|
356
|
+
// before semantic filters or truncation can make it invalid. This is checked
|
|
357
|
+
// after ANSI removal so ordinary terminal decoration does not bypass the guard.
|
|
358
|
+
if (isCompleteJson(state.text)) {
|
|
359
|
+
return { text: state.text, techniques: state.techniques };
|
|
360
|
+
}
|
|
361
|
+
// Synthetic success summaries are unsafe on failures: the original output
|
|
362
|
+
// may contain the only useful diagnostic, and a parser that did not recognize
|
|
363
|
+
// it must never turn it into an apparent success. The final head/tail cap still
|
|
364
|
+
// bounds unusually large failures while retaining evidence from both ends.
|
|
365
|
+
if (failed) {
|
|
366
|
+
applyTruncation(state, compaction);
|
|
367
|
+
return { text: state.text, techniques: state.techniques };
|
|
368
|
+
}
|
|
335
369
|
applyConditionalTechnique(state, compaction.filterBuildOutput, (t) => filterBuildOutput(t, command), 'build');
|
|
336
370
|
applyConditionalTechnique(state, compaction.aggregateTestOutput, (t) => aggregateTestOutput(t, command), 'test');
|
|
337
371
|
applyConditionalTechnique(state, compaction.compactGitOutput, (t) => compactGitOutput(t, command), 'git');
|
|
@@ -339,13 +373,13 @@ function compactCommandText(text, command, config) {
|
|
|
339
373
|
applyTruncation(state, compaction);
|
|
340
374
|
return { text: state.text, techniques: state.techniques };
|
|
341
375
|
}
|
|
342
|
-
function compactCodexCommandText(text, command, config) {
|
|
376
|
+
function compactCodexCommandText(text, command, config, failed = false) {
|
|
343
377
|
const markerIndex = text.indexOf(CODEX_OUTPUT_MARKER);
|
|
344
378
|
if (markerIndex === -1)
|
|
345
|
-
return compactCommandText(text, command, config);
|
|
379
|
+
return compactCommandText(text, command, config, failed);
|
|
346
380
|
const outputStart = markerIndex + CODEX_OUTPUT_MARKER.length;
|
|
347
381
|
const prefix = text.slice(0, outputStart);
|
|
348
|
-
const transformed = compactCommandText(text.slice(outputStart), command, config);
|
|
382
|
+
const transformed = compactCommandText(text.slice(outputStart), command, config, failed);
|
|
349
383
|
return { ...transformed, text: `${prefix}${transformed.text}` };
|
|
350
384
|
}
|
|
351
385
|
function compactReadText(text, filePath, config, preserveExactReadOutput) {
|
|
@@ -407,11 +441,11 @@ export function compactToolResult(event, config, options) {
|
|
|
407
441
|
const command = options.command ?? readToolCommand(event.toolName, input);
|
|
408
442
|
transformed =
|
|
409
443
|
event.toolName === 'exec_command'
|
|
410
|
-
? compactCodexCommandText(contentBlock.text, command, config)
|
|
411
|
-
: compactCommandText(contentBlock.text, command, config);
|
|
444
|
+
? compactCodexCommandText(contentBlock.text, command, config, options.failed)
|
|
445
|
+
: compactCommandText(contentBlock.text, command, config, options.failed);
|
|
412
446
|
}
|
|
413
447
|
else if (event.toolName === 'write_stdin') {
|
|
414
|
-
transformed = compactCodexCommandText(contentBlock.text, options.command, config);
|
|
448
|
+
transformed = compactCodexCommandText(contentBlock.text, options.command, config, options.failed);
|
|
415
449
|
}
|
|
416
450
|
else if (event.toolName === 'read') {
|
|
417
451
|
const normalizedPath = normalizePath(input);
|
|
@@ -433,9 +467,6 @@ export function compactToolResult(event, config, options) {
|
|
|
433
467
|
const techniques = Array.from(allTechniques);
|
|
434
468
|
const originalText = originalChunks.join('\n');
|
|
435
469
|
const compactedText = filteredChunks.join('\n');
|
|
436
|
-
if (config.outputCompaction.trackSavings) {
|
|
437
|
-
options.metrics?.track(originalText, compactedText, event.toolName, techniques);
|
|
438
|
-
}
|
|
439
470
|
const metadata = {
|
|
440
471
|
applied: true,
|
|
441
472
|
techniques,
|
|
@@ -452,4 +483,16 @@ export function compactToolResult(event, config, options) {
|
|
|
452
483
|
metadata,
|
|
453
484
|
};
|
|
454
485
|
}
|
|
486
|
+
function isCompleteJson(text) {
|
|
487
|
+
const trimmed = text.trimStart();
|
|
488
|
+
if (!trimmed || (trimmed[0] !== '{' && trimmed[0] !== '['))
|
|
489
|
+
return false;
|
|
490
|
+
try {
|
|
491
|
+
JSON.parse(text);
|
|
492
|
+
return true;
|
|
493
|
+
}
|
|
494
|
+
catch {
|
|
495
|
+
return false;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
455
498
|
//# sourceMappingURL=output-compactor.js.map
|