Skip to content

Commit 6c32649

Browse files
committed
refactor: internalize manual-mode guards into strategies and inject
1 parent 6bf6f60 commit 6c32649

5 files changed

Lines changed: 20 additions & 10 deletions

File tree

lib/hooks.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -112,18 +112,12 @@ export function createChatMessageTransformHandler(
112112
syncToolCache(state, config, logger, output.messages)
113113
buildToolIdList(state, output.messages, logger)
114114

115-
const shouldApplyStrategies = !state.manualMode || config.manualMode.automaticStrategies
116-
if (shouldApplyStrategies) {
117-
deduplicate(state, logger, config, output.messages)
118-
supersedeWrites(state, logger, config, output.messages)
119-
purgeErrors(state, logger, config, output.messages)
120-
}
115+
deduplicate(state, logger, config, output.messages)
116+
supersedeWrites(state, logger, config, output.messages)
117+
purgeErrors(state, logger, config, output.messages)
121118

122119
prune(state, logger, config, output.messages)
123-
124-
if (!state.manualMode) {
125-
insertPruneToolContext(state, config, logger, output.messages)
126-
}
120+
insertPruneToolContext(state, config, logger, output.messages)
127121

128122
applyPendingManualTriggerPrompt(state, output.messages, logger)
129123

lib/messages/inject.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@ export const insertPruneToolContext = (
215215
logger: Logger,
216216
messages: WithParts[],
217217
): void => {
218+
if (state.manualMode) {
219+
return
220+
}
221+
218222
const pruneEnabled = config.tools.prune.permission !== "deny"
219223
const distillEnabled = config.tools.distill.permission !== "deny"
220224
const compressEnabled = config.tools.compress.permission !== "deny"

lib/strategies/deduplication.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ export const deduplicate = (
1515
config: PluginConfig,
1616
messages: WithParts[],
1717
): void => {
18+
if (state.manualMode && !config.manualMode.automaticStrategies) {
19+
return
20+
}
21+
1822
if (!config.strategies.deduplication.enabled) {
1923
return
2024
}

lib/strategies/purge-errors.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ export const purgeErrors = (
1818
config: PluginConfig,
1919
messages: WithParts[],
2020
): void => {
21+
if (state.manualMode && !config.manualMode.automaticStrategies) {
22+
return
23+
}
24+
2125
if (!config.strategies.purgeErrors.enabled) {
2226
return
2327
}

lib/strategies/supersede-writes.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ export const supersedeWrites = (
1818
config: PluginConfig,
1919
messages: WithParts[],
2020
): void => {
21+
if (state.manualMode && !config.manualMode.automaticStrategies) {
22+
return
23+
}
24+
2125
if (!config.strategies.supersedeWrites.enabled) {
2226
return
2327
}

0 commit comments

Comments
 (0)