diff --git a/src/hooks/context-window-monitor.ts b/src/hooks/context-window-monitor.ts index ce8d756..d2a7af2 100644 --- a/src/hooks/context-window-monitor.ts +++ b/src/hooks/context-window-monitor.ts @@ -1,7 +1,11 @@ import type { PluginInput } from "@opencode-ai/plugin" const ANTHROPIC_DISPLAY_LIMIT = 1_000_000 -const ANTHROPIC_ACTUAL_LIMIT = 200_000 +const ANTHROPIC_ACTUAL_LIMIT = + process.env.ANTHROPIC_1M_CONTEXT === "true" || + process.env.VERTEX_ANTHROPIC_1M_CONTEXT === "true" + ? 1_000_000 + : 200_000 const CONTEXT_WARNING_THRESHOLD = 0.70 const CONTEXT_REMINDER = `[SYSTEM REMINDER - 1M Context Window] diff --git a/src/hooks/preemptive-compaction/index.ts b/src/hooks/preemptive-compaction/index.ts index ecf2c22..91890f4 100644 --- a/src/hooks/preemptive-compaction/index.ts +++ b/src/hooks/preemptive-compaction/index.ts @@ -48,7 +48,11 @@ interface MessageWrapper { } const CLAUDE_MODEL_PATTERN = /claude-(opus|sonnet|haiku)/i -const CLAUDE_DEFAULT_CONTEXT_LIMIT = 200_000 +const CLAUDE_DEFAULT_CONTEXT_LIMIT = + process.env.ANTHROPIC_1M_CONTEXT === "true" || + process.env.VERTEX_ANTHROPIC_1M_CONTEXT === "true" + ? 1_000_000 + : 200_000 function isSupportedModel(modelID: string): boolean { return CLAUDE_MODEL_PATTERN.test(modelID) diff --git a/src/shared/dynamic-truncator.ts b/src/shared/dynamic-truncator.ts index 84a4e6e..33481ea 100644 --- a/src/shared/dynamic-truncator.ts +++ b/src/shared/dynamic-truncator.ts @@ -1,6 +1,10 @@ import type { PluginInput } from "@opencode-ai/plugin"; -const ANTHROPIC_ACTUAL_LIMIT = 200_000; +const ANTHROPIC_ACTUAL_LIMIT = + process.env.ANTHROPIC_1M_CONTEXT === "true" || + process.env.VERTEX_ANTHROPIC_1M_CONTEXT === "true" + ? 1_000_000 + : 200_000; const CHARS_PER_TOKEN_ESTIMATE = 4; const DEFAULT_TARGET_MAX_TOKENS = 50_000;