@jeffreycao/copilot-api 1.10.26 → 1.10.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -43,7 +43,7 @@ const { auth } = await import("./auth-aKVIYJgv.js");
43
43
  const { checkUsage } = await import("./check-usage-VAhq_UvP.js");
44
44
  const { debug } = await import("./debug-9GrBfKqc.js");
45
45
  const { mcp } = await import("./mcp-DZgcvqQY.js");
46
- const { start } = await import("./start-5vY0Hxby.js");
46
+ const { start } = await import("./start-DqEv-gSq.js");
47
47
  await runMain(defineCommand({
48
48
  meta: {
49
49
  name: "copilot-api",
@@ -2673,13 +2673,20 @@ const buildResponsesWebSocketPoolKey = (payload, { requestId, subagentMarker })
2673
2673
  const getResponsesWebSocketInitiator = (preparedHeaders) => {
2674
2674
  return getHeaderValue(preparedHeaders, "x-initiator")?.toLowerCase() === "agent" ? "agent" : "user";
2675
2675
  };
2676
- const createPooledResponsesWebSocketStream = (request) => createPooledWebSocketStream(request, {
2676
+ const createPooledResponsesWebSocketStream = (request) => createResponsesSafeStream(createPooledWebSocketStream(request, {
2677
2677
  createChunk: createResponsesWebSocketStreamChunk,
2678
2678
  isTerminalChunk: isTerminalResponsesStreamChunk,
2679
2679
  openErrorMessage: "Failed to create responses websocket",
2680
2680
  streamErrorMessage: "Responses websocket stream error",
2681
2681
  terminalChunkMissingMessage: "Responses websocket ended without a terminal response"
2682
- });
2682
+ }));
2683
+ const createResponsesSafeStream = async function* (source) {
2684
+ try {
2685
+ yield* source;
2686
+ } catch (error) {
2687
+ yield createResponsesErrorServerSentEventChunk(getErrorMessage(error));
2688
+ }
2689
+ };
2683
2690
  const buildResponsesWebSocketPayload = (payload, initiator) => {
2684
2691
  const websocketPayload = {
2685
2692
  ...payload,
@@ -2704,6 +2711,10 @@ const createResponsesWebSocketStreamChunk = (data) => {
2704
2711
  try {
2705
2712
  const parsed = JSON.parse(data);
2706
2713
  if (parsed.type === "response.completed") logCopilotQuotaSnapshots(parsed.copilot_quota_snapshots);
2714
+ if (parsed.type === "error" && parsed.error) {
2715
+ parsed.code = parsed.error.code;
2716
+ parsed.message = parsed.error.message;
2717
+ }
2707
2718
  return {
2708
2719
  data: JSON.stringify(parsed),
2709
2720
  event: typeof parsed.type === "string" ? parsed.type : void 0,
@@ -2722,6 +2733,23 @@ const isTerminalResponsesStreamChunk = (chunk) => {
2722
2733
  return false;
2723
2734
  }
2724
2735
  };
2736
+ const createResponsesErrorServerSentEventChunk = (message) => {
2737
+ const errorEvent = {
2738
+ code: null,
2739
+ message,
2740
+ param: null,
2741
+ sequence_number: 0,
2742
+ type: "error"
2743
+ };
2744
+ return {
2745
+ data: JSON.stringify(errorEvent),
2746
+ event: errorEvent.type
2747
+ };
2748
+ };
2749
+ const getErrorMessage = (error) => {
2750
+ if (error instanceof Error && error.message) return error.message;
2751
+ return String(error);
2752
+ };
2725
2753
  //#endregion
2726
2754
  //#region src/routes/messages/responses-translation.ts
2727
2755
  const MESSAGE_TYPE = "message";
@@ -5407,4 +5435,4 @@ server.route("/:provider/v1/models", providerModelRoutes);
5407
5435
  //#endregion
5408
5436
  export { server };
5409
5437
 
5410
- //# sourceMappingURL=server-DSy9e9Hq.js.map
5438
+ //# sourceMappingURL=server-BNOmqXcB.js.map