MCPcopy Create free account
hub / github.com/bearlyai/OpenADE / registerRuntimeNodeAgentModule

Function registerRuntimeNodeAgentModule

projects/runtime-node/src/agents.ts:642–1004  ·  view source on GitHub ↗
(
    server: RuntimeServer,
    executor: RuntimeNodeAgentExecutor = createRuntimeNodeHarnessAgentExecutor(),
    options: RuntimeNodeAgentModuleOptions = {}
)

Source from the content-addressed store, hash-verified

640}
641
642export function registerRuntimeNodeAgentModule(
643 server: RuntimeServer,
644 executor: RuntimeNodeAgentExecutor = createRuntimeNodeHarnessAgentExecutor(),
645 options: RuntimeNodeAgentModuleOptions = {}
646): void {
647 const bridgeRegistry = options.bridgeRegistry ?? defaultServerProtocolBridgeRegistry
648
649 server.registerNotification("agent/event")
650 server.registerNotification("agent/thread/started")
651 server.registerNotification("agent/thread/resumed")
652 server.registerNotification("agent/turn/started")
653 server.registerNotification("agent/turn/delta")
654 server.registerNotification("agent/turn/completed")
655 server.registerNotification("agent/turn/failed")
656 server.registerNotification("agent/approval/requested")
657 server.registerNotification("agent/goal/updated")
658 server.registerNotification("agent/goal/cleared")
659 server.registerAgentProviderResolver(() => [...executor.providers(), ...[...bridgeRegistry.bridges.values()].map(bridgeSummary)])
660
661 server.register("agent/provider/list", () => server.capabilities().agentProviders)
662 server.register("agent/provider/status", async (params) => {
663 const providerId = optionalString(asRecord(params).providerId)
664 const bridge = providerId ? bridgeRegistry.bridges.get(providerId) : undefined
665 if (bridge) {
666 return {
667 providerId,
668 connected: true,
669 state: "available",
670 capabilities: bridgeCapabilities(bridge),
671 detail: bridge.status ? await bridge.status() : undefined,
672 }
673 }
674 const status = await executor.status(providerId)
675 const providerKnown = providerId ? executor.providers().some((provider) => provider.providerId === providerId) : true
676 return { providerId: providerId ?? "all", connected: providerKnown && status !== null, state: providerKnown && status ? "available" : "unavailable", status: providerKnown ? status : null }
677 })
678 server.register("agent/provider/read", (params) => {
679 const id = providerId(params)
680 return server.capabilities().agentProviders.find((provider) => provider.providerId === id) ?? null
681 }, providerParams)
682 server.register("agent/model/list", async (params) => {
683 const record = asRecord(params)
684 const id = optionalString(record.providerId)
685 const bridge = id ? bridgeRegistry.bridges.get(id) : undefined
686 if (bridge) {
687 if (!bridge.listModels) throw new RuntimeHandlerError("unsupported_capability", `Agent provider ${id} does not support model listing`)
688 return bridge.listModels({ providerId: bridge.providerId })
689 }
690 return executor.models?.(id) ?? []
691 })
692 server.register("agent/serverProtocol/list", () =>
693 [...bridgeRegistry.bridges.values()].map((bridge) => ({
694 providerId: bridge.providerId,
695 label: bridge.label ?? bridge.providerId,
696 connected: true,
697 capabilities: bridgeCapabilities(bridge),
698 }))
699 )

Callers 4

startRuntimeNodeServeFunction · 0.90

Calls 15

bridgeCapabilitiesFunction · 0.85
providerIdFunction · 0.85
bridgeForFunction · 0.85
requireCapabilityFunction · 0.85
requireRequestIdFunction · 0.85
approvalResponseFunction · 0.85
validateStringParamsFunction · 0.85
turnIdFromValueFunction · 0.85
normalizeTokenBudgetFunction · 0.85

Tested by

no test coverage detected