@skydiveai/pi-server 0.1.0-beta.2620 → 0.1.0-beta.2728

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.
Files changed (2) hide show
  1. package/dist/index.mjs +31 -3
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -1214,6 +1214,7 @@ function runStream$2({ session, prompt, images, id, sessionId, modelName, log, p
1214
1214
  textBlockOpen = false;
1215
1215
  };
1216
1216
  let capturedModelError = null;
1217
+ let sawModelErrorStop = false;
1217
1218
  const autoRetry = createAutoRetryObserver(log);
1218
1219
  const emitProviderError = (providerError) => {
1219
1220
  log.warn({
@@ -1241,7 +1242,10 @@ function runStream$2({ session, prompt, images, id, sessionId, modelName, log, p
1241
1242
  const ev = event;
1242
1243
  autoRetry.observe(ev);
1243
1244
  const endedMessage = ev.message ?? (Array.isArray(ev.messages) ? ev.messages[ev.messages.length - 1] : null);
1244
- if (endedMessage?.stopReason === "error" && typeof endedMessage.errorMessage === "string" && endedMessage.errorMessage.length > 0) capturedModelError = endedMessage.errorMessage;
1245
+ if (endedMessage?.stopReason === "error" && endedMessage.errorMessage !== "aborted") {
1246
+ sawModelErrorStop = true;
1247
+ if (typeof endedMessage.errorMessage === "string" && endedMessage.errorMessage.length > 0) capturedModelError = endedMessage.errorMessage;
1248
+ }
1245
1249
  if (ev.type !== "message_update") return;
1246
1250
  const inner = ev.assistantMessageEvent;
1247
1251
  if (!inner) return;
@@ -1299,6 +1303,7 @@ function runStream$2({ session, prompt, images, id, sessionId, modelName, log, p
1299
1303
  postPrompt
1300
1304
  });
1301
1305
  if (capturedModelError !== null) emitProviderError(toModelProviderError(new Error(capturedModelError)));
1306
+ else if (sawModelErrorStop) emitProviderError(toModelProviderError(/* @__PURE__ */ new Error("model provider call failed without an error message")));
1302
1307
  } catch (err) {
1303
1308
  log.error({
1304
1309
  err,
@@ -1946,6 +1951,7 @@ function runStream$1({ session, sm, prompt, images, sessionId, created, reqStart
1946
1951
  let usage = null;
1947
1952
  let lastFollowUpCount = 0;
1948
1953
  let capturedModelError = null;
1954
+ let sawModelErrorStop = false;
1949
1955
  const autoRetry = createAutoRetryObserver(log);
1950
1956
  const sendChunk = (delta, finishReason) => {
1951
1957
  if (firstChunkAt === null) {
@@ -1979,7 +1985,10 @@ function runStream$1({ session, sm, prompt, images, sessionId, created, reqStart
1979
1985
  const ev = event;
1980
1986
  autoRetry.observe(ev);
1981
1987
  const endedMessage = ev.message ?? (Array.isArray(ev.messages) ? ev.messages[ev.messages.length - 1] : null);
1982
- if (endedMessage?.stopReason === "error" && typeof endedMessage.errorMessage === "string" && endedMessage.errorMessage.length > 0) capturedModelError = endedMessage.errorMessage;
1988
+ if (endedMessage?.stopReason === "error" && endedMessage.errorMessage !== "aborted") {
1989
+ sawModelErrorStop = true;
1990
+ if (typeof endedMessage.errorMessage === "string" && endedMessage.errorMessage.length > 0) capturedModelError = endedMessage.errorMessage;
1991
+ }
1983
1992
  if (ev.type === "queue_update") {
1984
1993
  const steering = Array.isArray(ev.steering) ? ev.steering.length : 0;
1985
1994
  const followUp = Array.isArray(ev.followUp) ? ev.followUp.length : 0;
@@ -2116,6 +2125,25 @@ function runStream$1({ session, sm, prompt, images, sessionId, created, reqStart
2116
2125
  retryAttempts: autoRetry.attempts()
2117
2126
  });
2118
2127
  writer.write("data: [DONE]\n\n");
2128
+ } else if (sawModelErrorStop) {
2129
+ const providerError = toModelProviderError(/* @__PURE__ */ new Error("model provider call failed without an error message"));
2130
+ log.warn({
2131
+ event: "model_provider_error",
2132
+ chatcmpl_id: sessionId,
2133
+ code: providerError.code,
2134
+ upstream_status: providerError.upstreamStatus,
2135
+ provider: providerError.provider,
2136
+ retry_attempts: autoRetry.attempts(),
2137
+ source: "stop_reason_error_no_message"
2138
+ }, "forwarding model-provider error to client");
2139
+ emitModelProviderError({
2140
+ writer,
2141
+ sessionId,
2142
+ created,
2143
+ providerError,
2144
+ retryAttempts: autoRetry.attempts()
2145
+ });
2146
+ writer.write("data: [DONE]\n\n");
2119
2147
  } else {
2120
2148
  emitSessionMessagesTrailer({
2121
2149
  writer,
@@ -2662,7 +2690,7 @@ function runStream({ session, prompt, images, responseId, sessionId, modelName,
2662
2690
  const ev = event;
2663
2691
  autoRetry.observe(ev);
2664
2692
  const endedMessage = ev.message ?? (Array.isArray(ev.messages) ? ev.messages[ev.messages.length - 1] : null);
2665
- if (endedMessage?.stopReason === "error" && typeof endedMessage.errorMessage === "string" && endedMessage.errorMessage.length > 0) capturedModelError = endedMessage.errorMessage;
2693
+ if (endedMessage?.stopReason === "error") capturedModelError = typeof endedMessage.errorMessage === "string" && endedMessage.errorMessage.length > 0 ? endedMessage.errorMessage : "model provider call failed without an error message";
2666
2694
  if (ev.type !== "message_update") return;
2667
2695
  const inner = ev.assistantMessageEvent;
2668
2696
  if (!inner) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skydiveai/pi-server",
3
- "version": "0.1.0-beta.2620",
3
+ "version": "0.1.0-beta.2728",
4
4
  "homepage": "https://skydive.com",
5
5
  "license": "MIT",
6
6
  "author": "Create, Inc.",