@tarquinen/opencode-dcp 0.4.2 → 0.4.13
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 +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -15
- package/dist/index.js.map +1 -1
- package/dist/lib/config.js +2 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/core/janitor.d.ts +3 -25
- package/dist/lib/core/janitor.d.ts.map +1 -1
- package/dist/lib/core/janitor.js +2 -11
- package/dist/lib/core/janitor.js.map +1 -1
- package/dist/lib/core/strategies/deduplication.d.ts +1 -1
- package/dist/lib/core/strategies/index.d.ts +32 -2
- package/dist/lib/core/strategies/index.d.ts.map +1 -1
- package/dist/lib/core/strategies/index.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/anthropic.d.ts +8 -0
- package/dist/lib/fetch-wrapper/formats/anthropic.d.ts.map +1 -0
- package/dist/lib/fetch-wrapper/formats/anthropic.js +96 -0
- package/dist/lib/fetch-wrapper/formats/anthropic.js.map +1 -0
- package/dist/lib/fetch-wrapper/formats/bedrock.d.ts +3 -9
- package/dist/lib/fetch-wrapper/formats/bedrock.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/bedrock.js +15 -46
- package/dist/lib/fetch-wrapper/formats/bedrock.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/gemini.d.ts +1 -7
- package/dist/lib/fetch-wrapper/formats/gemini.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/gemini.js +19 -23
- package/dist/lib/fetch-wrapper/formats/gemini.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/index.d.ts +1 -0
- package/dist/lib/fetch-wrapper/formats/index.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/index.js +1 -0
- package/dist/lib/fetch-wrapper/formats/index.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts +0 -11
- package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/openai-chat.js +19 -25
- package/dist/lib/fetch-wrapper/formats/openai-chat.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts +0 -8
- package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/openai-responses.js +15 -21
- package/dist/lib/fetch-wrapper/formats/openai-responses.js.map +1 -1
- package/dist/lib/fetch-wrapper/handler.d.ts +0 -10
- package/dist/lib/fetch-wrapper/handler.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/handler.js +74 -41
- package/dist/lib/fetch-wrapper/handler.js.map +1 -1
- package/dist/lib/fetch-wrapper/index.d.ts +4 -5
- package/dist/lib/fetch-wrapper/index.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/index.js +16 -7
- package/dist/lib/fetch-wrapper/index.js.map +1 -1
- package/dist/lib/fetch-wrapper/prunable-list.d.ts +8 -0
- package/dist/lib/fetch-wrapper/prunable-list.d.ts.map +1 -0
- package/dist/lib/fetch-wrapper/prunable-list.js +38 -0
- package/dist/lib/fetch-wrapper/prunable-list.js.map +1 -0
- package/dist/lib/fetch-wrapper/tool-tracker.d.ts +8 -0
- package/dist/lib/fetch-wrapper/tool-tracker.d.ts.map +1 -0
- package/dist/lib/fetch-wrapper/tool-tracker.js +7 -0
- package/dist/lib/fetch-wrapper/tool-tracker.js.map +1 -0
- package/dist/lib/fetch-wrapper/types.d.ts +31 -46
- package/dist/lib/fetch-wrapper/types.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/types.js +6 -44
- package/dist/lib/fetch-wrapper/types.js.map +1 -1
- package/dist/lib/hooks.d.ts +6 -2
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +21 -11
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/prompts/nudge.txt +8 -5
- package/dist/lib/prompts/synthetic.txt +30 -28
- package/dist/lib/prompts/tool.txt +46 -63
- package/dist/lib/pruning-tool.d.ts +1 -1
- package/dist/lib/pruning-tool.d.ts.map +1 -1
- package/dist/lib/pruning-tool.js +30 -23
- package/dist/lib/pruning-tool.js.map +1 -1
- package/dist/lib/state/id-mapping.d.ts +0 -1
- package/dist/lib/state/id-mapping.d.ts.map +1 -1
- package/dist/lib/state/id-mapping.js +0 -3
- package/dist/lib/state/id-mapping.js.map +1 -1
- package/dist/lib/state/index.d.ts +3 -0
- package/dist/lib/state/index.d.ts.map +1 -1
- package/dist/lib/state/index.js.map +1 -1
- package/dist/lib/state/tool-cache.d.ts +5 -12
- package/dist/lib/state/tool-cache.d.ts.map +1 -1
- package/dist/lib/state/tool-cache.js +47 -72
- package/dist/lib/state/tool-cache.js.map +1 -1
- package/dist/lib/ui/display-utils.d.ts +12 -0
- package/dist/lib/ui/display-utils.d.ts.map +1 -1
- package/dist/lib/ui/display-utils.js +66 -0
- package/dist/lib/ui/display-utils.js.map +1 -1
- package/dist/lib/ui/notification.d.ts +5 -12
- package/dist/lib/ui/notification.d.ts.map +1 -1
- package/dist/lib/ui/notification.js +31 -138
- package/dist/lib/ui/notification.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/api-formats/prunable-list.d.ts +0 -49
- package/dist/lib/api-formats/prunable-list.d.ts.map +0 -1
- package/dist/lib/api-formats/prunable-list.js +0 -112
- package/dist/lib/api-formats/prunable-list.js.map +0 -1
- package/dist/lib/api-formats/synth-instruction.d.ts +0 -29
- package/dist/lib/api-formats/synth-instruction.d.ts.map +0 -1
- package/dist/lib/api-formats/synth-instruction.js +0 -171
- package/dist/lib/api-formats/synth-instruction.js.map +0 -1
- package/dist/lib/core/strategies/types.d.ts +0 -35
- package/dist/lib/core/strategies/types.d.ts.map +0 -1
- package/dist/lib/core/strategies/types.js +0 -6
- package/dist/lib/core/strategies/types.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Automatically reduces token usage in OpenCode by removing obsolete tool outputs from conversation history.
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
@@ -13,7 +13,7 @@ Add to your OpenCode config:
|
|
|
13
13
|
```jsonc
|
|
14
14
|
// opencode.jsonc
|
|
15
15
|
{
|
|
16
|
-
"plugin": ["@tarquinen/opencode-dcp@0.4.
|
|
16
|
+
"plugin": ["@tarquinen/opencode-dcp@0.4.13"],
|
|
17
17
|
"experimental": {
|
|
18
18
|
"primary_tools": ["prune"]
|
|
19
19
|
}
|
|
@@ -24,6 +24,8 @@ The `experimental.primary_tools` setting ensures the `prune` tool is only availa
|
|
|
24
24
|
|
|
25
25
|
When a new version is available, DCP will show a toast notification. Update by changing the version number in your config.
|
|
26
26
|
|
|
27
|
+
> **Note:** Using `@latest` (e.g. `@tarquinen/opencode-dcp@latest`) does not reliably force the latest update in Opencode. Please use specific version numbers (e.g. `@0.4.13`).
|
|
28
|
+
|
|
27
29
|
Restart OpenCode. The plugin will automatically start optimizing your sessions.
|
|
28
30
|
|
|
29
31
|
## How Pruning Works
|
|
@@ -32,13 +34,13 @@ DCP uses two complementary techniques:
|
|
|
32
34
|
|
|
33
35
|
**Automatic Deduplication** — Silently identifies repeated tool calls (e.g., reading the same file multiple times) and keeps only the most recent output. Runs on every request with zero LLM cost.
|
|
34
36
|
|
|
35
|
-
**AI Analysis** — Uses a language model to semantically analyze conversation context and identify tool outputs that are no longer relevant to the current task.
|
|
37
|
+
**AI Analysis** — Uses a language model to semantically analyze conversation context and identify tool outputs that are no longer relevant to the current task.
|
|
36
38
|
|
|
37
39
|
## Context Pruning Tool
|
|
38
40
|
|
|
39
41
|
When `strategies.onTool` is enabled, DCP exposes a `prune` tool to Opencode that the AI can call to trigger pruning on demand.
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
Adjust `nudge_freq` to control how aggressively the AI is prompted to prune — lower values trigger reminders sooner and more often.
|
|
42
44
|
|
|
43
45
|
## How It Works
|
|
44
46
|
|
|
@@ -66,7 +68,7 @@ DCP uses its own config file (`~/.config/opencode/dcp.jsonc` or `.opencode/dcp.j
|
|
|
66
68
|
| `strictModelSelection` | `false` | Only run AI analysis with session or configured model (disables fallback models) |
|
|
67
69
|
| `pruning_summary` | `"detailed"` | `"off"`, `"minimal"`, or `"detailed"` |
|
|
68
70
|
| `nudge_freq` | `10` | How often to remind AI to prune (lower = more frequent) |
|
|
69
|
-
| `protectedTools` | `["task", "todowrite", "todoread", "prune"]` | Tools that are never pruned |
|
|
71
|
+
| `protectedTools` | `["task", "todowrite", "todoread", "prune", "batch", "write", "edit"]` | Tools that are never pruned |
|
|
70
72
|
| `strategies.onIdle` | `["ai-analysis"]` | Strategies for automatic pruning |
|
|
71
73
|
| `strategies.onTool` | `["ai-analysis"]` | Strategies when AI calls `prune` |
|
|
72
74
|
|
|
@@ -79,7 +81,7 @@ DCP uses its own config file (`~/.config/opencode/dcp.jsonc` or `.opencode/dcp.j
|
|
|
79
81
|
"onIdle": ["ai-analysis"],
|
|
80
82
|
"onTool": ["ai-analysis"]
|
|
81
83
|
},
|
|
82
|
-
"protectedTools": ["task", "todowrite", "todoread", "prune"]
|
|
84
|
+
"protectedTools": ["task", "todowrite", "todoread", "prune", "batch", "write", "edit"]
|
|
83
85
|
}
|
|
84
86
|
```
|
|
85
87
|
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAWjD,QAAA,MAAM,MAAM,EAAE,MA+EK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -6,8 +6,7 @@ import { createPluginState } from "./lib/state";
|
|
|
6
6
|
import { installFetchWrapper } from "./lib/fetch-wrapper";
|
|
7
7
|
import { createPruningTool } from "./lib/pruning-tool";
|
|
8
8
|
import { createEventHandler, createChatParamsHandler } from "./lib/hooks";
|
|
9
|
-
import { createToolTracker } from "./lib/
|
|
10
|
-
import { loadPrompt } from "./lib/core/prompt";
|
|
9
|
+
import { createToolTracker } from "./lib/fetch-wrapper/tool-tracker";
|
|
11
10
|
const plugin = (async (ctx) => {
|
|
12
11
|
const { config, migrations } = getConfig(ctx);
|
|
13
12
|
if (!config.enabled) {
|
|
@@ -28,19 +27,10 @@ const plugin = (async (ctx) => {
|
|
|
28
27
|
pruningSummary: config.pruning_summary,
|
|
29
28
|
workingDirectory: ctx.directory
|
|
30
29
|
});
|
|
31
|
-
// Create tool tracker
|
|
30
|
+
// Create tool tracker for nudge injection
|
|
32
31
|
const toolTracker = createToolTracker();
|
|
33
|
-
//
|
|
34
|
-
|
|
35
|
-
const entry = state.toolParameters.get(callId.toLowerCase());
|
|
36
|
-
return entry?.tool;
|
|
37
|
-
};
|
|
38
|
-
const prompts = {
|
|
39
|
-
synthInstruction: loadPrompt("synthetic"),
|
|
40
|
-
nudgeInstruction: loadPrompt("nudge")
|
|
41
|
-
};
|
|
42
|
-
// Install global fetch wrapper for context pruning and synthetic instruction injection
|
|
43
|
-
installFetchWrapper(state, logger, ctx.client, config, toolTracker, prompts);
|
|
32
|
+
// Install global fetch wrapper for context pruning and system message injection
|
|
33
|
+
installFetchWrapper(state, logger, ctx.client, config, toolTracker);
|
|
44
34
|
// Log initialization
|
|
45
35
|
logger.info("plugin", "DCP initialized", {
|
|
46
36
|
strategies: config.strategies,
|
|
@@ -70,7 +60,7 @@ const plugin = (async (ctx) => {
|
|
|
70
60
|
}
|
|
71
61
|
return {
|
|
72
62
|
event: createEventHandler(ctx.client, janitorCtx, logger, config, toolTracker),
|
|
73
|
-
"chat.params": createChatParamsHandler(ctx.client, state, logger),
|
|
63
|
+
"chat.params": createChatParamsHandler(ctx.client, state, logger, toolTracker),
|
|
74
64
|
tool: config.strategies.onTool.length > 0 ? {
|
|
75
65
|
prune: createPruningTool({
|
|
76
66
|
client: ctx.client,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Logger } from './logger';
|
|
|
6
6
|
const defaultConfig = {
|
|
7
7
|
enabled: true,
|
|
8
8
|
debug: false,
|
|
9
|
-
protectedTools: ['task', 'todowrite', 'todoread', 'prune', 'batch'],
|
|
9
|
+
protectedTools: ['task', 'todowrite', 'todoread', 'prune', 'batch', 'write', 'edit'],
|
|
10
10
|
showModelErrorToasts: true,
|
|
11
11
|
showUpdateToasts: true,
|
|
12
12
|
strictModelSelection: false,
|
|
@@ -98,7 +98,7 @@ function createDefaultConfig() {
|
|
|
98
98
|
"pruning_summary": "detailed",
|
|
99
99
|
// How often to nudge the AI to prune (every N tool results, 0 = disabled)
|
|
100
100
|
"nudge_freq": 10
|
|
101
|
-
// Additional tools to protect from pruning
|
|
101
|
+
// Additional tools to protect from pruning
|
|
102
102
|
// "protectedTools": ["bash"]
|
|
103
103
|
}
|
|
104
104
|
`;
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAC/F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AA0BjC,MAAM,aAAa,GAAiB;IAChC,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,KAAK;IACZ,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,9 @@
|
|
|
1
1
|
import type { Logger } from "../logger";
|
|
2
2
|
import type { PruningStrategy } from "../config";
|
|
3
3
|
import type { PluginState } from "../state";
|
|
4
|
+
import type { ToolMetadata, SessionStats, GCStats, PruningResult } from "../fetch-wrapper/types";
|
|
4
5
|
import { type NotificationContext } from "../ui/notification";
|
|
5
|
-
export
|
|
6
|
-
totalToolsPruned: number;
|
|
7
|
-
totalTokensSaved: number;
|
|
8
|
-
totalGCTokens: number;
|
|
9
|
-
totalGCTools: number;
|
|
10
|
-
}
|
|
11
|
-
export interface GCStats {
|
|
12
|
-
tokensCollected: number;
|
|
13
|
-
toolsDeduped: number;
|
|
14
|
-
}
|
|
15
|
-
export interface PruningResult {
|
|
16
|
-
prunedCount: number;
|
|
17
|
-
tokensSaved: number;
|
|
18
|
-
llmPrunedIds: string[];
|
|
19
|
-
toolMetadata: Map<string, {
|
|
20
|
-
tool: string;
|
|
21
|
-
parameters?: any;
|
|
22
|
-
}>;
|
|
23
|
-
sessionStats: SessionStats;
|
|
24
|
-
}
|
|
6
|
+
export type { SessionStats, GCStats, PruningResult };
|
|
25
7
|
export interface PruningOptions {
|
|
26
8
|
reason?: string;
|
|
27
9
|
trigger: 'idle' | 'tool';
|
|
@@ -50,11 +32,7 @@ export declare function runOnIdle(ctx: JanitorContext, sessionID: string, strate
|
|
|
50
32
|
interface ParsedMessages {
|
|
51
33
|
toolCallIds: string[];
|
|
52
34
|
toolOutputs: Map<string, string>;
|
|
53
|
-
toolMetadata: Map<string,
|
|
54
|
-
tool: string;
|
|
55
|
-
parameters?: any;
|
|
56
|
-
}>;
|
|
35
|
+
toolMetadata: Map<string, ToolMetadata>;
|
|
57
36
|
}
|
|
58
37
|
export declare function parseMessages(messages: any[], toolParametersCache: Map<string, any>): ParsedMessages;
|
|
59
|
-
export {};
|
|
60
38
|
//# sourceMappingURL=janitor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../../lib/core/janitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../../lib/core/janitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAe,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAO7G,OAAO,EAEH,KAAK,mBAAmB,EAC3B,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;AAEpD,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,aAAa;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB,EAAE,OAAO,CAAA;IAC7B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,cAAc,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAA;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,aAAa,CAAA;IACrB,eAAe,EAAE,mBAAmB,CAAA;CACvC;AAMD,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,GACtB,cAAc,CAehB;AAMD;;;GAGG;AACH,wBAAsB,SAAS,CAC3B,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAE/B;AA+SD,UAAU,cAAc;IACpB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAC1C;AAED,wBAAgB,aAAa,CACzB,QAAQ,EAAE,GAAG,EAAE,EACf,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GACtC,cAAc,CA6BhB"}
|
package/dist/lib/core/janitor.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { findCurrentAgent } from "../hooks";
|
|
2
3
|
import { buildAnalysisPrompt } from "./prompt";
|
|
3
4
|
import { selectModel, extractModelFromSession } from "../model-selector";
|
|
4
5
|
import { estimateTokensBatch, formatTokenCount } from "../tokenizer";
|
|
@@ -47,7 +48,7 @@ async function runWithStrategies(ctx, sessionID, strategies, options) {
|
|
|
47
48
|
await ensureSessionRestored(state, sessionID, logger);
|
|
48
49
|
const [sessionInfoResponse, messagesResponse] = await Promise.all([
|
|
49
50
|
client.session.get({ path: { id: sessionID } }),
|
|
50
|
-
client.session.messages({ path: { id: sessionID }, query: { limit:
|
|
51
|
+
client.session.messages({ path: { id: sessionID }, query: { limit: 500 } })
|
|
51
52
|
]);
|
|
52
53
|
const sessionInfo = sessionInfoResponse.data;
|
|
53
54
|
const messages = messagesResponse.data || messagesResponse;
|
|
@@ -270,16 +271,6 @@ export function parseMessages(messages, toolParametersCache) {
|
|
|
270
271
|
}
|
|
271
272
|
return { toolCallIds, toolOutputs, toolMetadata };
|
|
272
273
|
}
|
|
273
|
-
function findCurrentAgent(messages) {
|
|
274
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
275
|
-
const msg = messages[i];
|
|
276
|
-
const info = msg.info;
|
|
277
|
-
if (info?.role === 'user') {
|
|
278
|
-
return info.agent || 'build';
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
return undefined;
|
|
282
|
-
}
|
|
283
274
|
// ============================================================================
|
|
284
275
|
// Helpers
|
|
285
276
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"janitor.js","sourceRoot":"","sources":["../../../lib/core/janitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"janitor.js","sourceRoot":"","sources":["../../../lib/core/janitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Strategy runner - executes all enabled pruning strategies and collects results.
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
export type {
|
|
4
|
+
import type { ToolMetadata } from "../../fetch-wrapper/types";
|
|
5
|
+
export type { ToolMetadata };
|
|
6
|
+
/**
|
|
7
|
+
* Common interface for rule-based pruning strategies.
|
|
8
|
+
* Each strategy analyzes tool metadata and returns IDs that should be pruned.
|
|
9
|
+
*/
|
|
10
|
+
export interface StrategyResult {
|
|
11
|
+
/** Tool call IDs that should be pruned */
|
|
12
|
+
prunedIds: string[];
|
|
13
|
+
/** Optional details about what was pruned and why */
|
|
14
|
+
details?: Map<string, StrategyDetail>;
|
|
15
|
+
}
|
|
16
|
+
export interface StrategyDetail {
|
|
17
|
+
toolName: string;
|
|
18
|
+
parameterKey: string;
|
|
19
|
+
reason: string;
|
|
20
|
+
/** Additional info specific to the strategy */
|
|
21
|
+
[key: string]: any;
|
|
22
|
+
}
|
|
23
|
+
export interface PruningStrategy {
|
|
24
|
+
/** Unique identifier for this strategy */
|
|
25
|
+
name: string;
|
|
26
|
+
/**
|
|
27
|
+
* Analyze tool metadata and determine which tool calls should be pruned.
|
|
28
|
+
*
|
|
29
|
+
* @param toolMetadata - Map of tool call ID to metadata (tool name + parameters)
|
|
30
|
+
* @param unprunedIds - Tool call IDs that haven't been pruned yet (chronological order)
|
|
31
|
+
* @param protectedTools - Tool names that should never be pruned
|
|
32
|
+
* @returns IDs to prune and optional details
|
|
33
|
+
*/
|
|
34
|
+
detect(toolMetadata: Map<string, ToolMetadata>, unprunedIds: string[], protectedTools: string[]): StrategyResult;
|
|
35
|
+
}
|
|
6
36
|
export interface RunStrategiesResult {
|
|
7
37
|
/** All tool IDs that should be pruned (deduplicated) */
|
|
8
38
|
prunedIds: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/core/strategies/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/core/strategies/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC3B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,+CAA+C;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IAEZ;;;;;;;OAOG;IACH,MAAM,CACF,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,WAAW,EAAE,MAAM,EAAE,EACrB,cAAc,EAAE,MAAM,EAAE,GACzB,cAAc,CAAA;CACpB;AAWD,MAAM,WAAW,mBAAmB;IAChC,wDAAwD;IACxD,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,qCAAqC;IACrC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CAC1C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CACzB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,WAAW,EAAE,MAAM,EAAE,EACrB,cAAc,EAAE,MAAM,EAAE,EACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,mBAAmB,CAiCrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/core/strategies/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/core/strategies/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AA4CvD,+BAA+B;AAC/B,MAAM,cAAc,GAAsB;IACtC,qBAAqB;IACrB,wCAAwC;IACxC,wBAAwB;IACxB,qBAAqB;IACrB,uBAAuB;CAC1B,CAAA;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CACzB,YAAuC,EACvC,WAAqB,EACrB,cAAwB,EACxB,iBAA4B;IAE5B,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAA;IACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IAEtC,yDAAyD;IACzD,MAAM,UAAU,GAAG,iBAAiB;QAChC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC,cAAc,CAAA;IAEpB,wDAAwD;IACxD,IAAI,YAAY,GAAG,WAAW,CAAA;IAE9B,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC,CAAA;QAE1E,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAErC,4BAA4B;YAC5B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAChC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACxB,CAAC;YAED,qDAAqD;YACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YACvE,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAC9E,CAAC;IACL,CAAC;IAED,OAAO;QACH,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACnC,UAAU;KACb,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FormatDescriptor } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Anthropic Messages API format with top-level `system` array.
|
|
4
|
+
* Tool calls: `tool_use` blocks in assistant content with `id`
|
|
5
|
+
* Tool results: `tool_result` blocks in user content with `tool_use_id`
|
|
6
|
+
*/
|
|
7
|
+
export declare const anthropicFormat: FormatDescriptor;
|
|
8
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;AAG5D;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,gBAsG7B,CAAA"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic Messages API format with top-level `system` array.
|
|
3
|
+
* Tool calls: `tool_use` blocks in assistant content with `id`
|
|
4
|
+
* Tool results: `tool_result` blocks in user content with `tool_use_id`
|
|
5
|
+
*/
|
|
6
|
+
export const anthropicFormat = {
|
|
7
|
+
name: 'anthropic',
|
|
8
|
+
detect(body) {
|
|
9
|
+
return (body.system !== undefined &&
|
|
10
|
+
Array.isArray(body.messages));
|
|
11
|
+
},
|
|
12
|
+
getDataArray(body) {
|
|
13
|
+
return body.messages;
|
|
14
|
+
},
|
|
15
|
+
injectSystemMessage(body, injection) {
|
|
16
|
+
if (!injection)
|
|
17
|
+
return false;
|
|
18
|
+
if (typeof body.system === 'string') {
|
|
19
|
+
body.system = [{ type: 'text', text: body.system }];
|
|
20
|
+
}
|
|
21
|
+
else if (!Array.isArray(body.system)) {
|
|
22
|
+
body.system = [];
|
|
23
|
+
}
|
|
24
|
+
body.system.push({ type: 'text', text: injection });
|
|
25
|
+
return true;
|
|
26
|
+
},
|
|
27
|
+
appendUserMessage(body, injection) {
|
|
28
|
+
if (!injection || !body.messages)
|
|
29
|
+
return false;
|
|
30
|
+
body.messages.push({ role: 'user', content: [{ type: 'text', text: injection }] });
|
|
31
|
+
return true;
|
|
32
|
+
},
|
|
33
|
+
extractToolOutputs(data, state) {
|
|
34
|
+
const outputs = [];
|
|
35
|
+
for (const m of data) {
|
|
36
|
+
if (m.role === 'user' && Array.isArray(m.content)) {
|
|
37
|
+
for (const block of m.content) {
|
|
38
|
+
if (block.type === 'tool_result' && block.tool_use_id) {
|
|
39
|
+
const toolUseId = block.tool_use_id.toLowerCase();
|
|
40
|
+
const metadata = state.toolParameters.get(toolUseId);
|
|
41
|
+
outputs.push({
|
|
42
|
+
id: toolUseId,
|
|
43
|
+
toolName: metadata?.tool
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return outputs;
|
|
50
|
+
},
|
|
51
|
+
replaceToolOutput(data, toolId, prunedMessage, _state) {
|
|
52
|
+
const toolIdLower = toolId.toLowerCase();
|
|
53
|
+
let replaced = false;
|
|
54
|
+
for (let i = 0; i < data.length; i++) {
|
|
55
|
+
const m = data[i];
|
|
56
|
+
if (m.role === 'user' && Array.isArray(m.content)) {
|
|
57
|
+
let messageModified = false;
|
|
58
|
+
const newContent = m.content.map((block) => {
|
|
59
|
+
if (block.type === 'tool_result' && block.tool_use_id?.toLowerCase() === toolIdLower) {
|
|
60
|
+
messageModified = true;
|
|
61
|
+
return {
|
|
62
|
+
...block,
|
|
63
|
+
content: prunedMessage
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return block;
|
|
67
|
+
});
|
|
68
|
+
if (messageModified) {
|
|
69
|
+
data[i] = { ...m, content: newContent };
|
|
70
|
+
replaced = true;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return replaced;
|
|
75
|
+
},
|
|
76
|
+
hasToolOutputs(data) {
|
|
77
|
+
for (const m of data) {
|
|
78
|
+
if (m.role === 'user' && Array.isArray(m.content)) {
|
|
79
|
+
for (const block of m.content) {
|
|
80
|
+
if (block.type === 'tool_result')
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return false;
|
|
86
|
+
},
|
|
87
|
+
getLogMetadata(data, replacedCount, inputUrl) {
|
|
88
|
+
return {
|
|
89
|
+
url: inputUrl,
|
|
90
|
+
replacedCount,
|
|
91
|
+
totalMessages: data.length,
|
|
92
|
+
format: 'anthropic'
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import type { FormatDescriptor } from "../types";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* - Top-level `system` array for system messages
|
|
7
|
-
* - `messages` array with only 'user' and 'assistant' roles
|
|
8
|
-
* - `inferenceConfig` for model parameters (maxTokens, temperature, etc.)
|
|
9
|
-
* - Tool calls: `toolUse` blocks in assistant content with `toolUseId`
|
|
10
|
-
* - Tool results: `toolResult` blocks in user content with `toolUseId`
|
|
11
|
-
* - Cache points: `cachePoint` blocks that should be preserved
|
|
3
|
+
* Bedrock uses top-level `system` array + `inferenceConfig` (distinguishes from OpenAI/Anthropic).
|
|
4
|
+
* Tool calls: `toolUse` blocks in assistant content with `toolUseId`
|
|
5
|
+
* Tool results: `toolResult` blocks in user content with `toolUseId`
|
|
12
6
|
*/
|
|
13
7
|
export declare const bedrockFormat: FormatDescriptor;
|
|
14
8
|
//# sourceMappingURL=bedrock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/bedrock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../../../lib/fetch-wrapper/formats/bedrock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAA;AAG5D;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,gBAwG3B,CAAA"}
|
|
@@ -1,22 +1,11 @@
|
|
|
1
|
-
import { cacheToolParametersFromMessages } from "../../state/tool-cache";
|
|
2
|
-
import { injectSynth, trackNewToolResults } from "../../api-formats/synth-instruction";
|
|
3
|
-
import { injectPrunableList } from "../../api-formats/prunable-list";
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - Top-level `system` array for system messages
|
|
9
|
-
* - `messages` array with only 'user' and 'assistant' roles
|
|
10
|
-
* - `inferenceConfig` for model parameters (maxTokens, temperature, etc.)
|
|
11
|
-
* - Tool calls: `toolUse` blocks in assistant content with `toolUseId`
|
|
12
|
-
* - Tool results: `toolResult` blocks in user content with `toolUseId`
|
|
13
|
-
* - Cache points: `cachePoint` blocks that should be preserved
|
|
2
|
+
* Bedrock uses top-level `system` array + `inferenceConfig` (distinguishes from OpenAI/Anthropic).
|
|
3
|
+
* Tool calls: `toolUse` blocks in assistant content with `toolUseId`
|
|
4
|
+
* Tool results: `toolResult` blocks in user content with `toolUseId`
|
|
14
5
|
*/
|
|
15
6
|
export const bedrockFormat = {
|
|
16
7
|
name: 'bedrock',
|
|
17
8
|
detect(body) {
|
|
18
|
-
// Bedrock has a top-level system array AND inferenceConfig (not model params in messages)
|
|
19
|
-
// This distinguishes it from OpenAI/Anthropic which put system in messages
|
|
20
9
|
return (Array.isArray(body.system) &&
|
|
21
10
|
body.inferenceConfig !== undefined &&
|
|
22
11
|
Array.isArray(body.messages));
|
|
@@ -24,42 +13,24 @@ export const bedrockFormat = {
|
|
|
24
13
|
getDataArray(body) {
|
|
25
14
|
return body.messages;
|
|
26
15
|
},
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
for (const block of m.content) {
|
|
33
|
-
if (block.toolUse && block.toolUse.toolUseId) {
|
|
34
|
-
const toolUseId = block.toolUse.toolUseId.toLowerCase();
|
|
35
|
-
state.toolParameters.set(toolUseId, {
|
|
36
|
-
tool: block.toolUse.name,
|
|
37
|
-
parameters: block.toolUse.input
|
|
38
|
-
});
|
|
39
|
-
logger?.debug("bedrock", "Cached tool parameters", {
|
|
40
|
-
toolUseId,
|
|
41
|
-
toolName: block.toolUse.name
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
16
|
+
injectSystemMessage(body, injection) {
|
|
17
|
+
if (!injection)
|
|
18
|
+
return false;
|
|
19
|
+
if (!Array.isArray(body.system)) {
|
|
20
|
+
body.system = [];
|
|
46
21
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
},
|
|
50
|
-
injectSynth(data, instruction, nudgeText) {
|
|
51
|
-
return injectSynth(data, instruction, nudgeText);
|
|
52
|
-
},
|
|
53
|
-
trackNewToolResults(data, tracker, protectedTools) {
|
|
54
|
-
return trackNewToolResults(data, tracker, protectedTools);
|
|
22
|
+
body.system.push({ text: injection });
|
|
23
|
+
return true;
|
|
55
24
|
},
|
|
56
|
-
|
|
57
|
-
|
|
25
|
+
appendUserMessage(body, injection) {
|
|
26
|
+
if (!injection || !body.messages)
|
|
27
|
+
return false;
|
|
28
|
+
body.messages.push({ role: 'user', content: [{ text: injection }] });
|
|
29
|
+
return true;
|
|
58
30
|
},
|
|
59
31
|
extractToolOutputs(data, state) {
|
|
60
32
|
const outputs = [];
|
|
61
33
|
for (const m of data) {
|
|
62
|
-
// Bedrock tool results are in user messages as toolResult blocks
|
|
63
34
|
if (m.role === 'user' && Array.isArray(m.content)) {
|
|
64
35
|
for (const block of m.content) {
|
|
65
36
|
if (block.toolResult && block.toolResult.toolUseId) {
|
|
@@ -80,13 +51,11 @@ export const bedrockFormat = {
|
|
|
80
51
|
let replaced = false;
|
|
81
52
|
for (let i = 0; i < data.length; i++) {
|
|
82
53
|
const m = data[i];
|
|
83
|
-
// Tool results are in user messages as toolResult blocks
|
|
84
54
|
if (m.role === 'user' && Array.isArray(m.content)) {
|
|
85
55
|
let messageModified = false;
|
|
86
56
|
const newContent = m.content.map((block) => {
|
|
87
57
|
if (block.toolResult && block.toolResult.toolUseId?.toLowerCase() === toolIdLower) {
|
|
88
58
|
messageModified = true;
|
|
89
|
-
// Replace the content array inside toolResult with pruned message
|
|
90
59
|
return {
|
|
91
60
|
...block,
|
|
92
61
|
toolResult: {
|