diff options
Diffstat (limited to 'packages/transport-http/src')
| -rw-r--r-- | packages/transport-http/src/app.test.ts | 9 | ||||
| -rw-r--r-- | packages/transport-http/src/app.ts | 7 | ||||
| -rw-r--r-- | packages/transport-http/src/extension.ts | 1 | ||||
| -rw-r--r-- | packages/transport-http/src/server.bun.test.ts | 3 |
4 files changed, 20 insertions, 0 deletions
diff --git a/packages/transport-http/src/app.test.ts b/packages/transport-http/src/app.test.ts index b265f5e..674fd94 100644 --- a/packages/transport-http/src/app.test.ts +++ b/packages/transport-http/src/app.test.ts @@ -165,6 +165,9 @@ function createFakeOrchestrator(events: AgentEvent[]): SessionOrchestrator { closeConversation() { return { abortedTurn: false }; }, + stopTurn() { + return { abortedTurn: false }; + }, async handleMessage(input) { for (const event of events) { input.onEvent(event); @@ -198,6 +201,9 @@ function createCapturingOrchestrator(): SessionOrchestrator & { closeConversation() { return { abortedTurn: false }; }, + stopTurn() { + return { abortedTurn: false }; + }, async handleMessage(input) { state.received = input; }, @@ -221,6 +227,9 @@ function createThrowingOrchestrator(error: Error): SessionOrchestrator { closeConversation() { return { abortedTurn: false }; }, + stopTurn() { + return { abortedTurn: false }; + }, async handleMessage() { throw error; }, diff --git a/packages/transport-http/src/app.ts b/packages/transport-http/src/app.ts index 64e46fd..a2ee18c 100644 --- a/packages/transport-http/src/app.ts +++ b/packages/transport-http/src/app.ts @@ -396,6 +396,13 @@ export function createApp(opts: CreateServerOptions): Hono { return c.json(body, 200); }); + app.post("/conversations/:id/stop", (c) => { + const conversationId = c.req.param("id"); + const { abortedTurn } = opts.orchestrator.stopTurn(conversationId); + log.info("conversations: stop", { conversationId, abortedTurn }); + return c.json({ conversationId, abortedTurn }, 200); + }); + app.post("/conversations/:id/queue", async (c) => { const conversationId = c.req.param("id"); diff --git a/packages/transport-http/src/extension.ts b/packages/transport-http/src/extension.ts index 351dd4a..f7af615 100644 --- a/packages/transport-http/src/extension.ts +++ b/packages/transport-http/src/extension.ts @@ -39,6 +39,7 @@ export const manifest: Manifest = { "/conversations/:id/open", "/conversations/:id/queue", "/conversations/:id/reasoning-effort", + "/conversations/:id/stop", "/conversations/:id/title", "/health", "/models", diff --git a/packages/transport-http/src/server.bun.test.ts b/packages/transport-http/src/server.bun.test.ts index 3b7700e..fa519af 100644 --- a/packages/transport-http/src/server.bun.test.ts +++ b/packages/transport-http/src/server.bun.test.ts @@ -92,6 +92,9 @@ function fakeOrchestrator(): SessionOrchestrator { closeConversation() { return { abortedTurn: false }; }, + stopTurn() { + return { abortedTurn: false }; + }, async handleMessage() {}, }; } |
