{"version":3,"file":"connect.cjs","names":["resolveIntelligenceUser","isHandlerResponse","getPlatformErrorStatus"],"sources":["../../../../../src/v2/runtime/handlers/intelligence/connect.ts"],"sourcesContent":["import { CopilotIntelligenceRuntimeLike } from \"../../core/runtime\";\nimport { getPlatformErrorStatus } from \"../shared/intelligence-utils\";\nimport { resolveIntelligenceUser } from \"../shared/resolve-intelligence-user\";\nimport { isHandlerResponse } from \"../shared/json-response\";\n\n/**\n * Builds browser-facing realtime connection metadata owned by the runtime.\n */\nfunction buildRealtimeConnectionInfo(params: {\n  clientUrl: string;\n  threadId: string;\n}): { clientUrl: string; topic: string } {\n  return {\n    clientUrl: params.clientUrl,\n    topic: `thread:${params.threadId}`,\n  };\n}\n\ninterface HandleIntelligenceConnectParams {\n  runtime: CopilotIntelligenceRuntimeLike;\n  request: Request;\n  agentId: string;\n  threadId: string;\n}\n\nexport async function handleIntelligenceConnect({\n  runtime,\n  request,\n  agentId,\n  threadId,\n}: HandleIntelligenceConnectParams): Promise<Response> {\n  if (!runtime.intelligence) {\n    return Response.json(\n      {\n        error: \"Intelligence not configured\",\n        message: \"Intelligence mode requires a CopilotKitIntelligence\",\n      },\n      { status: 500 },\n    );\n  }\n\n  try {\n    const user = await resolveIntelligenceUser({ runtime, request });\n    if (isHandlerResponse(user)) {\n      return user;\n    }\n\n    const result = await runtime.intelligence.ɵconnectThread({\n      threadId,\n      userId: user.id,\n      agentId,\n    });\n\n    if (result === null) {\n      return new Response(null, {\n        status: 204,\n      });\n    }\n\n    return Response.json(\n      {\n        threadId: result.threadId,\n        joinToken: result.joinToken,\n        realtime: buildRealtimeConnectionInfo({\n          clientUrl: runtime.intelligence.ɵgetClientWsUrl(),\n          threadId: result.threadId,\n        }),\n      },\n      {\n        headers: { \"Cache-Control\": \"no-cache\", Connection: \"keep-alive\" },\n      },\n    );\n  } catch (error) {\n    const status = getPlatformErrorStatus(error);\n    if (\n      status === 400 ||\n      status === 401 ||\n      status === 403 ||\n      status === 404 ||\n      status === 409\n    ) {\n      return Response.json(\n        {\n          error: \"Connect request rejected\",\n          message:\n            error instanceof Error\n              ? error.message\n              : \"Intelligence platform rejected the connect request\",\n        },\n        { status },\n      );\n    }\n\n    console.error(\"Connect plan not available:\", error);\n    return Response.json(\n      {\n        error: \"Connect plan not available\",\n      },\n      { status: 404 },\n    );\n  }\n}\n"],"mappings":";;;;;;;;;AAQA,SAAS,4BAA4B,QAGI;AACvC,QAAO;EACL,WAAW,OAAO;EAClB,OAAO,UAAU,OAAO;EACzB;;AAUH,eAAsB,0BAA0B,EAC9C,SACA,SACA,SACA,YACqD;AACrD,KAAI,CAAC,QAAQ,aACX,QAAO,SAAS,KACd;EACE,OAAO;EACP,SAAS;EACV,EACD,EAAE,QAAQ,KAAK,CAChB;AAGH,KAAI;EACF,MAAM,OAAO,MAAMA,0DAAwB;GAAE;GAAS;GAAS,CAAC;AAChE,MAAIC,wCAAkB,KAAK,CACzB,QAAO;EAGT,MAAM,SAAS,MAAM,QAAQ,aAAa,eAAe;GACvD;GACA,QAAQ,KAAK;GACb;GACD,CAAC;AAEF,MAAI,WAAW,KACb,QAAO,IAAI,SAAS,MAAM,EACxB,QAAQ,KACT,CAAC;AAGJ,SAAO,SAAS,KACd;GACE,UAAU,OAAO;GACjB,WAAW,OAAO;GAClB,UAAU,4BAA4B;IACpC,WAAW,QAAQ,aAAa,iBAAiB;IACjD,UAAU,OAAO;IAClB,CAAC;GACH,EACD,EACE,SAAS;GAAE,iBAAiB;GAAY,YAAY;GAAc,EACnE,CACF;UACM,OAAO;EACd,MAAM,SAASC,kDAAuB,MAAM;AAC5C,MACE,WAAW,OACX,WAAW,OACX,WAAW,OACX,WAAW,OACX,WAAW,IAEX,QAAO,SAAS,KACd;GACE,OAAO;GACP,SACE,iBAAiB,QACb,MAAM,UACN;GACP,EACD,EAAE,QAAQ,CACX;AAGH,UAAQ,MAAM,+BAA+B,MAAM;AACnD,SAAO,SAAS,KACd,EACE,OAAO,8BACR,EACD,EAAE,QAAQ,KAAK,CAChB"}