Add canvas artifact RPC foundation for A2UI
This commit is contained in:
@@ -7,6 +7,7 @@ import { SessionBridge } from './session-bridge.js';
|
||||
import type { SessionBridgeConfig } from './session-bridge.js';
|
||||
import { LaneQueue } from './lane-queue.js';
|
||||
import type { LaneQueueConfig } from './lane-queue.js';
|
||||
import { CanvasStore } from './canvas-store.js';
|
||||
import { MetricsCollector } from './metrics.js';
|
||||
import { authenticateRequest, authorizeNodeMethod } from './auth.js';
|
||||
import type { AuthConfig } from './auth.js';
|
||||
@@ -28,6 +29,7 @@ import {
|
||||
createIntentHandlers,
|
||||
createRoutingHandlers,
|
||||
createHistoryHandlers,
|
||||
createCanvasHandlers,
|
||||
createNodeHandlers,
|
||||
} from './handlers/index.js';
|
||||
import { discoverServices } from './handlers/services.js';
|
||||
@@ -133,6 +135,7 @@ export class GatewayServer {
|
||||
private router: Router;
|
||||
private sessionBridge: SessionBridge;
|
||||
private laneQueue: LaneQueue;
|
||||
private canvasStore: CanvasStore;
|
||||
private metrics: MetricsCollector;
|
||||
private discoveryHandle: GatewayDiscoveryHandle | null = null;
|
||||
private connectionMap: Map<WebSocket, string> = new Map();
|
||||
@@ -160,6 +163,7 @@ export class GatewayServer {
|
||||
});
|
||||
|
||||
this.laneQueue = new LaneQueue(config.queue);
|
||||
this.canvasStore = new CanvasStore();
|
||||
this.metrics = new MetricsCollector({
|
||||
getQueueDepth: () => this.laneQueue.totalPending(),
|
||||
});
|
||||
@@ -235,6 +239,10 @@ export class GatewayServer {
|
||||
sessionManager: this.config.sessionManager,
|
||||
});
|
||||
|
||||
const canvasHandlers = createCanvasHandlers({
|
||||
store: this.canvasStore,
|
||||
});
|
||||
|
||||
const toolHandlers = createToolHandlers({
|
||||
toolRegistry: this.config.toolRegistry,
|
||||
toolExecutor: this.config.toolExecutor,
|
||||
@@ -365,6 +373,9 @@ export class GatewayServer {
|
||||
for (const [method, handler] of Object.entries(historyHandlers)) {
|
||||
this.router.register(method, handler);
|
||||
}
|
||||
for (const [method, handler] of Object.entries(canvasHandlers)) {
|
||||
this.router.register(method, handler);
|
||||
}
|
||||
for (const [method, handler] of Object.entries(toolHandlers)) {
|
||||
this.router.register(method, handler);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user