MCPcopy Create free account
hub / github.com/compozy/agh / createBridgeSession

Method createBridgeSession

internal/extension/host_api_bridges.go:819–859  ·  view source on GitHub ↗
(
	ctx context.Context,
	instance bridgepkg.BridgeInstance,
)

Source from the content-addressed store, hash-verified

817}
818
819func (h *HostAPIHandler) createBridgeSession(
820 ctx context.Context,
821 instance bridgepkg.BridgeInstance,
822) (*session.Session, error) {
823 if h.sessions == nil {
824 return nil, unavailableRPCError(errors.New("session manager is not configured"))
825 }
826 if h.workspaces == nil {
827 return nil, unavailableRPCError(errors.New("workspace resolver is not configured"))
828 }
829 if strings.TrimSpace(instance.WorkspaceID) == "" {
830 return nil, unavailableRPCError(errors.New("bridge instance workspace is required to create a session"))
831 }
832
833 resolved, err := h.workspaces.Resolve(ctx, instance.WorkspaceID)
834 if err != nil {
835 return nil, unavailableRPCError(fmt.Errorf("resolve workspace %q: %w", instance.WorkspaceID, err))
836 }
837
838 agentName, err := aghconfig.ResolveAgentName("", resolved.Config.Defaults)
839 if err != nil {
840 return nil, unavailableRPCError(
841 fmt.Errorf("resolve default agent for workspace %q: %w", resolved.WorkspaceID, err),
842 )
843 }
844 workspaceID, err := hostAPIResolvedWorkspaceID(&resolved)
845 if err != nil {
846 return nil, unavailableRPCError(err)
847 }
848
849 created, err := h.sessions.Create(ctx, session.CreateOpts{
850 AgentName: agentName,
851 Provider: "",
852 Workspace: workspaceID,
853 Type: session.SessionTypeUser,
854 })
855 if err != nil {
856 return nil, unavailableRPCError(fmt.Errorf("create bridge session: %w", err))
857 }
858 return created, nil
859}
860
861func (h *HostAPIHandler) stopBridgeSession(ctx context.Context, sessionID string) error {
862 if h.sessions == nil || strings.TrimSpace(sessionID) == "" {

Calls 4

unavailableRPCErrorFunction · 0.85
ResolveMethod · 0.65
CreateMethod · 0.65