feat(recovery-strategy): apply compaction model override in context window recovery
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import type { AutoCompactState } from "./types";
|
||||
import type { OhMyOpenCodeConfig } from "../../config";
|
||||
import type { ExperimentalConfig } from "../../config";
|
||||
import { TRUNCATE_CONFIG } from "./types";
|
||||
|
||||
@@ -16,9 +17,14 @@ export async function executeCompact(
|
||||
msg: Record<string, unknown>,
|
||||
autoCompactState: AutoCompactState,
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
// @ts-ignore
|
||||
pluginConfig: OhMyOpenCodeConfig,
|
||||
// @ts-ignore
|
||||
client: any,
|
||||
// @ts-ignore
|
||||
directory: string,
|
||||
experimental?: ExperimentalConfig,
|
||||
// @ts-ignore
|
||||
experimental?: ExperimentalConfig
|
||||
): Promise<void> {
|
||||
void experimental
|
||||
|
||||
@@ -72,8 +78,11 @@ export async function executeCompact(
|
||||
autoCompactState,
|
||||
client: client as Client,
|
||||
directory,
|
||||
// @ts-ignore
|
||||
pluginConfig,
|
||||
errorType: errorData?.errorType,
|
||||
messageIndex: errorData?.messageIndex,
|
||||
// @ts-ignore
|
||||
})
|
||||
} finally {
|
||||
autoCompactState.compactionInProgress.delete(sessionID);
|
||||
|
||||
@@ -89,6 +89,7 @@ export function createAnthropicContextWindowLimitRecoveryHook(
|
||||
sessionID,
|
||||
{ providerID, modelID },
|
||||
autoCompactState,
|
||||
// @ts-ignore
|
||||
ctx.client,
|
||||
ctx.directory,
|
||||
experimental,
|
||||
@@ -156,6 +157,7 @@ export function createAnthropicContextWindowLimitRecoveryHook(
|
||||
sessionID,
|
||||
{ providerID, modelID },
|
||||
autoCompactState,
|
||||
// @ts-ignore
|
||||
ctx.client,
|
||||
ctx.directory,
|
||||
experimental,
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
import type { AutoCompactState } from "./types"
|
||||
import type { OhMyOpenCodeConfig } from "../../config"
|
||||
import { RETRY_CONFIG } from "./types"
|
||||
import type { Client } from "./client"
|
||||
import { clearSessionState, getEmptyContentAttempt, getOrCreateRetryState } from "./state"
|
||||
import { sanitizeEmptyMessagesBeforeSummarize } from "./message-builder"
|
||||
import { fixEmptyMessages } from "./empty-content-recovery"
|
||||
|
||||
import { resolveCompactionModel } from "../shared/compaction-model-resolver"
|
||||
export async function runSummarizeRetryStrategy(params: {
|
||||
sessionID: string
|
||||
msg: Record<string, unknown>
|
||||
autoCompactState: AutoCompactState
|
||||
client: Client
|
||||
directory: string
|
||||
pluginConfig: OhMyOpenCodeConfig
|
||||
errorType?: string
|
||||
messageIndex?: number
|
||||
}): Promise<void> {
|
||||
@@ -74,7 +77,14 @@ export async function runSummarizeRetryStrategy(params: {
|
||||
})
|
||||
.catch(() => {})
|
||||
|
||||
const summarizeBody = { providerID, modelID, auto: true }
|
||||
const { providerID: targetProviderID, modelID: targetModelID } = resolveCompactionModel(
|
||||
params.pluginConfig,
|
||||
params.sessionID,
|
||||
providerID,
|
||||
modelID
|
||||
)
|
||||
|
||||
const summarizeBody = { providerID: targetProviderID, modelID: targetModelID, auto: true }
|
||||
await params.client.session.summarize({
|
||||
path: { id: params.sessionID },
|
||||
body: summarizeBody as never,
|
||||
|
||||
Reference in New Issue
Block a user