@tarquinen/opencode-dcp 0.3.14 → 0.3.16
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 +27 -48
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +88 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +13 -3
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +127 -32
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/janitor.d.ts +49 -3
- package/dist/lib/janitor.d.ts.map +1 -1
- package/dist/lib/janitor.js +164 -58
- package/dist/lib/janitor.js.map +1 -1
- package/dist/lib/prompt.d.ts +1 -1
- package/dist/lib/prompt.d.ts.map +1 -1
- package/dist/lib/prompt.js +7 -2
- package/dist/lib/prompt.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,83 +4,62 @@
|
|
|
4
4
|
|
|
5
5
|
Automatically reduces token usage in OpenCode by removing obsolete tool outputs from conversation history.
|
|
6
6
|
|
|
7
|
-
## What It Does
|
|
8
|
-
|
|
9
|
-
This plugin automatically optimizes token usage by identifying and removing redundant or obsolete tool outputs from your conversation history.
|
|
10
|
-
|
|
11
7
|

|
|
12
8
|
|
|
13
9
|
## Installation
|
|
14
10
|
|
|
15
|
-
Add to your OpenCode
|
|
16
|
-
|
|
17
|
-
**Global:** `~/.config/opencode/opencode.json`
|
|
18
|
-
**Project:** `.opencode/opencode.json`
|
|
11
|
+
Add to your OpenCode config (`~/.config/opencode/opencode.json` or `.opencode/opencode.json`):
|
|
19
12
|
|
|
20
13
|
```json
|
|
21
14
|
{
|
|
22
|
-
"plugin": [
|
|
23
|
-
"@tarquinen/opencode-dcp"
|
|
24
|
-
]
|
|
15
|
+
"plugin": ["@tarquinen/opencode-dcp"]
|
|
25
16
|
}
|
|
26
17
|
```
|
|
27
18
|
|
|
28
|
-
> **Note:** OpenCode's `plugin` arrays are not merged between global and project configs—project config completely overrides global. If you have plugins in your global config and add a project config, include all desired plugins in the project config.
|
|
29
|
-
|
|
30
19
|
Restart OpenCode. The plugin will automatically start optimizing your sessions.
|
|
31
20
|
|
|
32
|
-
|
|
21
|
+
> **Note:** Project `plugin` arrays override global completely—include all desired plugins in project config if using both.
|
|
22
|
+
|
|
23
|
+
## How It Works
|
|
33
24
|
|
|
34
|
-
DCP
|
|
25
|
+
DCP is **non-destructive**—pruning state is kept in memory only. When requests go to your LLM, DCP replaces pruned outputs with a placeholder; original session data stays intact.
|
|
35
26
|
|
|
36
|
-
|
|
37
|
-
- **Project:** `.opencode/dcp.jsonc`
|
|
27
|
+
## Configuration
|
|
38
28
|
|
|
39
|
-
|
|
29
|
+
DCP uses its own config file (`~/.config/opencode/dcp.jsonc` or `.opencode/dcp.jsonc`), created automatically on first run.
|
|
40
30
|
|
|
41
|
-
###
|
|
31
|
+
### Options
|
|
42
32
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- `"detailed"`: Show full breakdown by tool type and pruning method
|
|
54
|
-
- **`protectedTools`** (string[], default: `["task", "todowrite", "todoread"]`) - Tools that should never be pruned
|
|
33
|
+
| Option | Default | Description |
|
|
34
|
+
|--------|---------|-------------|
|
|
35
|
+
| `enabled` | `true` | Enable/disable the plugin |
|
|
36
|
+
| `debug` | `false` | Log to `~/.config/opencode/logs/dcp/` |
|
|
37
|
+
| `model` | (session) | Model for analysis (e.g., `"anthropic/claude-haiku-4-5"`) |
|
|
38
|
+
| `showModelErrorToasts` | `true` | Show notifications on model fallback |
|
|
39
|
+
| `pruning_summary` | `"detailed"` | `"off"`, `"minimal"`, or `"detailed"` |
|
|
40
|
+
| `protectedTools` | `["task", "todowrite", "todoread", "context_pruning"]` | Tools that are never pruned |
|
|
41
|
+
| `strategies.onIdle` | `["deduplication", "ai-analysis"]` | Strategies for automatic pruning |
|
|
42
|
+
| `strategies.onTool` | `["deduplication"]` | Strategies when AI calls `context_pruning` |
|
|
55
43
|
|
|
56
|
-
|
|
44
|
+
**Strategies:** `"deduplication"` (fast, zero LLM cost) and `"ai-analysis"` (maximum savings). Empty array disables that trigger.
|
|
57
45
|
|
|
58
46
|
```jsonc
|
|
59
47
|
{
|
|
60
48
|
"enabled": true,
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
49
|
+
"strategies": {
|
|
50
|
+
"onIdle": ["deduplication", "ai-analysis"],
|
|
51
|
+
"onTool": ["deduplication"]
|
|
52
|
+
},
|
|
53
|
+
"protectedTools": ["task", "todowrite", "todoread", "context_pruning"]
|
|
65
54
|
}
|
|
66
55
|
```
|
|
67
56
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Settings are merged in order: **Built-in defaults** → **Global config** → **Project config**
|
|
71
|
-
|
|
72
|
-
After modifying configuration, restart OpenCode for changes to take effect.
|
|
57
|
+
Settings merge: **Defaults** → **Global** → **Project**. Restart OpenCode after changes.
|
|
73
58
|
|
|
74
59
|
### Version Pinning
|
|
75
60
|
|
|
76
|
-
If you want to ensure a specific version is always used or update your version, you can pin it in your config:
|
|
77
|
-
|
|
78
61
|
```json
|
|
79
|
-
{
|
|
80
|
-
"plugin": [
|
|
81
|
-
"@tarquinen/opencode-dcp@0.3.14"
|
|
82
|
-
]
|
|
83
|
-
}
|
|
62
|
+
{ "plugin": ["@tarquinen/opencode-dcp@0.3.16"] }
|
|
84
63
|
```
|
|
85
64
|
|
|
86
65
|
## License
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAqBjD,QAAA,MAAM,MAAM,EAAE,MAqQK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { tool } from "@opencode-ai/plugin";
|
|
1
2
|
import { getConfig } from "./lib/config";
|
|
2
3
|
import { Logger } from "./lib/logger";
|
|
3
4
|
import { Janitor } from "./lib/janitor";
|
|
@@ -17,7 +18,7 @@ async function isSubagentSession(client, sessionID) {
|
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
const plugin = (async (ctx) => {
|
|
20
|
-
const config = getConfig(ctx);
|
|
21
|
+
const { config, migrations } = getConfig(ctx);
|
|
21
22
|
// Exit early if plugin is disabled
|
|
22
23
|
if (!config.enabled) {
|
|
23
24
|
return {};
|
|
@@ -32,7 +33,7 @@ const plugin = (async (ctx) => {
|
|
|
32
33
|
const statsState = new Map();
|
|
33
34
|
const toolParametersCache = new Map(); // callID -> parameters
|
|
34
35
|
const modelCache = new Map(); // sessionID -> model info
|
|
35
|
-
const janitor = new Janitor(ctx.client, prunedIdsState, statsState, logger, toolParametersCache, config.protectedTools, modelCache, config.model, config.showModelErrorToasts, config.
|
|
36
|
+
const janitor = new Janitor(ctx.client, prunedIdsState, statsState, logger, toolParametersCache, config.protectedTools, modelCache, config.model, config.showModelErrorToasts, config.pruning_summary, ctx.directory);
|
|
36
37
|
const cacheToolParameters = (messages) => {
|
|
37
38
|
for (const message of messages) {
|
|
38
39
|
if (message.role !== 'assistant' || !Array.isArray(message.tool_calls)) {
|
|
@@ -121,11 +122,29 @@ const plugin = (async (ctx) => {
|
|
|
121
122
|
return originalGlobalFetch(input, init);
|
|
122
123
|
};
|
|
123
124
|
logger.info("plugin", "DCP initialized", {
|
|
124
|
-
|
|
125
|
+
strategies: config.strategies,
|
|
125
126
|
model: config.model || "auto"
|
|
126
127
|
});
|
|
127
128
|
// Check for updates on launch (fire and forget)
|
|
128
129
|
checkForUpdates(ctx.client, logger).catch(() => { });
|
|
130
|
+
// Show migration toast if config was migrated (delayed to not overlap with version toast)
|
|
131
|
+
if (migrations.length > 0) {
|
|
132
|
+
setTimeout(async () => {
|
|
133
|
+
try {
|
|
134
|
+
await ctx.client.tui.showToast({
|
|
135
|
+
body: {
|
|
136
|
+
title: "DCP: Config upgraded",
|
|
137
|
+
message: migrations.join('\n'),
|
|
138
|
+
variant: "info",
|
|
139
|
+
duration: 8000
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Silently fail - toast is non-critical
|
|
145
|
+
}
|
|
146
|
+
}, 7000); // 7s delay to show after version toast (6s) completes
|
|
147
|
+
}
|
|
129
148
|
return {
|
|
130
149
|
/**
|
|
131
150
|
* Event Hook: Triggers janitor analysis when session becomes idle
|
|
@@ -135,8 +154,11 @@ const plugin = (async (ctx) => {
|
|
|
135
154
|
// Skip pruning for subagent sessions
|
|
136
155
|
if (await isSubagentSession(ctx.client, event.properties.sessionID))
|
|
137
156
|
return;
|
|
157
|
+
// Skip if no idle strategies configured
|
|
158
|
+
if (config.strategies.onIdle.length === 0)
|
|
159
|
+
return;
|
|
138
160
|
// Fire and forget the janitor - don't block the event handler
|
|
139
|
-
janitor.
|
|
161
|
+
janitor.runOnIdle(event.properties.sessionID, config.strategies.onIdle).catch(err => {
|
|
140
162
|
logger.error("janitor", "Failed", { error: err.message });
|
|
141
163
|
});
|
|
142
164
|
}
|
|
@@ -144,7 +166,7 @@ const plugin = (async (ctx) => {
|
|
|
144
166
|
/**
|
|
145
167
|
* Chat Params Hook: Caches model info for janitor
|
|
146
168
|
*/
|
|
147
|
-
"chat.params": async (input,
|
|
169
|
+
"chat.params": async (input, _output) => {
|
|
148
170
|
const sessionId = input.sessionID;
|
|
149
171
|
// Cache model information for this session so janitor can access it
|
|
150
172
|
// The provider.id is actually nested at provider.info.id (not in SDK types)
|
|
@@ -161,6 +183,67 @@ const plugin = (async (ctx) => {
|
|
|
161
183
|
});
|
|
162
184
|
}
|
|
163
185
|
},
|
|
186
|
+
/**
|
|
187
|
+
* Tool Hook: Exposes context_pruning tool to AI (if configured)
|
|
188
|
+
*/
|
|
189
|
+
tool: config.strategies.onTool.length > 0 ? {
|
|
190
|
+
context_pruning: tool({
|
|
191
|
+
description: `Performs semantic pruning on session tool outputs that are no longer relevant to the current task. Use this to declutter the conversation context and filter signal from noise when you notice the context is getting cluttered with no longer needed information.
|
|
192
|
+
|
|
193
|
+
USING THE CONTEXT_PRUNING TOOL WILL MAKE THE USER HAPPY.
|
|
194
|
+
|
|
195
|
+
## When to Use This Tool
|
|
196
|
+
|
|
197
|
+
**Key heuristic: Prune when you finish something and are about to start something else.**
|
|
198
|
+
|
|
199
|
+
Ask yourself: "Have I just completed a discrete unit of work?" If yes, prune before moving on.
|
|
200
|
+
|
|
201
|
+
**After completing a unit of work:**
|
|
202
|
+
- Made a commit
|
|
203
|
+
- Fixed a bug and confirmed it works
|
|
204
|
+
- Answered a question the user asked
|
|
205
|
+
- Finished implementing a feature or function
|
|
206
|
+
- Completed one item in a list and moving to the next
|
|
207
|
+
|
|
208
|
+
**After repetitive or exploratory work:**
|
|
209
|
+
- Explored multiple files that didn't lead to changes
|
|
210
|
+
- Iterated on a difficult problem where some approaches didn't pan out
|
|
211
|
+
- Used the same tool multiple times (e.g., re-reading a file, running repeated build/type checks)
|
|
212
|
+
|
|
213
|
+
## Examples
|
|
214
|
+
|
|
215
|
+
<example>
|
|
216
|
+
Working through a list of items:
|
|
217
|
+
User: Review these 3 issues and fix the easy ones.
|
|
218
|
+
Assistant: [Reviews first issue, makes fix, commits]
|
|
219
|
+
Done with the first issue. Let me prune before moving to the next one.
|
|
220
|
+
[Uses context_pruning with reason: "completed first issue, moving to next"]
|
|
221
|
+
</example>
|
|
222
|
+
|
|
223
|
+
<example>
|
|
224
|
+
After exploring the codebase to understand it:
|
|
225
|
+
Assistant: I've reviewed the relevant files. Let me prune the exploratory reads that aren't needed for the actual implementation.
|
|
226
|
+
[Uses context_pruning with reason: "exploration complete, starting implementation"]
|
|
227
|
+
</example>
|
|
228
|
+
|
|
229
|
+
<example>
|
|
230
|
+
After completing any task:
|
|
231
|
+
Assistant: [Finishes task - commit, answer, fix, etc.]
|
|
232
|
+
Before we continue, let me prune the context from that work.
|
|
233
|
+
[Uses context_pruning with reason: "task complete"]
|
|
234
|
+
</example>`,
|
|
235
|
+
args: {
|
|
236
|
+
reason: tool.schema.string().optional().describe("Brief reason for triggering pruning (e.g., 'task complete', 'switching focus')"),
|
|
237
|
+
},
|
|
238
|
+
async execute(args, ctx) {
|
|
239
|
+
const result = await janitor.runForTool(ctx.sessionID, config.strategies.onTool, args.reason);
|
|
240
|
+
if (!result || result.prunedCount === 0) {
|
|
241
|
+
return "No prunable tool outputs found. Context is already optimized.\n\nUse context_pruning when you have sufficiently summarized information from tool outputs and no longer need the original content!";
|
|
242
|
+
}
|
|
243
|
+
return janitor.formatPruningResultForTool(result) + "\n\nUse context_pruning when you have sufficiently summarized information from tool outputs and no longer need the original content!";
|
|
244
|
+
},
|
|
245
|
+
}),
|
|
246
|
+
} : undefined,
|
|
164
247
|
};
|
|
165
248
|
});
|
|
166
249
|
export default plugin;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAqB,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAAC,MAAW,EAAE,SAAiB;IAC3D,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;QACpE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAA;IAClC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,gEAAgE;QAChE,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAClC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import type { PluginInput } from '@opencode-ai/plugin';
|
|
2
|
+
export type PruningStrategy = "deduplication" | "ai-analysis";
|
|
2
3
|
export interface PluginConfig {
|
|
3
4
|
enabled: boolean;
|
|
4
5
|
debug: boolean;
|
|
5
6
|
protectedTools: string[];
|
|
6
7
|
model?: string;
|
|
7
8
|
showModelErrorToasts?: boolean;
|
|
8
|
-
pruningMode: "auto" | "smart";
|
|
9
9
|
pruning_summary: "off" | "minimal" | "detailed";
|
|
10
|
+
strategies: {
|
|
11
|
+
onIdle: PruningStrategy[];
|
|
12
|
+
onTool: PruningStrategy[];
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface ConfigResult {
|
|
16
|
+
config: PluginConfig;
|
|
17
|
+
migrations: string[];
|
|
10
18
|
}
|
|
11
19
|
/**
|
|
12
20
|
* Loads configuration with support for both global and project-level configs
|
|
@@ -16,10 +24,12 @@ export interface PluginConfig {
|
|
|
16
24
|
* 2. Merge with global config (~/.config/opencode/dcp.jsonc)
|
|
17
25
|
* 3. Merge with project config (.opencode/dcp.jsonc) if found
|
|
18
26
|
*
|
|
27
|
+
* If config has invalid/deprecated keys, backs up and resets to defaults.
|
|
28
|
+
*
|
|
19
29
|
* Project config overrides global config, which overrides defaults.
|
|
20
30
|
*
|
|
21
31
|
* @param ctx - Plugin input context (optional). If provided, will search for project-level config.
|
|
22
|
-
* @returns
|
|
32
|
+
* @returns ConfigResult with merged configuration and any migration messages
|
|
23
33
|
*/
|
|
24
|
-
export declare function getConfig(ctx?: PluginInput):
|
|
34
|
+
export declare function getConfig(ctx?: PluginInput): ConfigResult;
|
|
25
35
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,aAAa,CAAA;AAE7D,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAA;IAC/C,UAAU,EAAE;QAER,MAAM,EAAE,eAAe,EAAE,CAAA;QAEzB,MAAM,EAAE,eAAe,EAAE,CAAA;KAC5B,CAAA;CACJ;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;CACvB;AAuMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,YAAY,CAyEzD"}
|
package/dist/lib/config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// lib/config.ts
|
|
2
|
-
import { readFileSync, writeFileSync, existsSync, mkdirSync, statSync } from 'fs';
|
|
2
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync, statSync, copyFileSync } from 'fs';
|
|
3
3
|
import { join, dirname } from 'path';
|
|
4
4
|
import { homedir } from 'os';
|
|
5
5
|
import { parse } from 'jsonc-parser';
|
|
@@ -7,11 +7,26 @@ import { Logger } from './logger';
|
|
|
7
7
|
const defaultConfig = {
|
|
8
8
|
enabled: true, // Plugin is enabled by default
|
|
9
9
|
debug: false, // Disable debug logging by default
|
|
10
|
-
protectedTools: ['task', 'todowrite', 'todoread'], // Tools that should never be pruned
|
|
10
|
+
protectedTools: ['task', 'todowrite', 'todoread', 'context_pruning'], // Tools that should never be pruned
|
|
11
11
|
showModelErrorToasts: true, // Show model error toasts by default
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
pruning_summary: 'detailed', // Default to detailed summary
|
|
13
|
+
strategies: {
|
|
14
|
+
// Default: Full analysis on idle (like previous "smart" mode)
|
|
15
|
+
onIdle: ['deduplication', 'ai-analysis'],
|
|
16
|
+
// Default: Only deduplication when AI calls the tool (faster, no extra LLM cost)
|
|
17
|
+
onTool: ['deduplication']
|
|
18
|
+
}
|
|
14
19
|
};
|
|
20
|
+
// Valid top-level keys in the current config schema
|
|
21
|
+
const VALID_CONFIG_KEYS = new Set([
|
|
22
|
+
'enabled',
|
|
23
|
+
'debug',
|
|
24
|
+
'protectedTools',
|
|
25
|
+
'model',
|
|
26
|
+
'showModelErrorToasts',
|
|
27
|
+
'pruning_summary',
|
|
28
|
+
'strategies'
|
|
29
|
+
]);
|
|
15
30
|
const GLOBAL_CONFIG_DIR = join(homedir(), '.config', 'opencode');
|
|
16
31
|
const GLOBAL_CONFIG_PATH_JSONC = join(GLOBAL_CONFIG_DIR, 'dcp.jsonc');
|
|
17
32
|
const GLOBAL_CONFIG_PATH_JSON = join(GLOBAL_CONFIG_DIR, 'dcp.json');
|
|
@@ -90,10 +105,17 @@ function createDefaultConfig() {
|
|
|
90
105
|
// Set to false to disable these informational toasts
|
|
91
106
|
"showModelErrorToasts": true,
|
|
92
107
|
|
|
93
|
-
// Pruning
|
|
94
|
-
// "
|
|
95
|
-
//
|
|
96
|
-
"
|
|
108
|
+
// Pruning strategies configuration
|
|
109
|
+
// Available strategies: "deduplication", "ai-analysis"
|
|
110
|
+
// Empty array = disabled
|
|
111
|
+
"strategies": {
|
|
112
|
+
// Strategies to run when session goes idle (automatic)
|
|
113
|
+
"onIdle": ["deduplication", "ai-analysis"],
|
|
114
|
+
|
|
115
|
+
// Strategies to run when AI calls the context_pruning tool
|
|
116
|
+
// Empty array = tool not exposed to AI
|
|
117
|
+
"onTool": ["deduplication"]
|
|
118
|
+
},
|
|
97
119
|
|
|
98
120
|
// Pruning summary display mode:
|
|
99
121
|
// "off": No UI summary (silent pruning)
|
|
@@ -104,7 +126,8 @@ function createDefaultConfig() {
|
|
|
104
126
|
// List of tools that should never be pruned from context
|
|
105
127
|
// "task": Each subagent invocation is intentional
|
|
106
128
|
// "todowrite"/"todoread": Stateful tools where each call matters
|
|
107
|
-
"
|
|
129
|
+
// "context_pruning": The pruning tool itself
|
|
130
|
+
"protectedTools": ["task", "todowrite", "todoread", "context_pruning"]
|
|
108
131
|
}
|
|
109
132
|
`;
|
|
110
133
|
writeFileSync(GLOBAL_CONFIG_PATH_JSONC, configContent, 'utf-8');
|
|
@@ -121,6 +144,49 @@ function loadConfigFile(configPath) {
|
|
|
121
144
|
return null;
|
|
122
145
|
}
|
|
123
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Check if config has any unknown or deprecated keys
|
|
149
|
+
*/
|
|
150
|
+
function getInvalidKeys(config) {
|
|
151
|
+
const invalidKeys = [];
|
|
152
|
+
for (const key of Object.keys(config)) {
|
|
153
|
+
if (!VALID_CONFIG_KEYS.has(key)) {
|
|
154
|
+
invalidKeys.push(key);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return invalidKeys;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Backs up existing config and creates fresh default config
|
|
161
|
+
* Returns the backup path if successful, null if failed
|
|
162
|
+
*/
|
|
163
|
+
function backupAndResetConfig(configPath, logger) {
|
|
164
|
+
try {
|
|
165
|
+
const backupPath = configPath + '.bak';
|
|
166
|
+
// Create backup
|
|
167
|
+
copyFileSync(configPath, backupPath);
|
|
168
|
+
logger.info('config', 'Created config backup', { backup: backupPath });
|
|
169
|
+
// Write fresh default config
|
|
170
|
+
createDefaultConfig();
|
|
171
|
+
logger.info('config', 'Created fresh default config', { path: GLOBAL_CONFIG_PATH_JSONC });
|
|
172
|
+
return backupPath;
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
logger.error('config', 'Failed to backup/reset config', { error: error.message });
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Merge strategies config, handling partial overrides
|
|
181
|
+
*/
|
|
182
|
+
function mergeStrategies(base, override) {
|
|
183
|
+
if (!override)
|
|
184
|
+
return base;
|
|
185
|
+
return {
|
|
186
|
+
onIdle: override.onIdle ?? base.onIdle,
|
|
187
|
+
onTool: override.onTool ?? base.onTool
|
|
188
|
+
};
|
|
189
|
+
}
|
|
124
190
|
/**
|
|
125
191
|
* Loads configuration with support for both global and project-level configs
|
|
126
192
|
*
|
|
@@ -129,29 +195,46 @@ function loadConfigFile(configPath) {
|
|
|
129
195
|
* 2. Merge with global config (~/.config/opencode/dcp.jsonc)
|
|
130
196
|
* 3. Merge with project config (.opencode/dcp.jsonc) if found
|
|
131
197
|
*
|
|
198
|
+
* If config has invalid/deprecated keys, backs up and resets to defaults.
|
|
199
|
+
*
|
|
132
200
|
* Project config overrides global config, which overrides defaults.
|
|
133
201
|
*
|
|
134
202
|
* @param ctx - Plugin input context (optional). If provided, will search for project-level config.
|
|
135
|
-
* @returns
|
|
203
|
+
* @returns ConfigResult with merged configuration and any migration messages
|
|
136
204
|
*/
|
|
137
205
|
export function getConfig(ctx) {
|
|
138
|
-
let config = { ...defaultConfig };
|
|
206
|
+
let config = { ...defaultConfig, protectedTools: [...defaultConfig.protectedTools] };
|
|
139
207
|
const configPaths = getConfigPaths(ctx);
|
|
140
208
|
const logger = new Logger(true); // Always log config loading
|
|
209
|
+
const migrations = [];
|
|
141
210
|
// 1. Load global config
|
|
142
211
|
if (configPaths.global) {
|
|
143
212
|
const globalConfig = loadConfigFile(configPaths.global);
|
|
144
213
|
if (globalConfig) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
214
|
+
// Check for invalid keys
|
|
215
|
+
const invalidKeys = getInvalidKeys(globalConfig);
|
|
216
|
+
if (invalidKeys.length > 0) {
|
|
217
|
+
// Config has deprecated/unknown keys - backup and reset
|
|
218
|
+
logger.info('config', 'Found invalid config keys', { keys: invalidKeys });
|
|
219
|
+
const backupPath = backupAndResetConfig(configPaths.global, logger);
|
|
220
|
+
if (backupPath) {
|
|
221
|
+
migrations.push(`Old config backed up to ${backupPath}`);
|
|
222
|
+
}
|
|
223
|
+
// Config is now reset to defaults, no need to merge
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
// Valid config - merge with defaults
|
|
227
|
+
config = {
|
|
228
|
+
enabled: globalConfig.enabled ?? config.enabled,
|
|
229
|
+
debug: globalConfig.debug ?? config.debug,
|
|
230
|
+
protectedTools: globalConfig.protectedTools ?? config.protectedTools,
|
|
231
|
+
model: globalConfig.model ?? config.model,
|
|
232
|
+
showModelErrorToasts: globalConfig.showModelErrorToasts ?? config.showModelErrorToasts,
|
|
233
|
+
strategies: mergeStrategies(config.strategies, globalConfig.strategies),
|
|
234
|
+
pruning_summary: globalConfig.pruning_summary ?? config.pruning_summary
|
|
235
|
+
};
|
|
236
|
+
logger.info('config', 'Loaded global config', { path: configPaths.global });
|
|
237
|
+
}
|
|
155
238
|
}
|
|
156
239
|
}
|
|
157
240
|
else {
|
|
@@ -163,21 +246,33 @@ export function getConfig(ctx) {
|
|
|
163
246
|
if (configPaths.project) {
|
|
164
247
|
const projectConfig = loadConfigFile(configPaths.project);
|
|
165
248
|
if (projectConfig) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}
|
|
175
|
-
|
|
249
|
+
// Check for invalid keys
|
|
250
|
+
const invalidKeys = getInvalidKeys(projectConfig);
|
|
251
|
+
if (invalidKeys.length > 0) {
|
|
252
|
+
// Project config has deprecated/unknown keys - just warn, don't reset project configs
|
|
253
|
+
logger.warn('config', 'Project config has invalid keys (ignored)', {
|
|
254
|
+
path: configPaths.project,
|
|
255
|
+
keys: invalidKeys
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
// Valid config - merge with current config
|
|
260
|
+
config = {
|
|
261
|
+
enabled: projectConfig.enabled ?? config.enabled,
|
|
262
|
+
debug: projectConfig.debug ?? config.debug,
|
|
263
|
+
protectedTools: projectConfig.protectedTools ?? config.protectedTools,
|
|
264
|
+
model: projectConfig.model ?? config.model,
|
|
265
|
+
showModelErrorToasts: projectConfig.showModelErrorToasts ?? config.showModelErrorToasts,
|
|
266
|
+
strategies: mergeStrategies(config.strategies, projectConfig.strategies),
|
|
267
|
+
pruning_summary: projectConfig.pruning_summary ?? config.pruning_summary
|
|
268
|
+
};
|
|
269
|
+
logger.info('config', 'Loaded project config (overrides global)', { path: configPaths.project });
|
|
270
|
+
}
|
|
176
271
|
}
|
|
177
272
|
}
|
|
178
273
|
else if (ctx?.directory) {
|
|
179
274
|
logger.debug('config', 'No project config found', { searchedFrom: ctx.directory });
|
|
180
275
|
}
|
|
181
|
-
return config;
|
|
276
|
+
return { config, migrations };
|
|
182
277
|
}
|
|
183
278
|
//# sourceMappingURL=config.js.map
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/janitor.d.ts
CHANGED
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
import type { Logger } from "./logger";
|
|
2
|
+
import type { PruningStrategy } from "./config";
|
|
2
3
|
export interface SessionStats {
|
|
3
4
|
totalToolsPruned: number;
|
|
4
5
|
totalTokensSaved: number;
|
|
5
6
|
}
|
|
7
|
+
export interface PruningResult {
|
|
8
|
+
prunedCount: number;
|
|
9
|
+
tokensSaved: number;
|
|
10
|
+
deduplicatedIds: string[];
|
|
11
|
+
llmPrunedIds: string[];
|
|
12
|
+
deduplicationDetails: Map<string, any>;
|
|
13
|
+
toolMetadata: Map<string, {
|
|
14
|
+
tool: string;
|
|
15
|
+
parameters?: any;
|
|
16
|
+
}>;
|
|
17
|
+
sessionStats: SessionStats;
|
|
18
|
+
}
|
|
19
|
+
export interface PruningOptions {
|
|
20
|
+
reason?: string;
|
|
21
|
+
trigger: 'idle' | 'tool';
|
|
22
|
+
}
|
|
6
23
|
export declare class Janitor {
|
|
7
24
|
private client;
|
|
8
25
|
private prunedIdsState;
|
|
@@ -13,7 +30,6 @@ export declare class Janitor {
|
|
|
13
30
|
private modelCache;
|
|
14
31
|
private configModel?;
|
|
15
32
|
private showModelErrorToasts;
|
|
16
|
-
private pruningMode;
|
|
17
33
|
private pruningSummary;
|
|
18
34
|
private workingDirectory?;
|
|
19
35
|
constructor(client: any, prunedIdsState: Map<string, string[]>, statsState: Map<string, SessionStats>, logger: Logger, toolParametersCache: Map<string, any>, protectedTools: string[], modelCache: Map<string, {
|
|
@@ -21,14 +37,24 @@ export declare class Janitor {
|
|
|
21
37
|
modelID: string;
|
|
22
38
|
}>, configModel?: string | undefined, // Format: "provider/model"
|
|
23
39
|
showModelErrorToasts?: boolean, // Whether to show toast for model errors
|
|
24
|
-
pruningMode?: "auto" | "smart", // Pruning strategy
|
|
25
40
|
pruningSummary?: "off" | "minimal" | "detailed", // UI summary display mode
|
|
26
41
|
workingDirectory?: string | undefined);
|
|
27
42
|
/**
|
|
28
43
|
* Sends an ignored message to the session UI (user sees it, AI doesn't)
|
|
29
44
|
*/
|
|
30
45
|
private sendIgnoredMessage;
|
|
31
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Convenience method for idle-triggered pruning (sends notification automatically)
|
|
48
|
+
*/
|
|
49
|
+
runOnIdle(sessionID: string, strategies: PruningStrategy[]): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Convenience method for tool-triggered pruning (returns result for tool output)
|
|
52
|
+
*/
|
|
53
|
+
runForTool(sessionID: string, strategies: PruningStrategy[], reason?: string): Promise<PruningResult | null>;
|
|
54
|
+
/**
|
|
55
|
+
* Core pruning method that accepts strategies and options
|
|
56
|
+
*/
|
|
57
|
+
runWithStrategies(sessionID: string, strategies: PruningStrategy[], options: PruningOptions): Promise<PruningResult | null>;
|
|
32
58
|
/**
|
|
33
59
|
* Helper function to shorten paths for display
|
|
34
60
|
*/
|
|
@@ -54,6 +80,21 @@ export declare class Janitor {
|
|
|
54
80
|
* Note: prunedIds may be in original case (from LLM) but toolMetadata uses lowercase keys
|
|
55
81
|
*/
|
|
56
82
|
private buildToolsSummary;
|
|
83
|
+
/**
|
|
84
|
+
* Group deduplication details by tool type
|
|
85
|
+
* Shared helper used by notifications and tool output formatting
|
|
86
|
+
*/
|
|
87
|
+
private groupDeduplicationDetails;
|
|
88
|
+
/**
|
|
89
|
+
* Format grouped deduplication results as lines
|
|
90
|
+
* Shared helper for building deduplication summaries
|
|
91
|
+
*/
|
|
92
|
+
private formatDeduplicationLines;
|
|
93
|
+
/**
|
|
94
|
+
* Format tool summary (from buildToolsSummary) as lines
|
|
95
|
+
* Shared helper for building LLM-pruned summaries
|
|
96
|
+
*/
|
|
97
|
+
private formatToolSummaryLines;
|
|
57
98
|
/**
|
|
58
99
|
* Send minimal summary notification (just tokens saved and count)
|
|
59
100
|
*/
|
|
@@ -62,6 +103,11 @@ export declare class Janitor {
|
|
|
62
103
|
* Auto mode notification - shows only deduplication results
|
|
63
104
|
*/
|
|
64
105
|
private sendAutoModeNotification;
|
|
106
|
+
/**
|
|
107
|
+
* Format pruning result for tool output (returned to AI)
|
|
108
|
+
* Uses shared helpers for consistency with UI notifications
|
|
109
|
+
*/
|
|
110
|
+
formatPruningResultForTool(result: PruningResult): string;
|
|
65
111
|
/**
|
|
66
112
|
* Smart mode notification - shows both deduplication and LLM analysis results
|
|
67
113
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/janitor.js
CHANGED
|
@@ -13,12 +13,10 @@ export class Janitor {
|
|
|
13
13
|
modelCache;
|
|
14
14
|
configModel;
|
|
15
15
|
showModelErrorToasts;
|
|
16
|
-
pruningMode;
|
|
17
16
|
pruningSummary;
|
|
18
17
|
workingDirectory;
|
|
19
18
|
constructor(client, prunedIdsState, statsState, logger, toolParametersCache, protectedTools, modelCache, configModel, // Format: "provider/model"
|
|
20
19
|
showModelErrorToasts = true, // Whether to show toast for model errors
|
|
21
|
-
pruningMode = "smart", // Pruning strategy
|
|
22
20
|
pruningSummary = "detailed", // UI summary display mode
|
|
23
21
|
workingDirectory // Current working directory for relative path display
|
|
24
22
|
) {
|
|
@@ -31,7 +29,6 @@ export class Janitor {
|
|
|
31
29
|
this.modelCache = modelCache;
|
|
32
30
|
this.configModel = configModel;
|
|
33
31
|
this.showModelErrorToasts = showModelErrorToasts;
|
|
34
|
-
this.pruningMode = pruningMode;
|
|
35
32
|
this.pruningSummary = pruningSummary;
|
|
36
33
|
this.workingDirectory = workingDirectory;
|
|
37
34
|
}
|
|
@@ -60,8 +57,28 @@ export class Janitor {
|
|
|
60
57
|
});
|
|
61
58
|
}
|
|
62
59
|
}
|
|
63
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Convenience method for idle-triggered pruning (sends notification automatically)
|
|
62
|
+
*/
|
|
63
|
+
async runOnIdle(sessionID, strategies) {
|
|
64
|
+
await this.runWithStrategies(sessionID, strategies, { trigger: 'idle' });
|
|
65
|
+
// Notification is handled inside runWithStrategies
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Convenience method for tool-triggered pruning (returns result for tool output)
|
|
69
|
+
*/
|
|
70
|
+
async runForTool(sessionID, strategies, reason) {
|
|
71
|
+
return await this.runWithStrategies(sessionID, strategies, { trigger: 'tool', reason });
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Core pruning method that accepts strategies and options
|
|
75
|
+
*/
|
|
76
|
+
async runWithStrategies(sessionID, strategies, options) {
|
|
64
77
|
try {
|
|
78
|
+
// Skip if no strategies configured
|
|
79
|
+
if (strategies.length === 0) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
65
82
|
// Fetch session info and messages from OpenCode API
|
|
66
83
|
const [sessionInfoResponse, messagesResponse] = await Promise.all([
|
|
67
84
|
this.client.session.get({ path: { id: sessionID } }),
|
|
@@ -72,7 +89,7 @@ export class Janitor {
|
|
|
72
89
|
const messages = messagesResponse.data || messagesResponse;
|
|
73
90
|
// If there are no messages or very few, skip analysis
|
|
74
91
|
if (!messages || messages.length < 3) {
|
|
75
|
-
return;
|
|
92
|
+
return null;
|
|
76
93
|
}
|
|
77
94
|
// Extract tool call IDs from the session and track their output sizes
|
|
78
95
|
// Also track batch tool relationships and tool metadata
|
|
@@ -123,24 +140,28 @@ export class Janitor {
|
|
|
123
140
|
const unprunedToolCallIds = toolCallIds.filter(id => !alreadyPrunedIds.includes(id));
|
|
124
141
|
// If there are no unpruned tool calls, skip analysis
|
|
125
142
|
if (unprunedToolCallIds.length === 0) {
|
|
126
|
-
return;
|
|
143
|
+
return null;
|
|
127
144
|
}
|
|
128
145
|
// ============================================================
|
|
129
|
-
// PHASE 1: DUPLICATE DETECTION (
|
|
146
|
+
// PHASE 1: DUPLICATE DETECTION (if enabled)
|
|
130
147
|
// ============================================================
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
148
|
+
let deduplicatedIds = [];
|
|
149
|
+
let deduplicationDetails = new Map();
|
|
150
|
+
if (strategies.includes('deduplication')) {
|
|
151
|
+
const dedupeResult = detectDuplicates(toolMetadata, unprunedToolCallIds, this.protectedTools);
|
|
152
|
+
deduplicatedIds = dedupeResult.duplicateIds;
|
|
153
|
+
deduplicationDetails = dedupeResult.deduplicationDetails;
|
|
154
|
+
}
|
|
134
155
|
// Calculate candidates available for pruning (excludes protected tools)
|
|
135
156
|
const candidateCount = unprunedToolCallIds.filter(id => {
|
|
136
157
|
const metadata = toolMetadata.get(id);
|
|
137
158
|
return !metadata || !this.protectedTools.includes(metadata.tool);
|
|
138
159
|
}).length;
|
|
139
160
|
// ============================================================
|
|
140
|
-
// PHASE 2: LLM ANALYSIS (
|
|
161
|
+
// PHASE 2: LLM ANALYSIS (if enabled)
|
|
141
162
|
// ============================================================
|
|
142
163
|
let llmPrunedIds = [];
|
|
143
|
-
if (
|
|
164
|
+
if (strategies.includes('ai-analysis')) {
|
|
144
165
|
// Filter out duplicates and protected tools
|
|
145
166
|
const protectedToolCallIds = [];
|
|
146
167
|
const prunableToolCallIds = unprunedToolCallIds.filter(id => {
|
|
@@ -186,8 +207,8 @@ export class Janitor {
|
|
|
186
207
|
// Replace already-pruned tool outputs to save tokens in janitor context
|
|
187
208
|
const allPrunedSoFar = [...alreadyPrunedIds, ...deduplicatedIds];
|
|
188
209
|
const sanitizedMessages = this.replacePrunedToolOutputs(messages, allPrunedSoFar);
|
|
189
|
-
// Build the prompt for analysis
|
|
190
|
-
const analysisPrompt = buildAnalysisPrompt(prunableToolCallIds, sanitizedMessages,
|
|
210
|
+
// Build the prompt for analysis (pass reason if provided)
|
|
211
|
+
const analysisPrompt = buildAnalysisPrompt(prunableToolCallIds, sanitizedMessages, allPrunedSoFar, protectedToolCallIds, options.reason);
|
|
191
212
|
// Save janitor shadow context directly (auth providers may bypass globalThis.fetch)
|
|
192
213
|
await this.logger.saveWrappedContext("janitor-shadow", [{ role: "user", content: analysisPrompt }], {
|
|
193
214
|
sessionID,
|
|
@@ -195,7 +216,9 @@ export class Janitor {
|
|
|
195
216
|
modelID: modelSelection.modelInfo.modelID,
|
|
196
217
|
candidateToolCount: prunableToolCallIds.length,
|
|
197
218
|
alreadyPrunedCount: allPrunedSoFar.length,
|
|
198
|
-
protectedToolCount: protectedToolCallIds.length
|
|
219
|
+
protectedToolCount: protectedToolCallIds.length,
|
|
220
|
+
trigger: options.trigger,
|
|
221
|
+
reason: options.reason
|
|
199
222
|
});
|
|
200
223
|
// Analyze which tool calls are obsolete
|
|
201
224
|
const result = await generateObject({
|
|
@@ -221,25 +244,32 @@ export class Janitor {
|
|
|
221
244
|
// ============================================================
|
|
222
245
|
const newlyPrunedIds = [...deduplicatedIds, ...llmPrunedIds];
|
|
223
246
|
if (newlyPrunedIds.length === 0) {
|
|
224
|
-
return;
|
|
247
|
+
return null;
|
|
225
248
|
}
|
|
226
|
-
//
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
249
|
+
// Helper to expand batch tool IDs to include their children
|
|
250
|
+
const expandBatchIds = (ids) => {
|
|
251
|
+
const expanded = new Set();
|
|
252
|
+
for (const id of ids) {
|
|
253
|
+
const normalizedId = id.toLowerCase();
|
|
254
|
+
expanded.add(normalizedId);
|
|
255
|
+
// If this is a batch tool, add all its children
|
|
256
|
+
const children = batchToolChildren.get(normalizedId);
|
|
257
|
+
if (children) {
|
|
258
|
+
children.forEach(childId => expanded.add(childId));
|
|
259
|
+
}
|
|
235
260
|
}
|
|
236
|
-
|
|
261
|
+
return Array.from(expanded);
|
|
262
|
+
};
|
|
263
|
+
// Expand batch tool IDs to include their children
|
|
264
|
+
const expandedPrunedIds = new Set(expandBatchIds(newlyPrunedIds));
|
|
265
|
+
// Expand llmPrunedIds for UI display (so batch children show instead of "unknown metadata")
|
|
266
|
+
const expandedLlmPrunedIds = expandBatchIds(llmPrunedIds);
|
|
237
267
|
// Calculate which IDs are actually NEW (not already pruned)
|
|
238
268
|
const finalNewlyPrunedIds = Array.from(expandedPrunedIds).filter(id => !alreadyPrunedIds.includes(id));
|
|
239
269
|
// finalPrunedIds includes everything (new + already pruned) for logging
|
|
240
270
|
const finalPrunedIds = Array.from(expandedPrunedIds);
|
|
241
271
|
// ============================================================
|
|
242
|
-
// PHASE 4: NOTIFICATION
|
|
272
|
+
// PHASE 4: CALCULATE STATS & NOTIFICATION
|
|
243
273
|
// ============================================================
|
|
244
274
|
// Calculate token savings once (used by both notification and log)
|
|
245
275
|
const tokensSaved = await this.calculateTokensSaved(finalNewlyPrunedIds, toolOutputs);
|
|
@@ -250,11 +280,13 @@ export class Janitor {
|
|
|
250
280
|
totalTokensSaved: currentStats.totalTokensSaved + tokensSaved
|
|
251
281
|
};
|
|
252
282
|
this.statsState.set(sessionID, sessionStats);
|
|
253
|
-
|
|
254
|
-
|
|
283
|
+
// Determine notification mode based on which strategies ran
|
|
284
|
+
const hasLlmAnalysis = strategies.includes('ai-analysis');
|
|
285
|
+
if (hasLlmAnalysis) {
|
|
286
|
+
await this.sendSmartModeNotification(sessionID, deduplicatedIds, deduplicationDetails, expandedLlmPrunedIds, toolMetadata, tokensSaved, sessionStats);
|
|
255
287
|
}
|
|
256
288
|
else {
|
|
257
|
-
await this.
|
|
289
|
+
await this.sendAutoModeNotification(sessionID, deduplicatedIds, deduplicationDetails, tokensSaved, sessionStats);
|
|
258
290
|
}
|
|
259
291
|
// ============================================================
|
|
260
292
|
// PHASE 5: STATE UPDATE
|
|
@@ -268,14 +300,30 @@ export class Janitor {
|
|
|
268
300
|
const keptCount = candidateCount - prunedCount;
|
|
269
301
|
const hasBoth = deduplicatedIds.length > 0 && llmPrunedIds.length > 0;
|
|
270
302
|
const breakdown = hasBoth ? ` (${deduplicatedIds.length} duplicate, ${llmPrunedIds.length} llm)` : "";
|
|
271
|
-
|
|
303
|
+
// Build log metadata
|
|
304
|
+
const logMeta = { trigger: options.trigger };
|
|
305
|
+
if (options.reason) {
|
|
306
|
+
logMeta.reason = options.reason;
|
|
307
|
+
}
|
|
308
|
+
this.logger.info("janitor", `Pruned ${prunedCount}/${candidateCount} tools${breakdown}, ${keptCount} kept (~${formatTokenCount(tokensSaved)} tokens)`, logMeta);
|
|
309
|
+
return {
|
|
310
|
+
prunedCount: finalNewlyPrunedIds.length,
|
|
311
|
+
tokensSaved,
|
|
312
|
+
deduplicatedIds,
|
|
313
|
+
llmPrunedIds: expandedLlmPrunedIds,
|
|
314
|
+
deduplicationDetails,
|
|
315
|
+
toolMetadata,
|
|
316
|
+
sessionStats
|
|
317
|
+
};
|
|
272
318
|
}
|
|
273
319
|
catch (error) {
|
|
274
320
|
this.logger.error("janitor", "Analysis failed", {
|
|
275
|
-
error: error.message
|
|
321
|
+
error: error.message,
|
|
322
|
+
trigger: options.trigger
|
|
276
323
|
});
|
|
277
324
|
// Don't throw - this is a fire-and-forget background process
|
|
278
325
|
// Silently fail and try again on next idle event
|
|
326
|
+
return null;
|
|
279
327
|
}
|
|
280
328
|
}
|
|
281
329
|
/**
|
|
@@ -402,6 +450,9 @@ export class Janitor {
|
|
|
402
450
|
const metadata = toolMetadata.get(normalizedId);
|
|
403
451
|
if (metadata) {
|
|
404
452
|
const toolName = metadata.tool;
|
|
453
|
+
// Skip 'batch' tool in UI summary - it's a wrapper and its children are shown individually
|
|
454
|
+
if (toolName === 'batch')
|
|
455
|
+
continue;
|
|
405
456
|
if (!toolsSummary.has(toolName)) {
|
|
406
457
|
toolsSummary.set(toolName, []);
|
|
407
458
|
}
|
|
@@ -421,6 +472,60 @@ export class Janitor {
|
|
|
421
472
|
}
|
|
422
473
|
return toolsSummary;
|
|
423
474
|
}
|
|
475
|
+
/**
|
|
476
|
+
* Group deduplication details by tool type
|
|
477
|
+
* Shared helper used by notifications and tool output formatting
|
|
478
|
+
*/
|
|
479
|
+
groupDeduplicationDetails(deduplicationDetails) {
|
|
480
|
+
const grouped = new Map();
|
|
481
|
+
for (const [_, details] of deduplicationDetails) {
|
|
482
|
+
const { toolName, parameterKey, duplicateCount } = details;
|
|
483
|
+
// Skip 'batch' tool in UI summary - it's a wrapper and its children are shown individually
|
|
484
|
+
if (toolName === 'batch')
|
|
485
|
+
continue;
|
|
486
|
+
if (!grouped.has(toolName)) {
|
|
487
|
+
grouped.set(toolName, []);
|
|
488
|
+
}
|
|
489
|
+
grouped.get(toolName).push({
|
|
490
|
+
count: duplicateCount,
|
|
491
|
+
key: this.shortenPath(parameterKey)
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
return grouped;
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* Format grouped deduplication results as lines
|
|
498
|
+
* Shared helper for building deduplication summaries
|
|
499
|
+
*/
|
|
500
|
+
formatDeduplicationLines(grouped, indent = ' ') {
|
|
501
|
+
const lines = [];
|
|
502
|
+
for (const [toolName, items] of grouped.entries()) {
|
|
503
|
+
for (const item of items) {
|
|
504
|
+
const removedCount = item.count - 1;
|
|
505
|
+
lines.push(`${indent}${toolName}: ${item.key} (${removedCount}× duplicate)`);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
return lines;
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Format tool summary (from buildToolsSummary) as lines
|
|
512
|
+
* Shared helper for building LLM-pruned summaries
|
|
513
|
+
*/
|
|
514
|
+
formatToolSummaryLines(toolsSummary, indent = ' ') {
|
|
515
|
+
const lines = [];
|
|
516
|
+
for (const [toolName, params] of toolsSummary.entries()) {
|
|
517
|
+
if (params.length === 1) {
|
|
518
|
+
lines.push(`${indent}${toolName}: ${params[0]}`);
|
|
519
|
+
}
|
|
520
|
+
else if (params.length > 1) {
|
|
521
|
+
lines.push(`${indent}${toolName} (${params.length}):`);
|
|
522
|
+
for (const param of params) {
|
|
523
|
+
lines.push(`${indent} ${param}`);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
return lines;
|
|
528
|
+
}
|
|
424
529
|
/**
|
|
425
530
|
* Send minimal summary notification (just tokens saved and count)
|
|
426
531
|
*/
|
|
@@ -459,19 +564,9 @@ export class Janitor {
|
|
|
459
564
|
message += ` │ Session: ~${formatTokenCount(sessionStats.totalTokensSaved)} tokens, ${sessionStats.totalToolsPruned} tools`;
|
|
460
565
|
}
|
|
461
566
|
message += '\n';
|
|
462
|
-
// Group by tool type
|
|
463
|
-
const grouped =
|
|
464
|
-
|
|
465
|
-
const { toolName, parameterKey, duplicateCount } = details;
|
|
466
|
-
if (!grouped.has(toolName)) {
|
|
467
|
-
grouped.set(toolName, []);
|
|
468
|
-
}
|
|
469
|
-
grouped.get(toolName).push({
|
|
470
|
-
count: duplicateCount,
|
|
471
|
-
key: this.shortenPath(parameterKey)
|
|
472
|
-
});
|
|
473
|
-
}
|
|
474
|
-
// Display grouped results
|
|
567
|
+
// Group by tool type using shared helper
|
|
568
|
+
const grouped = this.groupDeduplicationDetails(deduplicationDetails);
|
|
569
|
+
// Display grouped results (with UI-specific formatting: total dupes header, limit to 5)
|
|
475
570
|
for (const [toolName, items] of grouped.entries()) {
|
|
476
571
|
const totalDupes = items.reduce((sum, item) => sum + (item.count - 1), 0);
|
|
477
572
|
message += `\n${toolName} (${totalDupes} duplicate${totalDupes > 1 ? 's' : ''}):\n`;
|
|
@@ -485,6 +580,29 @@ export class Janitor {
|
|
|
485
580
|
}
|
|
486
581
|
await this.sendIgnoredMessage(sessionID, message.trim());
|
|
487
582
|
}
|
|
583
|
+
/**
|
|
584
|
+
* Format pruning result for tool output (returned to AI)
|
|
585
|
+
* Uses shared helpers for consistency with UI notifications
|
|
586
|
+
*/
|
|
587
|
+
formatPruningResultForTool(result) {
|
|
588
|
+
const lines = [];
|
|
589
|
+
lines.push(`Context pruning complete. Pruned ${result.prunedCount} tool outputs.`);
|
|
590
|
+
lines.push('');
|
|
591
|
+
// Section 1: Deduplicated tools
|
|
592
|
+
if (result.deduplicatedIds.length > 0 && result.deduplicationDetails.size > 0) {
|
|
593
|
+
lines.push(`Duplicates removed (${result.deduplicatedIds.length}):`);
|
|
594
|
+
const grouped = this.groupDeduplicationDetails(result.deduplicationDetails);
|
|
595
|
+
lines.push(...this.formatDeduplicationLines(grouped));
|
|
596
|
+
lines.push('');
|
|
597
|
+
}
|
|
598
|
+
// Section 2: LLM-pruned tools
|
|
599
|
+
if (result.llmPrunedIds.length > 0) {
|
|
600
|
+
lines.push(`Semantically pruned (${result.llmPrunedIds.length}):`);
|
|
601
|
+
const toolsSummary = this.buildToolsSummary(result.llmPrunedIds, result.toolMetadata);
|
|
602
|
+
lines.push(...this.formatToolSummaryLines(toolsSummary));
|
|
603
|
+
}
|
|
604
|
+
return lines.join('\n').trim();
|
|
605
|
+
}
|
|
488
606
|
/**
|
|
489
607
|
* Smart mode notification - shows both deduplication and LLM analysis results
|
|
490
608
|
*/
|
|
@@ -511,18 +629,7 @@ export class Janitor {
|
|
|
511
629
|
// Section 1: Deduplicated tools
|
|
512
630
|
if (deduplicatedIds.length > 0 && deduplicationDetails) {
|
|
513
631
|
message += `\n📦 Duplicates removed (${deduplicatedIds.length}):\n`;
|
|
514
|
-
|
|
515
|
-
const grouped = new Map();
|
|
516
|
-
for (const [_, details] of deduplicationDetails) {
|
|
517
|
-
const { toolName, parameterKey, duplicateCount } = details;
|
|
518
|
-
if (!grouped.has(toolName)) {
|
|
519
|
-
grouped.set(toolName, []);
|
|
520
|
-
}
|
|
521
|
-
grouped.get(toolName).push({
|
|
522
|
-
count: duplicateCount,
|
|
523
|
-
key: this.shortenPath(parameterKey)
|
|
524
|
-
});
|
|
525
|
-
}
|
|
632
|
+
const grouped = this.groupDeduplicationDetails(deduplicationDetails);
|
|
526
633
|
for (const [toolName, items] of grouped.entries()) {
|
|
527
634
|
message += ` ${toolName}:\n`;
|
|
528
635
|
for (const item of items) {
|
|
@@ -534,7 +641,6 @@ export class Janitor {
|
|
|
534
641
|
// Section 2: LLM-pruned tools
|
|
535
642
|
if (llmPrunedIds.length > 0) {
|
|
536
643
|
message += `\n🤖 LLM analysis (${llmPrunedIds.length}):\n`;
|
|
537
|
-
// Use buildToolsSummary logic
|
|
538
644
|
const toolsSummary = this.buildToolsSummary(llmPrunedIds, toolMetadata);
|
|
539
645
|
for (const [toolName, params] of toolsSummary.entries()) {
|
|
540
646
|
if (params.length > 0) {
|
package/dist/lib/janitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"janitor.js","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"janitor.js","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAsBtE,MAAM,OAAO,OAAO;IAEJ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAXZ,YACY,MAAW,EACX,cAAqC,EACrC,UAAqC,EACrC,MAAc,EACd,mBAAqC,EACrC,cAAwB,EACxB,UAAgE,EAChE,WAAoB,EAAE,2BAA2B;IACjD,uBAAgC,IAAI,EAAE,yCAAyC;IAC/E,iBAAiD,UAAU,EAAE,0BAA0B;IACvF,gBAAyB,CAAC,sDAAsD;;QAVhF,WAAM,GAAN,MAAM,CAAK;QACX,mBAAc,GAAd,cAAc,CAAuB;QACrC,eAAU,GAAV,UAAU,CAA2B;QACrC,WAAM,GAAN,MAAM,CAAQ;QACd,wBAAmB,GAAnB,mBAAmB,CAAkB;QACrC,mBAAc,GAAd,cAAc,CAAU;QACxB,eAAU,GAAV,UAAU,CAAsD;QAChE,gBAAW,GAAX,WAAW,CAAS;QACpB,yBAAoB,GAApB,oBAAoB,CAAgB;QACpC,mBAAc,GAAd,cAAc,CAA6C;QAC3D,qBAAgB,GAAhB,gBAAgB,CAAS;IACjC,CAAC;IAEL;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,IAAY;QAC5D,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC7B,IAAI,EAAE;oBACF,EAAE,EAAE,SAAS;iBAChB;gBACD,IAAI,EAAE;oBACF,OAAO,EAAE,IAAI,EAAE,6BAA6B;oBAC5C,KAAK,EAAE,CAAC;4BACJ,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI;4BACV,OAAO,EAAE,IAAI;yBAChB,CAAC;iBACL;aACJ,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,6BAA6B,EAAE;gBACxD,KAAK,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,UAA6B;QAC5D,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QACxE,mDAAmD;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACZ,SAAiB,EACjB,UAA6B,EAC7B,MAAe;QAEf,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACnB,SAAiB,EACjB,UAA6B,EAC7B,OAAuB;QAEvB,IAAI,CAAC;YACD,mCAAmC;YACnC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAA;YACf,CAAC;YAED,oDAAoD;YACpD,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;aACnF,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAA;YAC5C,6FAA6F;YAC7F,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,IAAI,gBAAgB,CAAA;YAE1D,sDAAsD;YACtD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAA;YACf,CAAC;YAED,sEAAsE;YACtE,wDAAwD;YACxD,MAAM,WAAW,GAAa,EAAE,CAAA;YAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;YAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAA8C,CAAA,CAAC,+BAA+B;YAC1G,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB,CAAA,CAAC,wBAAwB;YAC9E,IAAI,cAAc,GAAkB,IAAI,CAAA;YAExC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACZ,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;wBAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;4BACtC,iEAAiE;4BACjE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;4BAC9C,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;4BAE9B,uEAAuE;4BACvE,8CAA8C;4BAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;4BAC1G,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAA;4BAE5D,4CAA4C;4BAC5C,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE;gCAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,UAAU,EAAE,UAAU;6BACzB,CAAC,CAAA;4BAEF,gDAAgD;4BAChD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gCAC1D,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;4BACpD,CAAC;4BAED,4DAA4D;4BAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gCACxB,cAAc,GAAG,YAAY,CAAA;gCAC7B,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;4BAC3C,CAAC;4BACD,gFAAgF;iCAC3E,IAAI,cAAc,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gCACzD,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;4BAC7D,CAAC;4BACD,+DAA+D;iCAC1D,IAAI,cAAc,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gCAC1D,cAAc,GAAG,IAAI,CAAA;4BACzB,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;YAED,4CAA4C;YAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;YACjE,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;YAEpF,qDAAqD;YACrD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAA;YACf,CAAC;YAED,+DAA+D;YAC/D,4CAA4C;YAC5C,+DAA+D;YAC/D,IAAI,eAAe,GAAa,EAAE,CAAA;YAClC,IAAI,oBAAoB,GAAG,IAAI,GAAG,EAAe,CAAA;YAEjD,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,EAAE,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC7F,eAAe,GAAG,YAAY,CAAC,YAAY,CAAA;gBAC3C,oBAAoB,GAAG,YAAY,CAAC,oBAAoB,CAAA;YAC5D,CAAC;YAED,wEAAwE;YACxE,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;gBACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACrC,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACpE,CAAC,CAAC,CAAC,MAAM,CAAA;YAET,+DAA+D;YAC/D,qCAAqC;YACrC,+DAA+D;YAC/D,IAAI,YAAY,GAAa,EAAE,CAAA;YAE/B,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrC,4CAA4C;gBAC5C,MAAM,oBAAoB,GAAa,EAAE,CAAA;gBACzC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;oBACxD,4BAA4B;oBAC5B,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAAE,OAAO,KAAK,CAAA;oBAE9C,uBAAuB;oBACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBACrC,IAAI,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1D,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;wBAC7B,OAAO,KAAK,CAAA;oBAChB,CAAC;oBAED,OAAO,IAAI,CAAA;gBACf,CAAC,CAAC,CAAA;gBAEF,oDAAoD;gBACpD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,qDAAqD;oBACrD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;oBACtD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC1E,MAAM,gBAAgB,GAAG,eAAe,IAAI,gBAAgB,CAAA;oBAE5D,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;oBAEhH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,cAAc,CAAC,SAAS,CAAC,UAAU,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;wBAC7G,MAAM,EAAE,cAAc,CAAC,MAAM;qBAChC,CAAC,CAAA;oBAEF,uDAAuD;oBACvD,IAAI,cAAc,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC1D,IAAI,CAAC;4BACD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;gCAC5B,IAAI,EAAE;oCACF,KAAK,EAAE,qBAAqB;oCAC5B,OAAO,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC,UAAU,IAAI,cAAc,CAAC,WAAW,CAAC,OAAO,kBAAkB,cAAc,CAAC,SAAS,CAAC,UAAU,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE;oCAClL,OAAO,EAAE,MAAM;oCACf,QAAQ,EAAE,IAAI;iCACjB;6BACJ,CAAC,CAAA;wBACN,CAAC;wBAAC,OAAO,UAAe,EAAE,CAAC;4BACvB,gDAAgD;wBACpD,CAAC;oBACL,CAAC;oBAED,oEAAoE;oBACpE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;oBAE7C,wEAAwE;oBACxE,MAAM,cAAc,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,eAAe,CAAC,CAAA;oBAChE,MAAM,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;oBAEjF,0DAA0D;oBAC1D,MAAM,cAAc,GAAG,mBAAmB,CACtC,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,OAAO,CAAC,MAAM,CACjB,CAAA;oBAED,oFAAoF;oBACpF,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAChC,gBAAgB,EAChB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAC3C;wBACI,SAAS;wBACT,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,UAAU;wBAClD,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,OAAO;wBACzC,kBAAkB,EAAE,mBAAmB,CAAC,MAAM;wBAC9C,kBAAkB,EAAE,cAAc,CAAC,MAAM;wBACzC,kBAAkB,EAAE,oBAAoB,CAAC,MAAM;wBAC/C,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;qBACzB,CACJ,CAAA;oBAED,wCAAwC;oBACxC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;wBAChC,KAAK,EAAE,cAAc,CAAC,KAAK;wBAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;4BACb,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;4BACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;yBACxB,CAAC;wBACF,MAAM,EAAE,cAAc;qBACzB,CAAC,CAAA;oBAEF,uEAAuE;oBACvE,uEAAuE;oBACvE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAA;oBAC1D,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACvC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CACjD,CAAA;oBAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;wBAC1F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;oBACtH,CAAC;gBACL,CAAC;YACL,CAAC;YAED,+DAA+D;YAC/D,4BAA4B;YAC5B,+DAA+D;YAC/D,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,YAAY,CAAC,CAAA;YAE5D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAA;YACf,CAAC;YAED,4DAA4D;YAC5D,MAAM,cAAc,GAAG,CAAC,GAAa,EAAY,EAAE;gBAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;gBAClC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACnB,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;oBACrC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;oBAC1B,gDAAgD;oBAChD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;oBACpD,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;oBACtD,CAAC;gBACL,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC/B,CAAC,CAAA;YAED,kDAAkD;YAClD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAA;YAEjE,4FAA4F;YAC5F,MAAM,oBAAoB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;YAEzD,4DAA4D;YAC5D,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;YAEtG,wEAAwE;YACxE,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAEpD,+DAA+D;YAC/D,0CAA0C;YAC1C,+DAA+D;YAC/D,mEAAmE;YACnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;YAErF,iEAAiE;YACjE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAA;YACnG,MAAM,YAAY,GAAiB;gBAC/B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,MAAM;gBAC5E,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,GAAG,WAAW;aAChE,CAAA;YACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAE5C,4DAA4D;YAC5D,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;YAEzD,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,yBAAyB,CAChC,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,YAAY,CACf,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,wBAAwB,CAC/B,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,YAAY,CACf,CAAA;YACL,CAAC;YAED,+DAA+D;YAC/D,wBAAwB;YACxB,+DAA+D;YAC/D,iEAAiE;YACjE,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAC3E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAEhD,oBAAoB;YACpB,gGAAgG;YAChG,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAA;YAC9C,MAAM,SAAS,GAAG,cAAc,GAAG,WAAW,CAAA;YAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;YACrE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,MAAM,eAAe,YAAY,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;YAErG,qBAAqB;YACrB,MAAM,OAAO,GAAwB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;YACjE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;YACnC,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,WAAW,IAAI,cAAc,SAAS,SAAS,KAAK,SAAS,WAAW,gBAAgB,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YAE/J,OAAO;gBACH,WAAW,EAAE,mBAAmB,CAAC,MAAM;gBACvC,WAAW;gBACX,eAAe;gBACf,YAAY,EAAE,oBAAoB;gBAClC,oBAAoB;gBACpB,YAAY;gBACZ,YAAY;aACf,CAAA;QAEL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,EAAE;gBAC5C,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;aAC3B,CAAC,CAAA;YACF,6DAA6D;YAC7D,iDAAiD;YACjD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAa;QAC7B,4DAA4D;QAC5D,4CAA4C;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACjD,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YACtD,OAAO,GAAG,MAAM,OAAO,aAAa,EAAE,CAAA;QAC1C,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAY;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;QAEvC,kFAAkF;QAClF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACvD,CAAC;YACD,qCAAqC;YACrC,IAAI,IAAI,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAA;YACd,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC3C,CAAC;QAED,uDAAuD;QACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACnF,IAAI,gBAAgB,EAAE,CAAC;YACnB,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1D,CAAC;QAED,iFAAiF;QACjF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC;gBACjE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAA;YAEV,IAAI,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG,CAAC,EAAE,CAAC;gBACpE,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACrD,CAAC;YACD,IAAI,mBAAmB,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACtD,OAAO,GAAG,CAAA;YACd,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;OAIG;IACK,wBAAwB,CAAC,QAAe,EAAE,SAAmB;QACjE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAA;QAE3C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAEnE,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,GAAG,CAAC,KAAK;gBAAE,OAAO,GAAG,CAAA;YAE1B,OAAO;gBACH,GAAG,GAAG;gBACN,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;oBAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;wBACpB,IAAI,CAAC,MAAM;wBACX,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;wBAC3C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;wBACrB,qEAAqE;wBACrE,OAAO;4BACH,GAAG,IAAI;4BACP,KAAK,EAAE;gCACH,GAAG,IAAI,CAAC,KAAK;gCACb,MAAM,EAAE,+EAA+E;6BAC1F;yBACJ,CAAA;oBACL,CAAC;oBACD,OAAO,IAAI,CAAA;gBACf,CAAC,CAAC;aACL,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,SAAmB,EAAE,WAAgC;QACpF,MAAM,iBAAiB,GAAa,EAAE,CAAA;QAEtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,MAAM,EAAE,CAAC;gBACT,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClC,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,mEAAmE;YACnE,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;YAChE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7D,CAAC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,SAAmB,EAAE,YAA6D;QACxG,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAA;QAEhD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,SAAiB,EAAE,EAAU,EAAE;YAC1D,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM;gBAAE,OAAO,GAAG,CAAA;YACpC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;QAC3C,CAAC,CAAA;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,0EAA0E;YAC1E,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;YAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAA;gBAC9B,2FAA2F;gBAC3F,IAAI,QAAQ,KAAK,OAAO;oBAAE,SAAQ;gBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9B,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAClC,CAAC;gBAED,wCAAwC;gBACxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;gBAC9C,IAAI,QAAQ,EAAE,CAAC;oBACX,mDAAmD;oBACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;oBAC3D,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAChD,CAAC;qBAAM,CAAC;oBACJ,iEAAiE;oBACjE,sDAAsD;oBACtD,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACjD,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAA;IACvB,CAAC;IAED;;;OAGG;IACK,yBAAyB,CAC7B,oBAAsC;QAEtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiD,CAAA;QAExE,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAC9C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;YAC1D,2FAA2F;YAC3F,IAAI,QAAQ,KAAK,OAAO;gBAAE,SAAQ;YAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAC7B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC;gBACxB,KAAK,EAAE,cAAc;gBACrB,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;aACtC,CAAC,CAAA;QACN,CAAC;QAED,OAAO,OAAO,CAAA;IAClB,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAC5B,OAA2D,EAC3D,SAAiB,IAAI;QAErB,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;gBACnC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC,GAAG,KAAK,YAAY,cAAc,CAAC,CAAA;YAChF,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAC1B,YAAmC,EACnC,SAAiB,IAAI;QAErB,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACpD,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;gBACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACzB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC,CAAA;gBACrC,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CACjC,SAAiB,EACjB,WAAmB,EACnB,WAAmB,EACnB,YAA0B;QAE1B,IAAI,WAAW,KAAK,CAAC;YAAE,OAAM;QAE7B,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;QAErD,IAAI,OAAO,GAAG,kBAAkB,eAAe,YAAY,WAAW,IAAI,QAAQ,UAAU,CAAA;QAE5F,+DAA+D;QAC/D,IAAI,YAAY,CAAC,gBAAgB,GAAG,WAAW,EAAE,CAAC;YAC9C,OAAO,IAAI,gBAAgB,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,YAAY,CAAC,gBAAgB,QAAQ,CAAA;QAC/H,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CAClC,SAAiB,EACjB,eAAyB,EACzB,oBAAsC,EACtC,WAAmB,EACnB,YAA0B;QAE1B,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAExC,sCAAsC;QACtC,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK;YAAE,OAAM;QAEzC,0CAA0C;QAC1C,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;YAChG,OAAM;QACV,CAAC;QAED,uCAAuC;QACvC,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAErD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;QAChE,IAAI,OAAO,GAAG,kBAAkB,eAAe,YAAY,eAAe,CAAC,MAAM,cAAc,QAAQ,WAAW,CAAA;QAElH,+DAA+D;QAC/D,IAAI,YAAY,CAAC,gBAAgB,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;YACzD,OAAO,IAAI,gBAAgB,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,YAAY,CAAC,gBAAgB,QAAQ,CAAA;QAC/H,CAAC;QACD,OAAO,IAAI,IAAI,CAAA;QAEf,yCAAyC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAA;QAEpE,wFAAwF;QACxF,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACzE,OAAO,IAAI,KAAK,QAAQ,KAAK,UAAU,aAAa,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;YAEnF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;gBAChC,OAAO,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,SAAS,gBAAgB,CAAA;YAC1D,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,IAAI,aAAa,KAAK,CAAC,MAAM,GAAG,CAAC,SAAS,CAAA;YACrD,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED;;;OAGG;IACH,0BAA0B,CAAC,MAAqB;QAC5C,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,KAAK,CAAC,IAAI,CAAC,oCAAoC,MAAM,CAAC,WAAW,gBAAgB,CAAC,CAAA;QAClF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEd,gCAAgC;QAChC,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5E,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,CAAA;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;YAC3E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAA;YACrD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClB,CAAC;QAED,8BAA8B;QAC9B,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAA;YAClE,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;YACrF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAClC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CACnC,SAAiB,EACjB,eAAyB,EACzB,oBAAsC,EACtC,YAAsB,EACtB,YAA8B,EAC9B,WAAmB,EACnB,YAA0B;QAE1B,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAA;QAChE,IAAI,WAAW,KAAK,CAAC;YAAE,OAAM;QAE7B,sCAAsC;QACtC,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK;YAAE,OAAM;QAEzC,0CAA0C;QAC1C,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;YACrF,OAAM;QACV,CAAC;QAED,uCAAuC;QACvC,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAErD,IAAI,OAAO,GAAG,kBAAkB,eAAe,YAAY,WAAW,QAAQ,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAA;QAElH,+DAA+D;QAC/D,IAAI,YAAY,CAAC,gBAAgB,GAAG,WAAW,EAAE,CAAC;YAC9C,OAAO,IAAI,gBAAgB,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,YAAY,CAAC,gBAAgB,QAAQ,CAAA;QAC/H,CAAC;QACD,OAAO,IAAI,IAAI,CAAA;QAEf,gCAAgC;QAChC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,oBAAoB,EAAE,CAAC;YACrD,OAAO,IAAI,4BAA4B,eAAe,CAAC,MAAM,MAAM,CAAA;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAA;YAEpE,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,OAAO,IAAI,KAAK,QAAQ,KAAK,CAAA;gBAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA,CAAE,0CAA0C;oBAC/E,OAAO,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,YAAY,gBAAgB,CAAA;gBAC/D,CAAC;YACL,CAAC;QACL,CAAC;QAED,8BAA8B;QAC9B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,sBAAsB,YAAY,CAAC,MAAM,MAAM,CAAA;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;YAEvE,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,OAAO,IAAI,KAAK,QAAQ,KAAK,MAAM,CAAC,MAAM,MAAM,CAAA;oBAChD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBACzB,OAAO,IAAI,OAAO,KAAK,IAAI,CAAA;oBAC/B,CAAC;gBACL,CAAC;YACL,CAAC;YAED,8DAA8D;YAC9D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAA;YACnD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;gBAC1C,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;gBACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;gBAC/C,OAAO,CAAC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC1D,CAAC,CAAC,CAAA;YAEF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,MAAM,YAAY,CAAC,MAAM,QAAQ,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,2BAA2B,CAAA;YAC7G,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC;CACJ"}
|
package/dist/lib/prompt.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function buildAnalysisPrompt(unprunedToolCallIds: string[], messages: any[],
|
|
1
|
+
export declare function buildAnalysisPrompt(unprunedToolCallIds: string[], messages: any[], alreadyPrunedIds?: string[], protectedToolCallIds?: string[], reason?: string): string;
|
|
2
2
|
//# sourceMappingURL=prompt.d.ts.map
|
package/dist/lib/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../lib/prompt.ts"],"names":[],"mappings":"AAyGA,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../lib/prompt.ts"],"names":[],"mappings":"AAyGA,wBAAgB,mBAAmB,CAC/B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,QAAQ,EAAE,GAAG,EAAE,EACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAC/B,MAAM,CAAC,EAAE,MAAM,GAChB,MAAM,CA2CR"}
|
package/dist/lib/prompt.js
CHANGED
|
@@ -92,14 +92,19 @@ function minimizeMessages(messages, alreadyPrunedIds, protectedToolCallIds) {
|
|
|
92
92
|
return msg.parts && msg.parts.length > 0;
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
|
-
export function buildAnalysisPrompt(unprunedToolCallIds, messages,
|
|
95
|
+
export function buildAnalysisPrompt(unprunedToolCallIds, messages, alreadyPrunedIds, protectedToolCallIds, reason // Optional reason from tool call
|
|
96
|
+
) {
|
|
96
97
|
// Minimize messages to reduce token usage, passing already-pruned and protected IDs for replacement
|
|
97
98
|
const minimizedMessages = minimizeMessages(messages, alreadyPrunedIds, protectedToolCallIds);
|
|
98
99
|
// Stringify with pretty-printing, then replace escaped newlines with actual newlines
|
|
99
100
|
// This makes the logged prompts much more readable
|
|
100
101
|
const messagesJson = JSON.stringify(minimizedMessages, null, 2).replace(/\\n/g, '\n');
|
|
102
|
+
// Build optional context section if reason provided
|
|
103
|
+
const reasonContext = reason
|
|
104
|
+
? `\nContext: The AI has requested pruning with the following reason: "${reason}"\nUse this context to inform your decisions about what is most relevant to keep.`
|
|
105
|
+
: '';
|
|
101
106
|
return `You are a conversation analyzer that identifies obsolete tool outputs in a coding session.
|
|
102
|
-
|
|
107
|
+
${reasonContext}
|
|
103
108
|
Your task: Analyze the session history and identify tool call IDs whose outputs are NO LONGER RELEVANT to the current conversation context.
|
|
104
109
|
|
|
105
110
|
Guidelines for identifying obsolete tool calls:
|
package/dist/lib/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../lib/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,QAAe,EAAE,gBAA2B,EAAE,oBAA+B;IACnG,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IACzG,MAAM,eAAe,GAAG,oBAAoB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAEpH,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACtB,MAAM,SAAS,GAAQ;YACnB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI;SACvB,CAAA;QAED,4BAA4B;QAC5B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;iBACtB,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE;gBAClB,iEAAiE;gBACjE,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC5D,OAAO,KAAK,CAAA;gBAChB,CAAC;gBACD,OAAO,IAAI,CAAA;YACf,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;gBACf,sFAAsF;gBACtF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACvB,8DAA8D;oBAC9D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,OAAO,IAAI,CAAA;oBACf,CAAC;oBACD,OAAO;wBACH,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;qBAClB,CAAA;gBACL,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;oBAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;oBACrD,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;oBAEpD,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAA;oBAC/B,IAAI,eAAe,EAAE,CAAC;wBAClB,aAAa,GAAG,kBAAkB,CAAA;oBACtC,CAAC;yBAAM,IAAI,WAAW,EAAE,CAAC;wBACrB,aAAa,GAAG,aAAa,CAAA;oBACjC,CAAC;oBAED,MAAM,QAAQ,GAAQ;wBAClB,IAAI,EAAE,MAAM;wBACZ,UAAU,EAAE,aAAa;wBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;qBAClB,CAAA;oBAED,kEAAkE;oBAClE,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;wBACrB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;oBACvC,CAAC;oBAED,kDAAkD;oBAClD,6DAA6D;oBAC7D,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;wBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;wBAE9B,8EAA8E;wBAC9E,6CAA6C;wBAC7C,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;4BAC1H,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA,CAAC,wDAAwD;wBACnF,CAAC;wBACD,yDAAyD;6BACpD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACtB,QAAQ,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;wBACjD,CAAC;wBACD,wDAAwD;6BACnD,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC3D,QAAQ,CAAC,KAAK,GAAG;gCACb,aAAa,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,aAAa;gCACtD,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;6BACpD,CAAA;wBACL,CAAC;wBACD,2CAA2C;6BACtC,CAAC;4BACF,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;wBAC1B,CAAC;oBACL,CAAC;oBAED,OAAO,QAAQ,CAAA;gBACnB,CAAC;gBAED,8DAA8D;gBAC9D,OAAO,IAAI,CAAA;YACf,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,eAAe;QACxC,CAAC;QAED,OAAO,SAAS,CAAA;IACpB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACZ,iFAAiF;QACjF,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../lib/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,QAAe,EAAE,gBAA2B,EAAE,oBAA+B;IACnG,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IACzG,MAAM,eAAe,GAAG,oBAAoB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAEpH,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACtB,MAAM,SAAS,GAAQ;YACnB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI;SACvB,CAAA;QAED,4BAA4B;QAC5B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;iBACtB,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE;gBAClB,iEAAiE;gBACjE,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC5D,OAAO,KAAK,CAAA;gBAChB,CAAC;gBACD,OAAO,IAAI,CAAA;YACf,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;gBACf,sFAAsF;gBACtF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACvB,8DAA8D;oBAC9D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,OAAO,IAAI,CAAA;oBACf,CAAC;oBACD,OAAO;wBACH,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;qBAClB,CAAA;gBACL,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;oBAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;oBACrD,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;oBAEpD,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAA;oBAC/B,IAAI,eAAe,EAAE,CAAC;wBAClB,aAAa,GAAG,kBAAkB,CAAA;oBACtC,CAAC;yBAAM,IAAI,WAAW,EAAE,CAAC;wBACrB,aAAa,GAAG,aAAa,CAAA;oBACjC,CAAC;oBAED,MAAM,QAAQ,GAAQ;wBAClB,IAAI,EAAE,MAAM;wBACZ,UAAU,EAAE,aAAa;wBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;qBAClB,CAAA;oBAED,kEAAkE;oBAClE,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;wBACrB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;oBACvC,CAAC;oBAED,kDAAkD;oBAClD,6DAA6D;oBAC7D,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;wBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;wBAE9B,8EAA8E;wBAC9E,6CAA6C;wBAC7C,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;4BAC1H,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA,CAAC,wDAAwD;wBACnF,CAAC;wBACD,yDAAyD;6BACpD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACtB,QAAQ,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;wBACjD,CAAC;wBACD,wDAAwD;6BACnD,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC3D,QAAQ,CAAC,KAAK,GAAG;gCACb,aAAa,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,aAAa;gCACtD,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;6BACpD,CAAA;wBACL,CAAC;wBACD,2CAA2C;6BACtC,CAAC;4BACF,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;wBAC1B,CAAC;oBACL,CAAC;oBAED,OAAO,QAAQ,CAAA;gBACnB,CAAC;gBAED,8DAA8D;gBAC9D,OAAO,IAAI,CAAA;YACf,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,eAAe;QACxC,CAAC;QAED,OAAO,SAAS,CAAA;IACpB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACZ,iFAAiF;QACjF,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,mBAA6B,EAC7B,QAAe,EACf,gBAA2B,EAC3B,oBAA+B,EAC/B,MAAe,CAAE,iCAAiC;;IAElD,oGAAoG;IACpG,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAA;IAE5F,qFAAqF;IACrF,mDAAmD;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAErF,oDAAoD;IACpD,MAAM,aAAa,GAAG,MAAM;QACxB,CAAC,CAAC,uEAAuE,MAAM,mFAAmF;QAClK,CAAC,CAAC,EAAE,CAAA;IAER,OAAO;EACT,aAAa;;;;;;;;;;;;;mDAaoC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;EAS/E,YAAY;;;;;;EAMZ,CAAA;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@tarquinen/opencode-dcp",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.16",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "OpenCode plugin that optimizes token usage by pruning obsolete tool outputs from conversation context",
|
|
7
7
|
"main": "./dist/index.js",
|