File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import type {
2+ IAdminForthEndpointHandlerInput ,
3+ IHttpServer ,
4+ } from "adminforth" ;
5+ import type { ChatSurfaceEndpointsContext } from "./context.js" ;
6+
7+ export function setupChatSurfaceEndpoints ( ctx : ChatSurfaceEndpointsContext , server : IHttpServer ) {
8+ for ( const adapter of ctx . options . chatSurfaceAdapters ?? [ ] ) {
9+ server . endpoint ( {
10+ method : "POST" ,
11+ noAuth : true ,
12+ path : `/agent/surface/${ adapter . name } /webhook` ,
13+ handler : async ( endpointInput : IAdminForthEndpointHandlerInput ) => {
14+ const surfaceContext = {
15+ body : endpointInput . body ,
16+ headers : endpointInput . headers ,
17+ abortSignal : endpointInput . abortSignal ,
18+ rawRequest : endpointInput . _raw_express_req ,
19+ rawResponse : endpointInput . _raw_express_res ,
20+ } ;
21+
22+ const incoming = await adapter . parseIncomingMessage ( surfaceContext ) ;
23+ if ( ! incoming ) return { ok : true } ;
24+
25+ const sink = await adapter . createEventSink ( surfaceContext , incoming ) ;
26+
27+ try {
28+ await ctx . handleChatSurfaceMessage ( adapter , incoming , sink ) ;
29+ } finally {
30+ await sink . close ?.( ) ;
31+ }
32+
33+ return { ok : true } ;
34+ } ,
35+ } ) ;
36+ }
37+ }
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ import { AdminForthCheckpointSaver } from "./agent/checkpointer.js";
1313import { appendCustomSystemPrompt , buildAgentSystemPrompt , DEFAULT_AGENT_SYSTEM_PROMPT } from "./agent/systemPrompt.js" ;
1414import { setupCoreEndpoints } from "./endpoints/core.js" ;
1515import { setupSessionEndpoints } from "./endpoints/sessions.js" ;
16+ import { setupChatSurfaceEndpoints } from "./endpoints/chatSurfaces.js" ;
1617import type { AgentEndpointsContext } from "./endpoints/context.js" ;
1718import { AgentSessionStore } from "./sessionStore.js" ;
1819import { ChatSurfaceService } from "./chatSurfaceService.js" ;
@@ -155,5 +156,6 @@ export default class AdminForthAgentPlugin extends AdminForthPlugin {
155156
156157 setupCoreEndpoints ( endpointContext , server ) ;
157158 setupSessionEndpoints ( endpointContext , server ) ;
159+ setupChatSurfaceEndpoints ( endpointContext , server ) ;
158160 }
159161}
You can’t perform that action at this time.
0 commit comments