fix(tui): restore compaction model marker
This commit is contained in:
parent
634386fe0f
commit
76f205d260
13 changed files with 105 additions and 19 deletions
|
|
@ -69,6 +69,7 @@ export type AutoInput = {
|
|||
readonly sessionID: SessionSchema.ID
|
||||
readonly messages: readonly SessionMessage.Info[]
|
||||
readonly model: Model
|
||||
readonly ref: SessionMessage.Assistant["model"]
|
||||
}
|
||||
|
||||
export type ManualInput = {
|
||||
|
|
@ -80,6 +81,7 @@ export type ManualInput = {
|
|||
type Plan = {
|
||||
readonly sessionID: SessionSchema.ID
|
||||
readonly model: Model
|
||||
readonly ref: SessionMessage.Assistant["model"]
|
||||
readonly reason: SessionMessage.Compaction["reason"]
|
||||
readonly prompt: string
|
||||
readonly recent: string
|
||||
|
|
@ -291,6 +293,7 @@ const make = (dependencies: Dependencies) => {
|
|||
yield* dependencies.events.publish(SessionEvent.Compaction.Ended, {
|
||||
sessionID: plan.sessionID,
|
||||
reason: plan.reason,
|
||||
model: plan.ref,
|
||||
text: summary,
|
||||
recent: plan.recent,
|
||||
})
|
||||
|
|
@ -302,6 +305,7 @@ const make = (dependencies: Dependencies) => {
|
|||
return yield* execute({
|
||||
sessionID: input.sessionID,
|
||||
model: input.model,
|
||||
ref: input.ref,
|
||||
reason: "auto",
|
||||
...content,
|
||||
})
|
||||
|
|
@ -350,6 +354,7 @@ const make = (dependencies: Dependencies) => {
|
|||
return yield* execute({
|
||||
sessionID: input.session.id,
|
||||
model: resolved.model,
|
||||
ref: resolved.ref,
|
||||
reason: "manual",
|
||||
inputID: input.inputID,
|
||||
...content,
|
||||
|
|
|
|||
|
|
@ -470,6 +470,7 @@ export function update(adapter: Adapter, event: SessionEvent.Event) {
|
|||
...current,
|
||||
status: "completed",
|
||||
reason: event.data.reason,
|
||||
model: event.data.model,
|
||||
summary: event.data.text,
|
||||
recent: event.data.recent,
|
||||
})
|
||||
|
|
@ -482,6 +483,7 @@ export function update(adapter: Adapter, event: SessionEvent.Event) {
|
|||
status: "completed",
|
||||
metadata: event.metadata,
|
||||
reason: event.data.reason,
|
||||
model: event.data.model,
|
||||
summary: event.data.text,
|
||||
recent: event.data.recent,
|
||||
time: { created: event.created },
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ const layer = Layer.effect(
|
|||
const providerMetadataKey = model.route.providerMetadataKey ?? model.provider
|
||||
const history = yield* SessionHistory.entriesForRunner(db, session.id, instructions)
|
||||
const context = history.entries.map((entry) => entry.message)
|
||||
const compactionInput = { sessionID: session.id, messages: context, model }
|
||||
const compactionInput = { sessionID: session.id, messages: context, model, ref: resolved.ref }
|
||||
if (compaction.required(compactionInput) && !(yield* SessionPending.compaction(db, session.id))) {
|
||||
const compacted = yield* compaction.compact(compactionInput)
|
||||
if (compacted.status === "completed") return { _tag: "RestartAfterCompaction", step: currentStep } as const
|
||||
|
|
@ -331,8 +331,8 @@ const layer = Layer.effect(
|
|||
recoverOverflow &&
|
||||
!publisher.hasRetryEvidence() &&
|
||||
isContextOverflowFailure(overflowFailure ?? streamFailure) &&
|
||||
(yield* restore(recoverOverflow({ sessionID: session.id, messages: context, model }))).status ===
|
||||
"completed"
|
||||
(yield* restore(recoverOverflow({ sessionID: session.id, messages: context, model, ref: resolved.ref })))
|
||||
.status === "completed"
|
||||
)
|
||||
return { _tag: "RestartAfterOverflowCompaction", step: currentStep } as const
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue