@tarquinen/opencode-dcp 2.1.7 → 2.2.1-beta0
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 +100 -111
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -29
- package/dist/index.js.map +1 -1
- package/dist/lib/commands/context.d.ts.map +1 -1
- package/dist/lib/commands/context.js +36 -8
- package/dist/lib/commands/context.js.map +1 -1
- package/dist/lib/commands/help.d.ts.map +1 -1
- package/dist/lib/commands/help.js +2 -6
- package/dist/lib/commands/help.js.map +1 -1
- package/dist/lib/commands/manual.d.ts +1 -3
- package/dist/lib/commands/manual.d.ts.map +1 -1
- package/dist/lib/commands/manual.js +4 -43
- package/dist/lib/commands/manual.js.map +1 -1
- package/dist/lib/commands/sweep.d.ts.map +1 -1
- package/dist/lib/commands/sweep.js +2 -12
- package/dist/lib/commands/sweep.js.map +1 -1
- package/dist/lib/config.d.ts +5 -20
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +172 -348
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts +7 -0
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +26 -24
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +6 -0
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/messages/index.d.ts +2 -3
- package/dist/lib/messages/index.d.ts.map +1 -1
- package/dist/lib/messages/index.js +2 -3
- package/dist/lib/messages/index.js.map +1 -1
- package/dist/lib/messages/inject/inject.d.ts +6 -0
- package/dist/lib/messages/inject/inject.d.ts.map +1 -0
- package/dist/lib/messages/inject/inject.js +99 -0
- package/dist/lib/messages/inject/inject.js.map +1 -0
- package/dist/lib/messages/inject/utils.d.ts +20 -0
- package/dist/lib/messages/inject/utils.d.ts.map +1 -0
- package/dist/lib/messages/inject/utils.js +137 -0
- package/dist/lib/messages/inject/utils.js.map +1 -0
- package/dist/lib/messages/utils.d.ts +7 -11
- package/dist/lib/messages/utils.d.ts.map +1 -1
- package/dist/lib/messages/utils.js +33 -132
- package/dist/lib/messages/utils.js.map +1 -1
- package/dist/lib/prompts/_codegen/system.generated.d.ts +1 -1
- package/dist/lib/prompts/_codegen/system.generated.d.ts.map +1 -1
- package/dist/lib/prompts/_codegen/system.generated.js +36 -32
- package/dist/lib/prompts/_codegen/system.generated.js.map +1 -1
- package/dist/lib/prompts/compress.d.ts +2 -0
- package/dist/lib/prompts/compress.d.ts.map +1 -0
- package/dist/lib/prompts/compress.js +122 -0
- package/dist/lib/prompts/compress.js.map +1 -0
- package/dist/lib/prompts/index.d.ts +6 -10
- package/dist/lib/prompts/index.d.ts.map +1 -1
- package/dist/lib/prompts/index.js +17 -40
- package/dist/lib/prompts/index.js.map +1 -1
- package/dist/lib/prompts/iteration-nudge.d.ts +2 -0
- package/dist/lib/prompts/iteration-nudge.d.ts.map +1 -0
- package/dist/lib/prompts/iteration-nudge.js +9 -0
- package/dist/lib/prompts/iteration-nudge.js.map +1 -0
- package/dist/lib/prompts/nudge.d.ts +2 -0
- package/dist/lib/prompts/nudge.d.ts.map +1 -0
- package/dist/lib/prompts/nudge.js +40 -0
- package/dist/lib/prompts/nudge.js.map +1 -0
- package/dist/lib/prompts/turn-nudge.d.ts +2 -0
- package/dist/lib/prompts/turn-nudge.d.ts.map +1 -0
- package/dist/lib/prompts/turn-nudge.js +12 -0
- package/dist/lib/prompts/turn-nudge.js.map +1 -0
- package/dist/lib/state/persistence.d.ts +7 -2
- package/dist/lib/state/persistence.d.ts.map +1 -1
- package/dist/lib/state/persistence.js +58 -39
- package/dist/lib/state/persistence.js.map +1 -1
- package/dist/lib/state/state.d.ts.map +1 -1
- package/dist/lib/state/state.js +20 -8
- package/dist/lib/state/state.js.map +1 -1
- package/dist/lib/state/tool-cache.d.ts.map +1 -1
- package/dist/lib/state/tool-cache.js +3 -17
- package/dist/lib/state/tool-cache.js.map +1 -1
- package/dist/lib/state/types.d.ts +7 -8
- package/dist/lib/state/types.d.ts.map +1 -1
- package/dist/lib/state/utils.d.ts +2 -2
- package/dist/lib/state/utils.d.ts.map +1 -1
- package/dist/lib/state/utils.js +29 -19
- package/dist/lib/state/utils.js.map +1 -1
- package/dist/lib/strategies/deduplication.d.ts.map +1 -1
- package/dist/lib/strategies/deduplication.js +0 -11
- package/dist/lib/strategies/deduplication.js.map +1 -1
- package/dist/lib/strategies/index.d.ts +0 -1
- package/dist/lib/strategies/index.d.ts.map +1 -1
- package/dist/lib/strategies/index.js +0 -1
- package/dist/lib/strategies/index.js.map +1 -1
- package/dist/lib/strategies/purge-errors.d.ts.map +1 -1
- package/dist/lib/strategies/purge-errors.js +0 -11
- package/dist/lib/strategies/purge-errors.js.map +1 -1
- package/dist/lib/strategies/supersede-writes.d.ts.map +1 -1
- package/dist/lib/strategies/supersede-writes.js +0 -11
- package/dist/lib/strategies/supersede-writes.js.map +1 -1
- package/dist/lib/strategies/utils.d.ts +1 -0
- package/dist/lib/strategies/utils.d.ts.map +1 -1
- package/dist/lib/strategies/utils.js +15 -0
- package/dist/lib/strategies/utils.js.map +1 -1
- package/dist/lib/tools/compress-utils.d.ts +7 -4
- package/dist/lib/tools/compress-utils.d.ts.map +1 -1
- package/dist/lib/tools/compress-utils.js +34 -25
- package/dist/lib/tools/compress-utils.js.map +1 -1
- package/dist/lib/tools/compress.d.ts +2 -2
- package/dist/lib/tools/compress.d.ts.map +1 -1
- package/dist/lib/tools/compress.js +28 -58
- package/dist/lib/tools/compress.js.map +1 -1
- package/dist/lib/tools/index.d.ts +1 -3
- package/dist/lib/tools/index.d.ts.map +1 -1
- package/dist/lib/tools/index.js +0 -2
- package/dist/lib/tools/index.js.map +1 -1
- package/dist/lib/tools/types.d.ts +1 -1
- package/dist/lib/tools/types.d.ts.map +1 -1
- package/dist/lib/ui/notification.d.ts +2 -2
- package/dist/lib/ui/notification.d.ts.map +1 -1
- package/dist/lib/ui/notification.js +24 -28
- package/dist/lib/ui/notification.js.map +1 -1
- package/dist/lib/ui/utils.d.ts +3 -4
- package/dist/lib/ui/utils.d.ts.map +1 -1
- package/dist/lib/ui/utils.js +165 -24
- package/dist/lib/ui/utils.js.map +1 -1
- package/package.json +2 -1
- package/dist/lib/messages/inject.d.ts +0 -14
- package/dist/lib/messages/inject.d.ts.map +0 -1
- package/dist/lib/messages/inject.js +0 -266
- package/dist/lib/messages/inject.js.map +0 -1
- package/dist/lib/messages/sync.d.ts +0 -4
- package/dist/lib/messages/sync.d.ts.map +0 -1
- package/dist/lib/messages/sync.js +0 -29
- package/dist/lib/messages/sync.js.map +0 -1
- package/dist/lib/prompts/_codegen/compress-nudge.generated.d.ts +0 -2
- package/dist/lib/prompts/_codegen/compress-nudge.generated.d.ts.map +0 -1
- package/dist/lib/prompts/_codegen/compress-nudge.generated.js +0 -15
- package/dist/lib/prompts/_codegen/compress-nudge.generated.js.map +0 -1
- package/dist/lib/prompts/_codegen/compress.generated.d.ts +0 -2
- package/dist/lib/prompts/_codegen/compress.generated.d.ts.map +0 -1
- package/dist/lib/prompts/_codegen/compress.generated.js +0 -66
- package/dist/lib/prompts/_codegen/compress.generated.js.map +0 -1
- package/dist/lib/prompts/_codegen/distill.generated.d.ts +0 -2
- package/dist/lib/prompts/_codegen/distill.generated.d.ts.map +0 -1
- package/dist/lib/prompts/_codegen/distill.generated.js +0 -33
- package/dist/lib/prompts/_codegen/distill.generated.js.map +0 -1
- package/dist/lib/prompts/_codegen/nudge.generated.d.ts +0 -2
- package/dist/lib/prompts/_codegen/nudge.generated.d.ts.map +0 -1
- package/dist/lib/prompts/_codegen/nudge.generated.js +0 -17
- package/dist/lib/prompts/_codegen/nudge.generated.js.map +0 -1
- package/dist/lib/prompts/_codegen/prune.generated.d.ts +0 -2
- package/dist/lib/prompts/_codegen/prune.generated.d.ts.map +0 -1
- package/dist/lib/prompts/_codegen/prune.generated.js +0 -23
- package/dist/lib/prompts/_codegen/prune.generated.js.map +0 -1
- package/dist/lib/tools/distill.d.ts +0 -4
- package/dist/lib/tools/distill.d.ts.map +0 -1
- package/dist/lib/tools/distill.js +0 -41
- package/dist/lib/tools/distill.js.map +0 -1
- package/dist/lib/tools/prune-shared.d.ts +0 -8
- package/dist/lib/tools/prune-shared.d.ts.map +0 -1
- package/dist/lib/tools/prune-shared.js +0 -127
- package/dist/lib/tools/prune-shared.js.map +0 -1
- package/dist/lib/tools/prune.d.ts +0 -4
- package/dist/lib/tools/prune.d.ts.map +0 -1
- package/dist/lib/tools/prune.js +0 -28
- package/dist/lib/tools/prune.js.map +0 -1
package/README.md
CHANGED
|
@@ -22,17 +22,22 @@ Using `@latest` ensures you always get the newest version automatically when Ope
|
|
|
22
22
|
|
|
23
23
|
Restart OpenCode. The plugin will automatically start optimizing your sessions.
|
|
24
24
|
|
|
25
|
+
## Beta Notice (v2.2.0-beta0)
|
|
26
|
+
|
|
27
|
+
- Strategy shift to a single user-facing context tool: `compress`.
|
|
28
|
+
- Context management is now less surgical and more focused on preserving high-signal work grouped by task.
|
|
29
|
+
|
|
25
30
|
## How Pruning Works
|
|
26
31
|
|
|
27
|
-
DCP uses
|
|
32
|
+
DCP uses one user-facing tool and strategies to reduce context size:
|
|
28
33
|
|
|
29
|
-
|
|
34
|
+
For model-facing behavior (prompts and tool calls), this capability is always addressed as `compress`.
|
|
30
35
|
|
|
31
|
-
|
|
36
|
+
### Tool
|
|
32
37
|
|
|
33
|
-
**Compress** — Exposes a `compress` tool
|
|
38
|
+
**Compress** — Exposes a single `compress` tool with one method: select a conversation range using injected `startId` and `endId` (`mNNNN` or `bN`), then replace it with a technical summary.
|
|
34
39
|
|
|
35
|
-
|
|
40
|
+
The model can use that same method at different scales: tiny ranges for noise cleanup, focused ranges for preserving key findings, and full chapters for completed work.
|
|
36
41
|
|
|
37
42
|
### Strategies
|
|
38
43
|
|
|
@@ -69,108 +74,93 @@ DCP uses its own config file:
|
|
|
69
74
|
- Custom config directory: `$OPENCODE_CONFIG_DIR/dcp.jsonc` (or `dcp.json`), if `OPENCODE_CONFIG_DIR` is set
|
|
70
75
|
- Project: `.opencode/dcp.jsonc` (or `dcp.json`) in your project's `.opencode` directory
|
|
71
76
|
|
|
72
|
-
>
|
|
73
|
-
>
|
|
74
|
-
|
|
75
|
-
>
|
|
76
|
-
>
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
>
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
>
|
|
159
|
-
> "enabled": true,
|
|
160
|
-
> },
|
|
161
|
-
> // Prune tool inputs for errored tools after X turns
|
|
162
|
-
> "purgeErrors": {
|
|
163
|
-
> "enabled": true,
|
|
164
|
-
> // Number of turns before errored tool inputs are pruned
|
|
165
|
-
> "turns": 4,
|
|
166
|
-
> // Additional tools to protect from pruning
|
|
167
|
-
> "protectedTools": [],
|
|
168
|
-
> },
|
|
169
|
-
> },
|
|
170
|
-
> }
|
|
171
|
-
> ```
|
|
172
|
-
>
|
|
173
|
-
> </details>
|
|
77
|
+
> [!IMPORTANT]
|
|
78
|
+
> Defaults are applied automatically. Expand this if you want to review or override settings.
|
|
79
|
+
|
|
80
|
+
<details>
|
|
81
|
+
<summary><strong>Default Configuration</strong> (click to expand)</summary>
|
|
82
|
+
|
|
83
|
+
```jsonc
|
|
84
|
+
{
|
|
85
|
+
"$schema": "https://raw.githubusercontent.com/Opencode-DCP/opencode-dynamic-context-pruning/master/dcp.schema.json",
|
|
86
|
+
// Enable or disable the plugin
|
|
87
|
+
"enabled": true,
|
|
88
|
+
// Enable debug logging to ~/.config/opencode/logs/dcp/
|
|
89
|
+
"debug": false,
|
|
90
|
+
// Notification display: "off", "minimal", or "detailed"
|
|
91
|
+
"pruneNotification": "detailed",
|
|
92
|
+
// Notification type: "chat" (in-conversation) or "toast" (system toast)
|
|
93
|
+
"pruneNotificationType": "chat",
|
|
94
|
+
// Slash commands configuration
|
|
95
|
+
"commands": {
|
|
96
|
+
"enabled": true,
|
|
97
|
+
// Additional tools to protect from pruning via commands (e.g., /dcp sweep)
|
|
98
|
+
"protectedTools": [],
|
|
99
|
+
},
|
|
100
|
+
// Manual mode: disables autonomous context management,
|
|
101
|
+
// tools only run when explicitly triggered via /dcp commands
|
|
102
|
+
"manualMode": {
|
|
103
|
+
"enabled": false,
|
|
104
|
+
// When true, automatic strategies (deduplication, supersedeWrites, purgeErrors)
|
|
105
|
+
// still run even in manual mode
|
|
106
|
+
"automaticStrategies": true,
|
|
107
|
+
},
|
|
108
|
+
// Protect from pruning for <turns> message turns past tool invocation
|
|
109
|
+
"turnProtection": {
|
|
110
|
+
"enabled": false,
|
|
111
|
+
"turns": 4,
|
|
112
|
+
},
|
|
113
|
+
// Protect file operations from pruning via glob patterns
|
|
114
|
+
// Patterns match tool parameters.filePath (e.g. read/write/edit)
|
|
115
|
+
"protectedFilePatterns": [],
|
|
116
|
+
// Unified context compression tool and behavior settings
|
|
117
|
+
"compress": {
|
|
118
|
+
// Permission mode: "allow" (no prompt), "ask" (prompt), "deny" (tool not registered)
|
|
119
|
+
"permission": "allow",
|
|
120
|
+
// Show summary content in a chat notification
|
|
121
|
+
"showCompression": false,
|
|
122
|
+
// Token limit at which the model compresses session context
|
|
123
|
+
// to keep the model in the "smart zone" (not a hard limit)
|
|
124
|
+
// Accepts: number or "X%" (percentage of model's context window)
|
|
125
|
+
"contextLimit": 100000,
|
|
126
|
+
// Optional per-model overrides by exact providerID/modelID
|
|
127
|
+
// Accepts: number or "X%"
|
|
128
|
+
// Example:
|
|
129
|
+
// "modelLimits": {
|
|
130
|
+
// "openai/gpt-5": 120000,
|
|
131
|
+
// "anthropic/claude-3-7-sonnet": "80%"
|
|
132
|
+
// },
|
|
133
|
+
// How often the context-limit nudge fires (1 = every fetch, 5 = every 5th)
|
|
134
|
+
"nudgeFrequency": 5,
|
|
135
|
+
// Start iteration nudges after this many messages
|
|
136
|
+
// have occurred since the last user message
|
|
137
|
+
"iterationNudgeThreshold": 15,
|
|
138
|
+
},
|
|
139
|
+
// Automatic pruning strategies
|
|
140
|
+
"strategies": {
|
|
141
|
+
// Remove duplicate tool calls (same tool with same arguments)
|
|
142
|
+
"deduplication": {
|
|
143
|
+
"enabled": true,
|
|
144
|
+
// Additional tools to protect from pruning
|
|
145
|
+
"protectedTools": [],
|
|
146
|
+
},
|
|
147
|
+
// Prune write tool inputs when the file has been subsequently read
|
|
148
|
+
"supersedeWrites": {
|
|
149
|
+
"enabled": true,
|
|
150
|
+
},
|
|
151
|
+
// Prune tool inputs for errored tools after X turns
|
|
152
|
+
"purgeErrors": {
|
|
153
|
+
"enabled": true,
|
|
154
|
+
// Number of turns before errored tool inputs are pruned
|
|
155
|
+
"turns": 4,
|
|
156
|
+
// Additional tools to protect from pruning
|
|
157
|
+
"protectedTools": [],
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
</details>
|
|
174
164
|
|
|
175
165
|
### Commands
|
|
176
166
|
|
|
@@ -181,16 +171,15 @@ DCP provides a `/dcp` slash command:
|
|
|
181
171
|
- `/dcp stats` — Shows cumulative pruning statistics across all sessions.
|
|
182
172
|
- `/dcp sweep` — Prunes all tools since the last user message. Accepts an optional count: `/dcp sweep 10` prunes the last 10 tools. Respects `commands.protectedTools`.
|
|
183
173
|
- `/dcp manual [on|off]` — Toggle manual mode or set explicit state. When on, the AI will not autonomously use context management tools.
|
|
184
|
-
|
|
185
|
-
- `/dcp distill [focus]` — Trigger a single distill tool execution. Optional focus text directs what to distill.
|
|
174
|
+
|
|
186
175
|
- `/dcp compress [focus]` — Trigger a single compress tool execution. Optional focus text directs what range to compress.
|
|
187
176
|
|
|
188
177
|
### Protected Tools
|
|
189
178
|
|
|
190
179
|
By default, these tools are always protected from pruning:
|
|
191
|
-
`task`, `todowrite`, `todoread`, `
|
|
180
|
+
`task`, `todowrite`, `todoread`, `compress`, `batch`, `plan_enter`, `plan_exit`
|
|
192
181
|
|
|
193
|
-
The `protectedTools` arrays in
|
|
182
|
+
The `protectedTools` arrays in `commands` and `strategies` add to this default list.
|
|
194
183
|
|
|
195
184
|
### Config Precedence
|
|
196
185
|
|
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;AAajD,QAAA,MAAM,MAAM,EAAE,MA6FK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getConfig } from "./lib/config";
|
|
2
2
|
import { Logger } from "./lib/logger";
|
|
3
3
|
import { createSessionState } from "./lib/state";
|
|
4
|
-
import {
|
|
5
|
-
import { createChatMessageTransformHandler, createCommandExecuteHandler, createSystemPromptHandler, } from "./lib/hooks";
|
|
4
|
+
import { createCompressTool } from "./lib/tools";
|
|
5
|
+
import { createChatMessageTransformHandler, createCommandExecuteHandler, createSystemPromptHandler, createTextCompleteHandler, } from "./lib/hooks";
|
|
6
6
|
import { configureClientAuth, isSecureMode } from "./lib/auth";
|
|
7
7
|
const plugin = (async (ctx) => {
|
|
8
8
|
const config = getConfig(ctx);
|
|
@@ -27,18 +27,10 @@ const plugin = (async (ctx) => {
|
|
|
27
27
|
state.variant = input.variant;
|
|
28
28
|
logger.debug("Cached variant from chat.message hook", { variant: input.variant });
|
|
29
29
|
},
|
|
30
|
+
"experimental.text.complete": createTextCompleteHandler(),
|
|
30
31
|
"command.execute.before": createCommandExecuteHandler(ctx.client, state, logger, config, ctx.directory),
|
|
31
32
|
tool: {
|
|
32
|
-
...(config.
|
|
33
|
-
distill: createDistillTool({
|
|
34
|
-
client: ctx.client,
|
|
35
|
-
state,
|
|
36
|
-
logger,
|
|
37
|
-
config,
|
|
38
|
-
workingDirectory: ctx.directory,
|
|
39
|
-
}),
|
|
40
|
-
}),
|
|
41
|
-
...(config.tools.compress.permission !== "deny" && {
|
|
33
|
+
...(config.compress.permission !== "deny" && {
|
|
42
34
|
compress: createCompressTool({
|
|
43
35
|
client: ctx.client,
|
|
44
36
|
state,
|
|
@@ -47,15 +39,6 @@ const plugin = (async (ctx) => {
|
|
|
47
39
|
workingDirectory: ctx.directory,
|
|
48
40
|
}),
|
|
49
41
|
}),
|
|
50
|
-
...(config.tools.prune.permission !== "deny" && {
|
|
51
|
-
prune: createPruneTool({
|
|
52
|
-
client: ctx.client,
|
|
53
|
-
state,
|
|
54
|
-
logger,
|
|
55
|
-
config,
|
|
56
|
-
workingDirectory: ctx.directory,
|
|
57
|
-
}),
|
|
58
|
-
}),
|
|
59
42
|
},
|
|
60
43
|
config: async (opencodeConfig) => {
|
|
61
44
|
if (config.commands.enabled) {
|
|
@@ -66,12 +49,8 @@ const plugin = (async (ctx) => {
|
|
|
66
49
|
};
|
|
67
50
|
}
|
|
68
51
|
const toolsToAdd = [];
|
|
69
|
-
if (config.
|
|
70
|
-
toolsToAdd.push("distill");
|
|
71
|
-
if (config.tools.compress.permission !== "deny")
|
|
52
|
+
if (config.compress.permission !== "deny")
|
|
72
53
|
toolsToAdd.push("compress");
|
|
73
|
-
if (config.tools.prune.permission !== "deny")
|
|
74
|
-
toolsToAdd.push("prune");
|
|
75
54
|
if (toolsToAdd.length > 0) {
|
|
76
55
|
const existingPrimaryTools = opencodeConfig.experimental?.primary_tools ?? [];
|
|
77
56
|
opencodeConfig.experimental = {
|
|
@@ -84,9 +63,7 @@ const plugin = (async (ctx) => {
|
|
|
84
63
|
const permission = opencodeConfig.permission ?? {};
|
|
85
64
|
opencodeConfig.permission = {
|
|
86
65
|
...permission,
|
|
87
|
-
|
|
88
|
-
compress: config.tools.compress.permission,
|
|
89
|
-
prune: config.tools.prune.permission,
|
|
66
|
+
compress: config.compress.permission,
|
|
90
67
|
};
|
|
91
68
|
},
|
|
92
69
|
};
|
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,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQvD,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQvD,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;AA0OD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF"}
|
|
@@ -48,9 +48,10 @@ function analyzeTokens(state, messages) {
|
|
|
48
48
|
assistant: 0,
|
|
49
49
|
tools: 0,
|
|
50
50
|
toolCount: 0,
|
|
51
|
+
toolsInContextCount: 0,
|
|
51
52
|
prunedTokens: state.stats.totalPruneTokens,
|
|
52
|
-
prunedToolCount:
|
|
53
|
-
prunedMessageCount:
|
|
53
|
+
prunedToolCount: 0,
|
|
54
|
+
prunedMessageCount: 0,
|
|
54
55
|
total: 0,
|
|
55
56
|
};
|
|
56
57
|
let firstAssistant;
|
|
@@ -85,17 +86,27 @@ function analyzeTokens(state, messages) {
|
|
|
85
86
|
const toolOutputParts = [];
|
|
86
87
|
let firstUserText = "";
|
|
87
88
|
let foundFirstUser = false;
|
|
88
|
-
const
|
|
89
|
+
const allToolIds = new Set();
|
|
90
|
+
const activeToolIds = new Set();
|
|
91
|
+
const prunedByMessageToolIds = new Set();
|
|
92
|
+
const allMessageIds = new Set();
|
|
89
93
|
for (const msg of messages) {
|
|
94
|
+
allMessageIds.add(msg.info.id);
|
|
90
95
|
const parts = Array.isArray(msg.parts) ? msg.parts : [];
|
|
91
96
|
const isCompacted = isMessageCompacted(state, msg);
|
|
97
|
+
const isMessagePruned = state.prune.messages.has(msg.info.id);
|
|
92
98
|
const isIgnoredUser = msg.info.role === "user" && isIgnoredUserMessage(msg);
|
|
93
99
|
for (const part of parts) {
|
|
94
100
|
if (part.type === "tool") {
|
|
95
101
|
const toolPart = part;
|
|
96
|
-
if (toolPart.callID
|
|
97
|
-
|
|
98
|
-
|
|
102
|
+
if (toolPart.callID) {
|
|
103
|
+
allToolIds.add(toolPart.callID);
|
|
104
|
+
if (!isCompacted) {
|
|
105
|
+
activeToolIds.add(toolPart.callID);
|
|
106
|
+
}
|
|
107
|
+
if (isMessagePruned) {
|
|
108
|
+
prunedByMessageToolIds.add(toolPart.callID);
|
|
109
|
+
}
|
|
99
110
|
}
|
|
100
111
|
const isPruned = toolPart.callID && state.prune.tools.has(toolPart.callID);
|
|
101
112
|
if (!isCompacted && !isPruned) {
|
|
@@ -129,6 +140,24 @@ function analyzeTokens(state, messages) {
|
|
|
129
140
|
foundFirstUser = true;
|
|
130
141
|
}
|
|
131
142
|
}
|
|
143
|
+
const prunedByToolIds = new Set();
|
|
144
|
+
for (const id of allToolIds) {
|
|
145
|
+
if (state.prune.tools.has(id)) {
|
|
146
|
+
prunedByToolIds.add(id);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const prunedToolIds = new Set([...prunedByToolIds, ...prunedByMessageToolIds]);
|
|
150
|
+
const toolsInContextCount = [...activeToolIds].filter((id) => !prunedByToolIds.has(id)).length;
|
|
151
|
+
let prunedMessageCount = 0;
|
|
152
|
+
for (const id of state.prune.messages.keys()) {
|
|
153
|
+
if (allMessageIds.has(id)) {
|
|
154
|
+
prunedMessageCount++;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
breakdown.toolCount = allToolIds.size;
|
|
158
|
+
breakdown.toolsInContextCount = toolsInContextCount;
|
|
159
|
+
breakdown.prunedToolCount = prunedToolIds.size;
|
|
160
|
+
breakdown.prunedMessageCount = prunedMessageCount;
|
|
132
161
|
const firstUserTokens = countTokens(firstUserText);
|
|
133
162
|
breakdown.user = countTokens(userTextParts.join("\n"));
|
|
134
163
|
const toolInputTokens = countTokens(toolInputParts.join("\n"));
|
|
@@ -151,8 +180,7 @@ function createBar(value, maxValue, width, char = "█") {
|
|
|
151
180
|
function formatContextMessage(breakdown) {
|
|
152
181
|
const lines = [];
|
|
153
182
|
const barWidth = 30;
|
|
154
|
-
const
|
|
155
|
-
const toolsLabel = `Tools (${toolsInContext})`;
|
|
183
|
+
const toolsLabel = `Tools (${breakdown.toolsInContextCount})`;
|
|
156
184
|
const categories = [
|
|
157
185
|
{ label: "System", value: breakdown.system, char: "█" },
|
|
158
186
|
{ label: "User", value: breakdown.user, char: "▓" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../lib/commands/help.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvD,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../lib/commands/help.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvD,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;AA0CD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9E"}
|
|
@@ -11,16 +11,12 @@ const BASE_COMMANDS = [
|
|
|
11
11
|
["/dcp manual [on|off]", "Toggle manual mode or set explicit state"],
|
|
12
12
|
];
|
|
13
13
|
const TOOL_COMMANDS = {
|
|
14
|
-
prune: ["/dcp prune [focus]", "Trigger manual prune tool execution"],
|
|
15
|
-
distill: ["/dcp distill [focus]", "Trigger manual distill tool execution"],
|
|
16
14
|
compress: ["/dcp compress [focus]", "Trigger manual compress tool execution"],
|
|
17
15
|
};
|
|
18
16
|
function getVisibleCommands(config) {
|
|
19
17
|
const commands = [...BASE_COMMANDS];
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
commands.push(TOOL_COMMANDS[tool]);
|
|
23
|
-
}
|
|
18
|
+
if (config.compress.permission !== "deny") {
|
|
19
|
+
commands.push(TOOL_COMMANDS.compress);
|
|
24
20
|
}
|
|
25
21
|
return commands;
|
|
26
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../lib/commands/help.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAWtD,MAAM,aAAa,GAAuB;IACtC,CAAC,cAAc,EAAE,gDAAgD,CAAC;IAClE,CAAC,YAAY,EAAE,6BAA6B,CAAC;IAC7C,CAAC,gBAAgB,EAAE,sDAAsD,CAAC;IAC1E,CAAC,sBAAsB,EAAE,0CAA0C,CAAC;CACvE,CAAA;AAED,MAAM,aAAa,GAAqC;IACpD,
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../lib/commands/help.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAWtD,MAAM,aAAa,GAAuB;IACtC,CAAC,cAAc,EAAE,gDAAgD,CAAC;IAClE,CAAC,YAAY,EAAE,6BAA6B,CAAC;IAC7C,CAAC,gBAAgB,EAAE,sDAAsD,CAAC;IAC1E,CAAC,sBAAsB,EAAE,0CAA0C,CAAC;CACvE,CAAA;AAED,MAAM,aAAa,GAAqC;IACpD,QAAQ,EAAE,CAAC,uBAAuB,EAAE,wCAAwC,CAAC;CAChF,CAAA;AAED,SAAS,kBAAkB,CAAC,MAAoB;IAC5C,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,CAAA;IAEnC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAmB,EAAE,MAAoB;IAChE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;IACrE,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAA;IACzF,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAA;IACzF,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAA;IACzF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAuB;IAC3D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;IAE1D,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IACtB,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAE3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IACxD,MAAM,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAEpE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* /dcp manual [on|off] - Toggle manual mode or set explicit state
|
|
7
|
-
* /dcp prune [focus] - Trigger manual prune execution
|
|
8
|
-
* /dcp distill [focus] - Trigger manual distill execution
|
|
9
7
|
* /dcp compress [focus] - Trigger manual compress execution
|
|
10
8
|
*/
|
|
11
9
|
import type { Logger } from "../logger";
|
|
@@ -20,5 +18,5 @@ export interface ManualCommandContext {
|
|
|
20
18
|
messages: WithParts[];
|
|
21
19
|
}
|
|
22
20
|
export declare function handleManualToggleCommand(ctx: ManualCommandContext, modeArg?: string): Promise<void>;
|
|
23
|
-
export declare function handleManualTriggerCommand(ctx: ManualCommandContext, tool: "
|
|
21
|
+
export declare function handleManualTriggerCommand(ctx: ManualCommandContext, tool: "compress", userFocus?: string): Promise<string | null>;
|
|
24
22
|
//# sourceMappingURL=manual.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manual.d.ts","sourceRoot":"","sources":["../../../lib/commands/manual.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"manual.d.ts","sourceRoot":"","sources":["../../../lib/commands/manual.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AA2B7C,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;AAED,wBAAsB,yBAAyB,CAC3C,GAAG,EAAE,oBAAoB,EACzB,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,0BAA0B,CAC5C,GAAG,EAAE,oBAAoB,EACzB,IAAI,EAAE,UAAU,EAChB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAExB"}
|
|
@@ -4,32 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* /dcp manual [on|off] - Toggle manual mode or set explicit state
|
|
7
|
-
* /dcp prune [focus] - Trigger manual prune execution
|
|
8
|
-
* /dcp distill [focus] - Trigger manual distill execution
|
|
9
7
|
* /dcp compress [focus] - Trigger manual compress execution
|
|
10
8
|
*/
|
|
11
9
|
import { sendIgnoredMessage } from "../ui/notification";
|
|
12
10
|
import { getCurrentParams } from "../strategies/utils";
|
|
13
|
-
|
|
14
|
-
import { buildToolIdList } from "../messages/utils";
|
|
15
|
-
import { buildPrunableToolsList } from "../messages/inject";
|
|
16
|
-
const MANUAL_MODE_ON = "Manual mode is now ON. Use /dcp prune, /dcp distill, or /dcp compress to trigger context tools manually.";
|
|
11
|
+
const MANUAL_MODE_ON = "Manual mode is now ON. Use /dcp compress to trigger context tools manually.";
|
|
17
12
|
const MANUAL_MODE_OFF = "Manual mode is now OFF.";
|
|
18
|
-
const NO_PRUNABLE_TOOLS = "No prunable tool outputs are currently available for manual triggering.";
|
|
19
|
-
const PRUNE_TRIGGER_PROMPT = [
|
|
20
|
-
"<prune triggered manually>",
|
|
21
|
-
"Manual mode trigger received. You must now use the prune tool exactly once.",
|
|
22
|
-
"Find the most significant set of prunable tool outputs to remove safely.",
|
|
23
|
-
"Follow prune policy and avoid pruning outputs that may be needed later.",
|
|
24
|
-
"Return after prune with a brief explanation of what you pruned and why.",
|
|
25
|
-
].join("\n\n");
|
|
26
|
-
const DISTILL_TRIGGER_PROMPT = [
|
|
27
|
-
"<distill triggered manually>",
|
|
28
|
-
"Manual mode trigger received. You must now use the distill tool.",
|
|
29
|
-
"Select the most information-dense prunable outputs and distill them into complete technical substitutes.",
|
|
30
|
-
"Be exhaustive and preserve all critical technical details.",
|
|
31
|
-
"Return after distill with a brief explanation of what was distilled and why.",
|
|
32
|
-
].join("\n\n");
|
|
33
13
|
const COMPRESS_TRIGGER_PROMPT = [
|
|
34
14
|
"<compress triggered manually>",
|
|
35
15
|
"Manual mode trigger received. You must now use the compress tool.",
|
|
@@ -37,19 +17,12 @@ const COMPRESS_TRIGGER_PROMPT = [
|
|
|
37
17
|
"Choose safe boundaries and preserve all critical implementation details.",
|
|
38
18
|
"Return after compress with a brief explanation of what range was compressed.",
|
|
39
19
|
].join("\n\n");
|
|
40
|
-
function getTriggerPrompt(tool,
|
|
41
|
-
const base =
|
|
42
|
-
? PRUNE_TRIGGER_PROMPT
|
|
43
|
-
: tool === "distill"
|
|
44
|
-
? DISTILL_TRIGGER_PROMPT
|
|
45
|
-
: COMPRESS_TRIGGER_PROMPT;
|
|
20
|
+
function getTriggerPrompt(tool, userFocus) {
|
|
21
|
+
const base = COMPRESS_TRIGGER_PROMPT;
|
|
46
22
|
const sections = [base];
|
|
47
23
|
if (userFocus && userFocus.trim().length > 0) {
|
|
48
24
|
sections.push(`Additional user focus:\n${userFocus.trim()}`);
|
|
49
25
|
}
|
|
50
|
-
if (context) {
|
|
51
|
-
sections.push(context);
|
|
52
|
-
}
|
|
53
26
|
return sections.join("\n\n");
|
|
54
27
|
}
|
|
55
28
|
export async function handleManualToggleCommand(ctx, modeArg) {
|
|
@@ -68,18 +41,6 @@ export async function handleManualToggleCommand(ctx, modeArg) {
|
|
|
68
41
|
logger.info("Manual mode toggled", { manualMode: state.manualMode });
|
|
69
42
|
}
|
|
70
43
|
export async function handleManualTriggerCommand(ctx, tool, userFocus) {
|
|
71
|
-
|
|
72
|
-
if (tool === "prune" || tool === "distill") {
|
|
73
|
-
syncToolCache(state, config, logger, messages);
|
|
74
|
-
buildToolIdList(state, messages, logger);
|
|
75
|
-
const prunableToolsList = buildPrunableToolsList(state, config, logger);
|
|
76
|
-
if (!prunableToolsList) {
|
|
77
|
-
const params = getCurrentParams(state, messages, logger);
|
|
78
|
-
await sendIgnoredMessage(client, sessionId, NO_PRUNABLE_TOOLS, params, logger);
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
return getTriggerPrompt(tool, prunableToolsList, userFocus);
|
|
82
|
-
}
|
|
83
|
-
return getTriggerPrompt("compress", undefined, userFocus);
|
|
44
|
+
return getTriggerPrompt(tool, userFocus);
|
|
84
45
|
}
|
|
85
46
|
//# sourceMappingURL=manual.js.map
|