Refactor agent loop (#4412)

This commit is contained in:
Dax
2025-11-17 10:57:18 -05:00
committed by GitHub
parent 9fd43ec616
commit a1214fff2e
22 changed files with 1297 additions and 1324 deletions

View File

@@ -27,7 +27,6 @@ import { Global } from "../global"
import { ProjectRoute } from "./project"
import { ToolRegistry } from "../tool/registry"
import { zodToJsonSchema } from "zod-to-json-schema"
import { SessionLock } from "../session/lock"
import { SessionPrompt } from "../session/prompt"
import { SessionCompaction } from "../session/compaction"
import { SessionRevert } from "../session/revert"
@@ -41,6 +40,7 @@ import { TuiEvent } from "@/cli/cmd/tui/event"
import { Snapshot } from "@/snapshot"
import { SessionSummary } from "@/session/summary"
import { GlobalBus } from "@/bus/global"
import { SessionStatus } from "@/session/status"
const ERRORS = {
400: {
@@ -367,6 +367,28 @@ export namespace Server {
return c.json(sessions)
},
)
.get(
"/session/status",
describeRoute({
description: "Get session status",
operationId: "session.status",
responses: {
200: {
description: "Get session status",
content: {
"application/json": {
schema: resolver(z.record(z.string(), SessionStatus.Info)),
},
},
},
...errors(400),
},
}),
async (c) => {
const result = SessionStatus.list()
return c.json(result)
},
)
.get(
"/session/:id",
describeRoute({
@@ -637,7 +659,8 @@ export namespace Server {
}),
),
async (c) => {
return c.json(SessionLock.abort(c.req.valid("param").id))
SessionPrompt.cancel(c.req.valid("param").id)
return c.json(true)
},
)
.post(
@@ -771,7 +794,14 @@ export namespace Server {
async (c) => {
const id = c.req.valid("param").id
const body = c.req.valid("json")
await SessionCompaction.run({ ...body, sessionID: id })
await SessionCompaction.create({
sessionID: id,
model: {
providerID: body.providerID,
modelID: body.modelID,
},
})
await SessionPrompt.loop(id)
return c.json(true)
},
)