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