@tarquinen/opencode-dcp 2.0.1 → 2.0.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -4
- package/dist/lib/commands/context.js +3 -3
- package/dist/lib/commands/context.js.map +1 -1
- package/dist/lib/commands/help.d.ts +2 -0
- package/dist/lib/commands/help.d.ts.map +1 -1
- package/dist/lib/commands/help.js +33 -8
- package/dist/lib/commands/help.js.map +1 -1
- package/dist/lib/commands/manual.d.ts +27 -0
- package/dist/lib/commands/manual.d.ts.map +1 -0
- package/dist/lib/commands/manual.js +85 -0
- package/dist/lib/commands/manual.js.map +1 -0
- package/dist/lib/commands/stats.js +2 -2
- package/dist/lib/commands/stats.js.map +1 -1
- package/dist/lib/commands/sweep.d.ts.map +1 -1
- package/dist/lib/commands/sweep.js +10 -8
- package/dist/lib/commands/sweep.js.map +1 -1
- package/dist/lib/config.d.ts +13 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +97 -17
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts +1 -1
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +70 -33
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/messages/inject.d.ts +1 -0
- package/dist/lib/messages/inject.d.ts.map +1 -1
- package/dist/lib/messages/inject.js +38 -12
- package/dist/lib/messages/inject.js.map +1 -1
- package/dist/lib/messages/prune.js +6 -6
- package/dist/lib/messages/prune.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 +10 -0
- package/dist/lib/prompts/_codegen/system.generated.js.map +1 -1
- package/dist/lib/prompts/index.d.ts +1 -0
- package/dist/lib/prompts/index.d.ts.map +1 -1
- package/dist/lib/prompts/index.js +1 -1
- package/dist/lib/prompts/index.js.map +1 -1
- package/dist/lib/shared-utils.js +1 -1
- package/dist/lib/shared-utils.js.map +1 -1
- package/dist/lib/state/persistence.d.ts +5 -3
- package/dist/lib/state/persistence.d.ts.map +1 -1
- package/dist/lib/state/persistence.js +12 -6
- package/dist/lib/state/persistence.js.map +1 -1
- package/dist/lib/state/state.d.ts +2 -2
- package/dist/lib/state/state.d.ts.map +1 -1
- package/dist/lib/state/state.js +18 -15
- package/dist/lib/state/state.js.map +1 -1
- package/dist/lib/state/tool-cache.d.ts +2 -2
- package/dist/lib/state/tool-cache.d.ts.map +1 -1
- package/dist/lib/state/tool-cache.js +2 -2
- package/dist/lib/state/tool-cache.js.map +1 -1
- package/dist/lib/state/types.d.ts +8 -2
- package/dist/lib/state/types.d.ts.map +1 -1
- package/dist/lib/state/utils.d.ts +1 -0
- package/dist/lib/state/utils.d.ts.map +1 -1
- package/dist/lib/state/utils.js +9 -2
- 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 +12 -5
- package/dist/lib/strategies/deduplication.js.map +1 -1
- package/dist/lib/strategies/purge-errors.d.ts.map +1 -1
- package/dist/lib/strategies/purge-errors.js +8 -4
- 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 +17 -7
- package/dist/lib/strategies/supersede-writes.js.map +1 -1
- package/dist/lib/strategies/utils.d.ts +2 -1
- package/dist/lib/strategies/utils.d.ts.map +1 -1
- package/dist/lib/strategies/utils.js +18 -19
- package/dist/lib/strategies/utils.js.map +1 -1
- package/dist/lib/tools/compress.d.ts.map +1 -1
- package/dist/lib/tools/compress.js +20 -16
- package/dist/lib/tools/compress.js.map +1 -1
- package/dist/lib/tools/prune-shared.d.ts.map +1 -1
- package/dist/lib/tools/prune-shared.js +10 -5
- package/dist/lib/tools/prune-shared.js.map +1 -1
- package/dist/lib/tools/utils.d.ts +6 -18
- package/dist/lib/tools/utils.d.ts.map +1 -1
- package/dist/lib/tools/utils.js +157 -76
- package/dist/lib/tools/utils.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -89,6 +89,14 @@ DCP uses its own config file:
|
|
|
89
89
|
> // Additional tools to protect from pruning via commands (e.g., /dcp sweep)
|
|
90
90
|
> "protectedTools": [],
|
|
91
91
|
> },
|
|
92
|
+
> // Manual mode: disables autonomous context management,
|
|
93
|
+
> // tools only run when explicitly triggered via /dcp commands
|
|
94
|
+
> "manualMode": {
|
|
95
|
+
> "enabled": false,
|
|
96
|
+
> // When true, automatic strategies (deduplication, supersedeWrites, purgeErrors)
|
|
97
|
+
> // still run even in manual mode
|
|
98
|
+
> "automaticStrategies": true,
|
|
99
|
+
> },
|
|
92
100
|
> // Protect from pruning for <turns> message turns past tool invocation
|
|
93
101
|
> "turnProtection": {
|
|
94
102
|
> "enabled": false,
|
|
@@ -104,11 +112,17 @@ DCP uses its own config file:
|
|
|
104
112
|
> // Nudge the LLM to use prune tools (every <nudgeFrequency> tool results)
|
|
105
113
|
> "nudgeEnabled": true,
|
|
106
114
|
> "nudgeFrequency": 10,
|
|
107
|
-
> // Token limit at which the model
|
|
108
|
-
> //
|
|
109
|
-
> // the model's context window to stay in the "smart zone".
|
|
115
|
+
> // Token limit at which the model compresses session context
|
|
116
|
+
> // to keep the model in the "smart zone" (not a hard limit)
|
|
110
117
|
> // Accepts: number or "X%" (percentage of model's context window)
|
|
111
|
-
> "contextLimit":
|
|
118
|
+
> "contextLimit": 100000,
|
|
119
|
+
> // Optional per-model overrides by exact providerID/modelID
|
|
120
|
+
> // Accepts: number or "X%"
|
|
121
|
+
> // Example:
|
|
122
|
+
> // "modelLimits": {
|
|
123
|
+
> // "openai/gpt-5": 120000,
|
|
124
|
+
> // "anthropic/claude-3-7-sonnet": "80%"
|
|
125
|
+
> // },
|
|
112
126
|
> // Additional tools to protect from pruning
|
|
113
127
|
> "protectedTools": [],
|
|
114
128
|
> },
|
|
@@ -166,6 +180,10 @@ DCP provides a `/dcp` slash command:
|
|
|
166
180
|
- `/dcp context` — Shows a breakdown of your current session's token usage by category (system, user, assistant, tools, etc.) and how much has been saved through pruning.
|
|
167
181
|
- `/dcp stats` — Shows cumulative pruning statistics across all sessions.
|
|
168
182
|
- `/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
|
+
- `/dcp manual [on|off]` — Toggle manual mode or set explicit state. When on, the AI will not autonomously use context management tools.
|
|
184
|
+
- `/dcp prune [focus]` — Trigger a single prune tool execution. Optional focus text directs the AI's pruning decisions.
|
|
185
|
+
- `/dcp distill [focus]` — Trigger a single distill tool execution. Optional focus text directs what to distill.
|
|
186
|
+
- `/dcp compress [focus]` — Trigger a single compress tool execution. Optional focus text directs what range to compress.
|
|
169
187
|
|
|
170
188
|
### Protected Tools
|
|
171
189
|
|
|
@@ -49,8 +49,8 @@ function analyzeTokens(state, messages) {
|
|
|
49
49
|
tools: 0,
|
|
50
50
|
toolCount: 0,
|
|
51
51
|
prunedTokens: state.stats.totalPruneTokens,
|
|
52
|
-
prunedToolCount: state.prune.
|
|
53
|
-
prunedMessageCount: state.prune.
|
|
52
|
+
prunedToolCount: state.prune.tools.size,
|
|
53
|
+
prunedMessageCount: state.prune.messages.size,
|
|
54
54
|
total: 0,
|
|
55
55
|
};
|
|
56
56
|
let firstAssistant;
|
|
@@ -97,7 +97,7 @@ function analyzeTokens(state, messages) {
|
|
|
97
97
|
breakdown.toolCount++;
|
|
98
98
|
foundToolIds.add(toolPart.callID);
|
|
99
99
|
}
|
|
100
|
-
const isPruned = toolPart.callID && state.prune.
|
|
100
|
+
const isPruned = toolPart.callID && state.prune.tools.has(toolPart.callID);
|
|
101
101
|
if (!isCompacted && !isPruned) {
|
|
102
102
|
if (toolPart.state?.input) {
|
|
103
103
|
const inputStr = typeof toolPart.state.input === "string"
|
|
@@ -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;AAuBnE,SAAS,aAAa,CAAC,KAAmB,EAAE,QAAqB;IAC7D,MAAM,SAAS,GAAmB;QAC9B,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB;QAC1C,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
* Shows available DCP commands and their descriptions.
|
|
4
4
|
*/
|
|
5
5
|
import type { Logger } from "../logger";
|
|
6
|
+
import type { PluginConfig } from "../config";
|
|
6
7
|
import type { SessionState, WithParts } from "../state";
|
|
7
8
|
export interface HelpCommandContext {
|
|
8
9
|
client: any;
|
|
9
10
|
state: SessionState;
|
|
11
|
+
config: PluginConfig;
|
|
10
12
|
logger: Logger;
|
|
11
13
|
sessionId: string;
|
|
12
14
|
messages: WithParts[];
|
|
@@ -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,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvD,MAAM,WAAW,kBAAkB;IAC/B,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":"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;AA4CD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9E"}
|
|
@@ -4,21 +4,46 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { sendIgnoredMessage } from "../ui/notification";
|
|
6
6
|
import { getCurrentParams } from "../strategies/utils";
|
|
7
|
-
|
|
7
|
+
const BASE_COMMANDS = [
|
|
8
|
+
["/dcp context", "Show token usage breakdown for current session"],
|
|
9
|
+
["/dcp stats", "Show DCP pruning statistics"],
|
|
10
|
+
["/dcp sweep [n]", "Prune tools since last user message, or last n tools"],
|
|
11
|
+
["/dcp manual [on|off]", "Toggle manual mode or set explicit state"],
|
|
12
|
+
];
|
|
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
|
+
compress: ["/dcp compress [focus]", "Trigger manual compress tool execution"],
|
|
17
|
+
};
|
|
18
|
+
function getVisibleCommands(config) {
|
|
19
|
+
const commands = [...BASE_COMMANDS];
|
|
20
|
+
for (const tool of ["prune", "distill", "compress"]) {
|
|
21
|
+
if (config.tools[tool].permission !== "deny") {
|
|
22
|
+
commands.push(TOOL_COMMANDS[tool]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return commands;
|
|
26
|
+
}
|
|
27
|
+
function formatHelpMessage(manualMode, config) {
|
|
28
|
+
const commands = getVisibleCommands(config);
|
|
29
|
+
const colWidth = Math.max(...commands.map(([cmd]) => cmd.length)) + 4;
|
|
8
30
|
const lines = [];
|
|
9
|
-
lines.push("
|
|
10
|
-
lines.push("│
|
|
11
|
-
lines.push("
|
|
31
|
+
lines.push("╭─────────────────────────────────────────────────────────────────────────╮");
|
|
32
|
+
lines.push("│ DCP Commands │");
|
|
33
|
+
lines.push("╰─────────────────────────────────────────────────────────────────────────╯");
|
|
34
|
+
lines.push("");
|
|
35
|
+
lines.push(` ${"Manual mode:".padEnd(colWidth)}${manualMode ? "ON" : "OFF"}`);
|
|
12
36
|
lines.push("");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
37
|
+
for (const [cmd, desc] of commands) {
|
|
38
|
+
lines.push(` ${cmd.padEnd(colWidth)}${desc}`);
|
|
39
|
+
}
|
|
16
40
|
lines.push("");
|
|
17
41
|
return lines.join("\n");
|
|
18
42
|
}
|
|
19
43
|
export async function handleHelpCommand(ctx) {
|
|
20
44
|
const { client, state, logger, sessionId, messages } = ctx;
|
|
21
|
-
const
|
|
45
|
+
const { config } = ctx;
|
|
46
|
+
const message = formatHelpMessage(state.manualMode, config);
|
|
22
47
|
const params = getCurrentParams(state, messages, logger);
|
|
23
48
|
await sendIgnoredMessage(client, sessionId, message, params, logger);
|
|
24
49
|
logger.info("Help command executed");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../lib/commands/help.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../lib/commands/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DCP Manual mode command handler.
|
|
3
|
+
* Handles toggling manual mode and triggering individual tool executions.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
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
|
+
* /dcp compress [focus] - Trigger manual compress execution
|
|
10
|
+
*/
|
|
11
|
+
import type { Logger } from "../logger";
|
|
12
|
+
import type { SessionState, WithParts } from "../state";
|
|
13
|
+
import type { PluginConfig } from "../config";
|
|
14
|
+
export interface ManualCommandContext {
|
|
15
|
+
client: any;
|
|
16
|
+
state: SessionState;
|
|
17
|
+
config: PluginConfig;
|
|
18
|
+
logger: Logger;
|
|
19
|
+
sessionId: string;
|
|
20
|
+
messages: WithParts[];
|
|
21
|
+
}
|
|
22
|
+
export declare function handleManualToggleCommand(ctx: ManualCommandContext, modeArg?: string): Promise<void>;
|
|
23
|
+
export interface ManualTriggerResult {
|
|
24
|
+
prompt: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function handleManualTriggerCommand(ctx: ManualCommandContext, tool: "prune" | "distill" | "compress", userFocus?: string): Promise<ManualTriggerResult | null>;
|
|
27
|
+
//# sourceMappingURL=manual.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual.d.ts","sourceRoot":"","sources":["../../../lib/commands/manual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;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;AA6D7C,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,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,0BAA0B,CAC5C,GAAG,EAAE,oBAAoB,EACzB,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,EACtC,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAiBrC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DCP Manual mode command handler.
|
|
3
|
+
* Handles toggling manual mode and triggering individual tool executions.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
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
|
+
* /dcp compress [focus] - Trigger manual compress execution
|
|
10
|
+
*/
|
|
11
|
+
import { sendIgnoredMessage } from "../ui/notification";
|
|
12
|
+
import { getCurrentParams } from "../strategies/utils";
|
|
13
|
+
import { syncToolCache } from "../state/tool-cache";
|
|
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.";
|
|
17
|
+
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
|
+
const COMPRESS_TRIGGER_PROMPT = [
|
|
34
|
+
"<compress triggered manually>",
|
|
35
|
+
"Manual mode trigger received. You must now use the compress tool.",
|
|
36
|
+
"Find the most significant completed section of the conversation that can be compressed into a high-fidelity technical summary.",
|
|
37
|
+
"Choose safe boundaries and preserve all critical implementation details.",
|
|
38
|
+
"Return after compress with a brief explanation of what range was compressed.",
|
|
39
|
+
].join("\n\n");
|
|
40
|
+
function getTriggerPrompt(tool, context, userFocus) {
|
|
41
|
+
const base = tool === "prune"
|
|
42
|
+
? PRUNE_TRIGGER_PROMPT
|
|
43
|
+
: tool === "distill"
|
|
44
|
+
? DISTILL_TRIGGER_PROMPT
|
|
45
|
+
: COMPRESS_TRIGGER_PROMPT;
|
|
46
|
+
const sections = [base];
|
|
47
|
+
if (userFocus && userFocus.trim().length > 0) {
|
|
48
|
+
sections.push(`Additional user focus:\n${userFocus.trim()}`);
|
|
49
|
+
}
|
|
50
|
+
if (context) {
|
|
51
|
+
sections.push(context);
|
|
52
|
+
}
|
|
53
|
+
return sections.join("\n\n");
|
|
54
|
+
}
|
|
55
|
+
export async function handleManualToggleCommand(ctx, modeArg) {
|
|
56
|
+
const { client, state, logger, sessionId, messages } = ctx;
|
|
57
|
+
if (modeArg === "on") {
|
|
58
|
+
state.manualMode = true;
|
|
59
|
+
}
|
|
60
|
+
else if (modeArg === "off") {
|
|
61
|
+
state.manualMode = false;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
state.manualMode = !state.manualMode;
|
|
65
|
+
}
|
|
66
|
+
const params = getCurrentParams(state, messages, logger);
|
|
67
|
+
await sendIgnoredMessage(client, sessionId, state.manualMode ? MANUAL_MODE_ON : MANUAL_MODE_OFF, params, logger);
|
|
68
|
+
logger.info("Manual mode toggled", { manualMode: state.manualMode });
|
|
69
|
+
}
|
|
70
|
+
export async function handleManualTriggerCommand(ctx, tool, userFocus) {
|
|
71
|
+
const { client, state, config, logger, sessionId, messages } = ctx;
|
|
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 { prompt: getTriggerPrompt(tool, prunableToolsList, userFocus) };
|
|
82
|
+
}
|
|
83
|
+
return { prompt: getTriggerPrompt("compress", undefined, userFocus) };
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=manual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../lib/commands/manual.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,8 +30,8 @@ export async function handleStatsCommand(ctx) {
|
|
|
30
30
|
const { client, state, logger, sessionId, messages } = ctx;
|
|
31
31
|
// Session stats from in-memory state
|
|
32
32
|
const sessionTokens = state.stats.totalPruneTokens;
|
|
33
|
-
const sessionTools = state.prune.
|
|
34
|
-
const sessionMessages = state.prune.
|
|
33
|
+
const sessionTools = state.prune.tools.size;
|
|
34
|
+
const sessionMessages = state.prune.messages.size;
|
|
35
35
|
// All-time stats from storage files
|
|
36
36
|
const allTime = await loadAllSessionStats(logger);
|
|
37
37
|
const message = formatStatsMessage(sessionTokens, sessionTools, sessionMessages, allTime);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../lib/commands/stats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAwB,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAUtD,SAAS,kBAAkB,CACvB,aAAqB,EACrB,YAAoB,EACpB,eAAuB,EACvB,OAAwB;IAExB,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,uBAAuB,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IACpE,KAAK,CAAC,IAAI,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,uBAAuB,eAAe,EAAE,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,uBAAuB,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAC1E,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAEzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAwB;IAC7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;IAE1D,qCAAqC;IACrC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAA;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../lib/commands/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../../../lib/commands/sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../../../lib/commands/sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAU7C,MAAM,WAAW,mBAAmB;IAChC,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;IACrB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;CAC3B;AA6FD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IhF"}
|
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { sendIgnoredMessage } from "../ui/notification";
|
|
10
10
|
import { formatPrunedItemsList } from "../ui/utils";
|
|
11
|
-
import { getCurrentParams,
|
|
11
|
+
import { getCurrentParams, getTotalToolTokens } from "../strategies/utils";
|
|
12
12
|
import { buildToolIdList, isIgnoredUserMessage } from "../messages/utils";
|
|
13
13
|
import { saveSessionState } from "../state/persistence";
|
|
14
14
|
import { isMessageCompacted } from "../shared-utils";
|
|
15
15
|
import { getFilePathsFromParameters, isProtected } from "../protected-file-patterns";
|
|
16
|
+
import { syncToolCache } from "../state/tool-cache";
|
|
16
17
|
function findLastUserMessageIndex(messages) {
|
|
17
18
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
18
19
|
const msg = messages[i];
|
|
@@ -87,6 +88,8 @@ export async function handleSweepCommand(ctx) {
|
|
|
87
88
|
const { client, state, config, logger, sessionId, messages, args, workingDirectory } = ctx;
|
|
88
89
|
const params = getCurrentParams(state, messages, logger);
|
|
89
90
|
const protectedTools = config.commands.protectedTools;
|
|
91
|
+
syncToolCache(state, config, logger, messages);
|
|
92
|
+
buildToolIdList(state, messages, logger);
|
|
90
93
|
// Parse optional numeric argument
|
|
91
94
|
const numArg = args[0] ? parseInt(args[0], 10) : null;
|
|
92
95
|
const isLastNMode = numArg !== null && !isNaN(numArg) && numArg > 0;
|
|
@@ -95,9 +98,8 @@ export async function handleSweepCommand(ctx) {
|
|
|
95
98
|
if (isLastNMode) {
|
|
96
99
|
// Mode: Sweep last N tools
|
|
97
100
|
mode = "last-n";
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
toolIdsToSweep = allToolIds.slice(startIndex);
|
|
101
|
+
const startIndex = Math.max(0, state.toolIdList.length - numArg);
|
|
102
|
+
toolIdsToSweep = state.toolIdList.slice(startIndex);
|
|
101
103
|
logger.info(`Sweep command: last ${numArg} mode, found ${toolIdsToSweep.length} tools`);
|
|
102
104
|
}
|
|
103
105
|
else {
|
|
@@ -118,7 +120,7 @@ export async function handleSweepCommand(ctx) {
|
|
|
118
120
|
}
|
|
119
121
|
// Filter out already-pruned tools, protected tools, and protected file paths
|
|
120
122
|
const newToolIds = toolIdsToSweep.filter((id) => {
|
|
121
|
-
if (state.prune.
|
|
123
|
+
if (state.prune.tools.has(id)) {
|
|
122
124
|
return false;
|
|
123
125
|
}
|
|
124
126
|
const entry = state.toolParameters.get(id);
|
|
@@ -157,12 +159,12 @@ export async function handleSweepCommand(ctx) {
|
|
|
157
159
|
logger.info("Sweep command: no new tools to sweep", { skippedProtected });
|
|
158
160
|
return;
|
|
159
161
|
}
|
|
162
|
+
const tokensSaved = getTotalToolTokens(state, newToolIds);
|
|
160
163
|
// Add to prune list
|
|
161
164
|
for (const id of newToolIds) {
|
|
162
|
-
state.
|
|
165
|
+
const entry = state.toolParameters.get(id);
|
|
166
|
+
state.prune.tools.set(id, entry?.tokenCount ?? 0);
|
|
163
167
|
}
|
|
164
|
-
// Calculate tokens saved
|
|
165
|
-
const tokensSaved = calculateTokensSaved(state, messages, newToolIds);
|
|
166
168
|
state.stats.pruneTokenCounter += tokensSaved;
|
|
167
169
|
state.stats.totalPruneTokens += state.stats.pruneTokenCounter;
|
|
168
170
|
state.stats.pruneTokenCounter = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sweep.js","sourceRoot":"","sources":["../../../lib/commands/sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"sweep.js","sourceRoot":"","sources":["../../../lib/commands/sweep.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export interface ToolSettings {
|
|
|
19
19
|
nudgeFrequency: number;
|
|
20
20
|
protectedTools: string[];
|
|
21
21
|
contextLimit: number | `${number}%`;
|
|
22
|
+
modelLimits?: Record<string, number | `${number}%`>;
|
|
22
23
|
}
|
|
23
24
|
export interface Tools {
|
|
24
25
|
settings: ToolSettings;
|
|
@@ -30,6 +31,10 @@ export interface Commands {
|
|
|
30
31
|
enabled: boolean;
|
|
31
32
|
protectedTools: string[];
|
|
32
33
|
}
|
|
34
|
+
export interface ManualModeConfig {
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
automaticStrategies: boolean;
|
|
37
|
+
}
|
|
33
38
|
export interface SupersedeWrites {
|
|
34
39
|
enabled: boolean;
|
|
35
40
|
}
|
|
@@ -48,6 +53,7 @@ export interface PluginConfig {
|
|
|
48
53
|
pruneNotification: "off" | "minimal" | "detailed";
|
|
49
54
|
pruneNotificationType: "chat" | "toast";
|
|
50
55
|
commands: Commands;
|
|
56
|
+
manualMode: ManualModeConfig;
|
|
51
57
|
turnProtection: TurnProtection;
|
|
52
58
|
protectedFilePatterns: string[];
|
|
53
59
|
tools: Tools;
|
|
@@ -59,5 +65,12 @@ export interface PluginConfig {
|
|
|
59
65
|
}
|
|
60
66
|
export declare const VALID_CONFIG_KEYS: Set<string>;
|
|
61
67
|
export declare function getInvalidConfigKeys(userConfig: Record<string, any>): string[];
|
|
68
|
+
interface ValidationError {
|
|
69
|
+
key: string;
|
|
70
|
+
expected: string;
|
|
71
|
+
actual: string;
|
|
72
|
+
}
|
|
73
|
+
export declare function validateConfigTypes(config: Record<string, any>): ValidationError[];
|
|
62
74
|
export declare function getConfig(ctx: PluginInput): PluginConfig;
|
|
75
|
+
export {};
|
|
63
76
|
//# 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":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;CACvC;AAED,MAAM,WAAW,WAAW;IACxB,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;IACpC,gBAAgB,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;IACpC,eAAe,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,YAAY,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;CACvC;AAED,MAAM,WAAW,WAAW;IACxB,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;IACpC,gBAAgB,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;IACpC,eAAe,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,YAAY,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,KAAK;IAClB,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,SAAS,CAAA;CACnB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,iBAAiB,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAA;IACjD,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAA;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE;QACR,aAAa,EAAE,aAAa,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,WAAW,EAAE,WAAW,CAAA;KAC3B,CAAA;CACJ;AAeD,eAAO,MAAM,iBAAiB,aA8C5B,CAAA;AAsBF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAG9E;AAGD,UAAU,eAAe;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,EAAE,CAkVlF;AA0UD,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAyIxD"}
|