From f7696a1fbb64fe455452ec37c0812e0f223faf99 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Tue, 30 Dec 2025 11:40:02 +0900 Subject: [PATCH] refactor: rename anthropic-auto-compact to anthropic-context-window-limit-recovery MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The old name 'auto-compact' was misleading - the hook does much more than just compaction. It's a full recovery pipeline for context window limit errors including: - DCP (Dynamic Context Pruning) - Aggressive/single truncation - Summarize with retry - Emergency message revert The new name accurately describes its purpose: recovering from Anthropic context window limit exceeded errors. ๐Ÿค– GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) --- README.ja.md | 2 +- README.ko.md | 2 +- README.md | 2 +- README.zh-cn.md | 2 +- assets/oh-my-opencode.schema.json | 2 +- src/config/schema.ts | 2 +- src/hooks/AGENTS.md | 4 ++-- .../executor.test.ts | 0 .../executor.ts | 0 .../index.ts | 8 ++++---- .../parser.ts | 0 .../pruning-deduplication.test.ts | 0 .../pruning-deduplication.ts | 0 .../pruning-executor.ts | 0 .../pruning-purge-errors.ts | 0 .../pruning-storage.ts | 0 .../pruning-supersede.ts | 0 .../pruning-types.ts | 0 .../storage.ts | 0 .../types.ts | 0 src/hooks/index.ts | 2 +- src/index.ts | 8 ++++---- 22 files changed, 17 insertions(+), 17 deletions(-) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/executor.test.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/executor.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/index.ts (94%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/parser.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/pruning-deduplication.test.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/pruning-deduplication.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/pruning-executor.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/pruning-purge-errors.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/pruning-storage.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/pruning-supersede.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/pruning-types.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/storage.ts (100%) rename src/hooks/{anthropic-auto-compact => anthropic-context-window-limit-recovery}/types.ts (100%) diff --git a/README.ja.md b/README.ja.md index a109035..94f4ad2 100644 --- a/README.ja.md +++ b/README.ja.md @@ -868,7 +868,7 @@ Oh My OpenCode ใฏไปฅไธ‹ใฎๅ ดๆ‰€ใ‹ใ‚‰ใƒ•ใƒƒใ‚ฏใ‚’่ชญใฟ่พผใ‚“ใงๅฎŸ่กŒใ—ใพ } ``` -ๅˆฉ็”จๅฏ่ƒฝใชใƒ•ใƒƒใ‚ฏ๏ผš`todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-auto-compact`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `preemptive-compaction`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks` +ๅˆฉ็”จๅฏ่ƒฝใชใƒ•ใƒƒใ‚ฏ๏ผš`todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `preemptive-compaction`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks` **`auto-update-checker`ใจ`startup-toast`ใซใคใ„ใฆ**: `startup-toast` ใƒ•ใƒƒใ‚ฏใฏ `auto-update-checker` ใฎใ‚ตใƒ–ๆฉŸ่ƒฝใงใ™ใ€‚ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใƒใ‚งใƒƒใ‚ฏใฏๆœ‰ๅŠนใชใพใพ่ตทๅ‹•ใƒˆใƒผใ‚นใƒˆ้€š็Ÿฅใฎใฟใ‚’็„กๅŠนๅŒ–ใ™ใ‚‹ใซใฏใ€`disabled_hooks` ใซ `"startup-toast"` ใ‚’่ฟฝๅŠ ใ—ใฆใใ ใ•ใ„ใ€‚ใ™ในใฆใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใƒใ‚งใƒƒใ‚ฏๆฉŸ่ƒฝ๏ผˆใƒˆใƒผใ‚นใƒˆใ‚’ๅซใ‚€๏ผ‰ใ‚’็„กๅŠนๅŒ–ใ™ใ‚‹ใซใฏใ€`"auto-update-checker"` ใ‚’่ฟฝๅŠ ใ—ใฆใใ ใ•ใ„ใ€‚ diff --git a/README.ko.md b/README.ko.md index 125bb5e..ea5556b 100644 --- a/README.ko.md +++ b/README.ko.md @@ -865,7 +865,7 @@ Schema ์ž๋™ ์™„์„ฑ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค: } ``` -์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ›…: `todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-auto-compact`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `preemptive-compaction`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks` +์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ›…: `todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `preemptive-compaction`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks` **`auto-update-checker`์™€ `startup-toast`์— ๋Œ€ํ•œ ์ฐธ๊ณ ์‚ฌํ•ญ**: `startup-toast` ํ›…์€ `auto-update-checker`์˜ ํ•˜์œ„ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ํ™•์ธ์€ ์œ ์ง€ํ•˜๋ฉด์„œ ์‹œ์ž‘ ํ† ์ŠคํŠธ ์•Œ๋ฆผ๋งŒ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด `disabled_hooks`์— `"startup-toast"`๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ๋ชจ๋“  ์—…๋ฐ์ดํŠธ ํ™•์ธ ๊ธฐ๋Šฅ(ํ† ์ŠคํŠธ ํฌํ•จ)์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด `"auto-update-checker"`๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”. diff --git a/README.md b/README.md index 414097a..901cb8d 100644 --- a/README.md +++ b/README.md @@ -904,7 +904,7 @@ Disable specific built-in hooks via `disabled_hooks` in `~/.config/opencode/oh-m } ``` -Available hooks: `todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-auto-compact`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `preemptive-compaction`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks` +Available hooks: `todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-context-window-limit-recovery`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`, `empty-message-sanitizer`, `preemptive-compaction`, `compaction-context-injector`, `thinking-block-validator`, `claude-code-hooks` **Note on `auto-update-checker` and `startup-toast`**: The `startup-toast` hook is a sub-feature of `auto-update-checker`. To disable only the startup toast notification while keeping update checking enabled, add `"startup-toast"` to `disabled_hooks`. To disable all update checking features (including the toast), add `"auto-update-checker"` to `disabled_hooks`. diff --git a/README.zh-cn.md b/README.zh-cn.md index 1ab23b4..a5034b5 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -872,7 +872,7 @@ Sisyphus Agent ไนŸ่ƒฝ่‡ชๅฎšไน‰๏ผš } ``` -ๅฏๅ…ณ็š„ hook๏ผš`todo-continuation-enforcer`ใ€`context-window-monitor`ใ€`session-recovery`ใ€`session-notification`ใ€`comment-checker`ใ€`grep-output-truncator`ใ€`tool-output-truncator`ใ€`directory-agents-injector`ใ€`directory-readme-injector`ใ€`empty-task-response-detector`ใ€`think-mode`ใ€`anthropic-auto-compact`ใ€`rules-injector`ใ€`background-notification`ใ€`auto-update-checker`ใ€`startup-toast`ใ€`keyword-detector`ใ€`agent-usage-reminder`ใ€`non-interactive-env`ใ€`interactive-bash-session`ใ€`empty-message-sanitizer`ใ€`preemptive-compaction`ใ€`compaction-context-injector`ใ€`thinking-block-validator`ใ€`claude-code-hooks` +ๅฏๅ…ณ็š„ hook๏ผš`todo-continuation-enforcer`ใ€`context-window-monitor`ใ€`session-recovery`ใ€`session-notification`ใ€`comment-checker`ใ€`grep-output-truncator`ใ€`tool-output-truncator`ใ€`directory-agents-injector`ใ€`directory-readme-injector`ใ€`empty-task-response-detector`ใ€`think-mode`ใ€`anthropic-context-window-limit-recovery`ใ€`rules-injector`ใ€`background-notification`ใ€`auto-update-checker`ใ€`startup-toast`ใ€`keyword-detector`ใ€`agent-usage-reminder`ใ€`non-interactive-env`ใ€`interactive-bash-session`ใ€`empty-message-sanitizer`ใ€`preemptive-compaction`ใ€`compaction-context-injector`ใ€`thinking-block-validator`ใ€`claude-code-hooks` **ๅ…ณไบŽ `auto-update-checker` ๅ’Œ `startup-toast`**: `startup-toast` hook ๆ˜ฏ `auto-update-checker` ็š„ๅญๅŠŸ่ƒฝใ€‚่‹ฅๆƒณไฟๆŒๆ›ดๆ–ฐๆฃ€ๆŸฅไฝ†ๅช็ฆ็”จๅฏๅŠจๆ็คบ้€š็Ÿฅ๏ผŒๅœจ `disabled_hooks` ไธญๆทปๅŠ  `"startup-toast"`ใ€‚่‹ฅ่ฆ็ฆ็”จๆ‰€ๆœ‰ๆ›ดๆ–ฐๆฃ€ๆŸฅๅŠŸ่ƒฝ๏ผˆๅŒ…ๆ‹ฌๆ็คบ๏ผ‰๏ผŒๆทปๅŠ  `"auto-update-checker"`ใ€‚ diff --git a/assets/oh-my-opencode.schema.json b/assets/oh-my-opencode.schema.json index e9df15a..1729b7c 100644 --- a/assets/oh-my-opencode.schema.json +++ b/assets/oh-my-opencode.schema.json @@ -50,7 +50,7 @@ "directory-readme-injector", "empty-task-response-detector", "think-mode", - "anthropic-auto-compact", + "anthropic-context-window-limit-recovery", "rules-injector", "background-notification", "auto-update-checker", diff --git a/src/config/schema.ts b/src/config/schema.ts index 888794a..aea9af7 100644 --- a/src/config/schema.ts +++ b/src/config/schema.ts @@ -54,7 +54,7 @@ export const HookNameSchema = z.enum([ "directory-readme-injector", "empty-task-response-detector", "think-mode", - "anthropic-auto-compact", + "anthropic-context-window-limit-recovery", "rules-injector", "background-notification", "auto-update-checker", diff --git a/src/hooks/AGENTS.md b/src/hooks/AGENTS.md index 77ae00f..b83da14 100644 --- a/src/hooks/AGENTS.md +++ b/src/hooks/AGENTS.md @@ -9,7 +9,7 @@ Lifecycle hooks that intercept/modify agent behavior. Inject context, enforce ru ``` hooks/ โ”œโ”€โ”€ agent-usage-reminder/ # Remind to use specialized agents -โ”œโ”€โ”€ anthropic-auto-compact/ # Auto-compact Claude at token limit +โ”œโ”€โ”€ anthropic-context-window-limit-recovery/ # Auto-compact Claude at token limit โ”œโ”€โ”€ auto-update-checker/ # Version update notifications โ”œโ”€โ”€ background-notification/ # OS notify on background task complete โ”œโ”€โ”€ claude-code-hooks/ # Claude Code settings.json integration @@ -40,7 +40,7 @@ hooks/ | Category | Hooks | Purpose | |----------|-------|---------| | Context Injection | directory-agents-injector, directory-readme-injector, rules-injector, compaction-context-injector | Auto-inject relevant context | -| Session Management | session-recovery, anthropic-auto-compact, preemptive-compaction, empty-message-sanitizer | Handle session lifecycle | +| Session Management | session-recovery, anthropic-context-window-limit-recovery, preemptive-compaction, empty-message-sanitizer | Handle session lifecycle | | Output Control | comment-checker, tool-output-truncator | Control agent output quality | | Notifications | session-notification, background-notification, auto-update-checker | OS/user notifications | | Behavior Enforcement | todo-continuation-enforcer, keyword-detector, think-mode, agent-usage-reminder | Enforce agent behavior | diff --git a/src/hooks/anthropic-auto-compact/executor.test.ts b/src/hooks/anthropic-context-window-limit-recovery/executor.test.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/executor.test.ts rename to src/hooks/anthropic-context-window-limit-recovery/executor.test.ts diff --git a/src/hooks/anthropic-auto-compact/executor.ts b/src/hooks/anthropic-context-window-limit-recovery/executor.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/executor.ts rename to src/hooks/anthropic-context-window-limit-recovery/executor.ts diff --git a/src/hooks/anthropic-auto-compact/index.ts b/src/hooks/anthropic-context-window-limit-recovery/index.ts similarity index 94% rename from src/hooks/anthropic-auto-compact/index.ts rename to src/hooks/anthropic-context-window-limit-recovery/index.ts index 8904920..5ed0c27 100644 --- a/src/hooks/anthropic-auto-compact/index.ts +++ b/src/hooks/anthropic-context-window-limit-recovery/index.ts @@ -5,11 +5,11 @@ import { parseAnthropicTokenLimitError } from "./parser" import { executeCompact, getLastAssistant } from "./executor" import { log } from "../../shared/logger" -export interface AnthropicAutoCompactOptions { +export interface AnthropicContextWindowLimitRecoveryOptions { experimental?: ExperimentalConfig } -function createAutoCompactState(): AutoCompactState { +function createRecoveryState(): AutoCompactState { return { pendingCompact: new Set(), errorDataBySession: new Map(), @@ -22,8 +22,8 @@ function createAutoCompactState(): AutoCompactState { } } -export function createAnthropicAutoCompactHook(ctx: PluginInput, options?: AnthropicAutoCompactOptions) { - const autoCompactState = createAutoCompactState() +export function createAnthropicContextWindowLimitRecoveryHook(ctx: PluginInput, options?: AnthropicContextWindowLimitRecoveryOptions) { + const autoCompactState = createRecoveryState() const experimental = options?.experimental const eventHandler = async ({ event }: { event: { type: string; properties?: unknown } }) => { diff --git a/src/hooks/anthropic-auto-compact/parser.ts b/src/hooks/anthropic-context-window-limit-recovery/parser.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/parser.ts rename to src/hooks/anthropic-context-window-limit-recovery/parser.ts diff --git a/src/hooks/anthropic-auto-compact/pruning-deduplication.test.ts b/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.test.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/pruning-deduplication.test.ts rename to src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.test.ts diff --git a/src/hooks/anthropic-auto-compact/pruning-deduplication.ts b/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/pruning-deduplication.ts rename to src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts diff --git a/src/hooks/anthropic-auto-compact/pruning-executor.ts b/src/hooks/anthropic-context-window-limit-recovery/pruning-executor.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/pruning-executor.ts rename to src/hooks/anthropic-context-window-limit-recovery/pruning-executor.ts diff --git a/src/hooks/anthropic-auto-compact/pruning-purge-errors.ts b/src/hooks/anthropic-context-window-limit-recovery/pruning-purge-errors.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/pruning-purge-errors.ts rename to src/hooks/anthropic-context-window-limit-recovery/pruning-purge-errors.ts diff --git a/src/hooks/anthropic-auto-compact/pruning-storage.ts b/src/hooks/anthropic-context-window-limit-recovery/pruning-storage.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/pruning-storage.ts rename to src/hooks/anthropic-context-window-limit-recovery/pruning-storage.ts diff --git a/src/hooks/anthropic-auto-compact/pruning-supersede.ts b/src/hooks/anthropic-context-window-limit-recovery/pruning-supersede.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/pruning-supersede.ts rename to src/hooks/anthropic-context-window-limit-recovery/pruning-supersede.ts diff --git a/src/hooks/anthropic-auto-compact/pruning-types.ts b/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/pruning-types.ts rename to src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts diff --git a/src/hooks/anthropic-auto-compact/storage.ts b/src/hooks/anthropic-context-window-limit-recovery/storage.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/storage.ts rename to src/hooks/anthropic-context-window-limit-recovery/storage.ts diff --git a/src/hooks/anthropic-auto-compact/types.ts b/src/hooks/anthropic-context-window-limit-recovery/types.ts similarity index 100% rename from src/hooks/anthropic-auto-compact/types.ts rename to src/hooks/anthropic-context-window-limit-recovery/types.ts diff --git a/src/hooks/index.ts b/src/hooks/index.ts index a409813..7428018 100644 --- a/src/hooks/index.ts +++ b/src/hooks/index.ts @@ -7,7 +7,7 @@ export { createToolOutputTruncatorHook } from "./tool-output-truncator"; export { createDirectoryAgentsInjectorHook } from "./directory-agents-injector"; export { createDirectoryReadmeInjectorHook } from "./directory-readme-injector"; export { createEmptyTaskResponseDetectorHook } from "./empty-task-response-detector"; -export { createAnthropicAutoCompactHook, type AnthropicAutoCompactOptions } from "./anthropic-auto-compact"; +export { createAnthropicContextWindowLimitRecoveryHook, type AnthropicContextWindowLimitRecoveryOptions } from "./anthropic-context-window-limit-recovery"; export { createPreemptiveCompactionHook, type PreemptiveCompactionOptions, type SummarizeContext, type BeforeSummarizeCallback } from "./preemptive-compaction"; export { createCompactionContextInjector } from "./compaction-context-injector"; export { createThinkModeHook } from "./think-mode"; diff --git a/src/index.ts b/src/index.ts index f02721c..d7decfc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,7 +12,7 @@ import { createEmptyTaskResponseDetectorHook, createThinkModeHook, createClaudeCodeHooksHook, - createAnthropicAutoCompactHook, + createAnthropicContextWindowLimitRecoveryHook, createPreemptiveCompactionHook, createCompactionContextInjector, createRulesInjectorHook, @@ -266,8 +266,8 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { const claudeCodeHooks = createClaudeCodeHooksHook(ctx, { disabledHooks: (pluginConfig.claude_code?.hooks ?? true) ? undefined : true, }); - const anthropicAutoCompact = isHookEnabled("anthropic-auto-compact") - ? createAnthropicAutoCompactHook(ctx, { experimental: pluginConfig.experimental }) + const anthropicContextWindowLimitRecovery = isHookEnabled("anthropic-context-window-limit-recovery") + ? createAnthropicContextWindowLimitRecoveryHook(ctx, { experimental: pluginConfig.experimental }) : null; const compactionContextInjector = createCompactionContextInjector(); const preemptiveCompaction = createPreemptiveCompactionHook(ctx, { @@ -566,7 +566,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { await directoryReadmeInjector?.event(input); await rulesInjector?.event(input); await thinkMode?.event(input); - await anthropicAutoCompact?.event(input); + await anthropicContextWindowLimitRecovery?.event(input); await preemptiveCompaction?.event(input); await agentUsageReminder?.event(input); await interactiveBashSession?.event(input);