@code-yeongyu/senpi-ai 2026.9.26 → 2026.9.27-3
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/api/anthropic-messages.d.ts.map +1 -1
- package/dist/api/anthropic-messages.js +10 -7
- package/dist/api/anthropic-messages.js.map +1 -1
- package/dist/api/openai-completions.d.ts.map +1 -1
- package/dist/api/openai-completions.js +9 -1
- package/dist/api/openai-completions.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/provider-diagnostic.d.ts +33 -0
- package/dist/provider-diagnostic.d.ts.map +1 -0
- package/dist/provider-diagnostic.js +56 -0
- package/dist/provider-diagnostic.js.map +1 -0
- package/dist/providers/data/.manifest.json +1 -1
- package/dist/providers/data/fireworks.json +1 -1
- package/dist/providers/data/opencode-go.json +1 -1
- package/dist/providers/data/opencode.json +1 -1
- package/dist/providers/data/openrouter.json +1 -1
- package/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/provider-diagnostic-carrier.d.ts +5 -0
- package/dist/utils/provider-diagnostic-carrier.d.ts.map +1 -0
- package/dist/utils/provider-diagnostic-carrier.js +18 -0
- package/dist/utils/provider-diagnostic-carrier.js.map +1 -0
- package/dist/utils/provider-diagnostic-sources.d.ts +26 -0
- package/dist/utils/provider-diagnostic-sources.d.ts.map +1 -0
- package/dist/utils/provider-diagnostic-sources.js +103 -0
- package/dist/utils/provider-diagnostic-sources.js.map +1 -0
- package/dist/utils/provider-diagnostic-vocabulary.d.ts +36 -0
- package/dist/utils/provider-diagnostic-vocabulary.d.ts.map +1 -0
- package/dist/utils/provider-diagnostic-vocabulary.js +129 -0
- package/dist/utils/provider-diagnostic-vocabulary.js.map +1 -0
- package/dist/utils/provider-retry.d.ts.map +1 -1
- package/dist/utils/provider-retry.js +5 -4
- package/dist/utils/provider-retry.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAMX,+BAA+B,EAK/B,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAMX,+BAA+B,EAK/B,MAAM,uDAAuD,CAAC;AAI/D,OAAO,KAAK,EACX,wBAAwB,EAKxB,OAAO,EAGP,KAAK,EAGL,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAGb,IAAI,EAIJ,MAAM,aAAa,CAAC;AA4CrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA0ElE,eAAO,MAAM,gBAAgB,SAAU,MAAM,WAC2B,CAAC;AACzE,eAAO,MAAM,kBAAkB,SAAU,MAAM,UAAU,IAAI,EAAE,WAS9D,CAAC;AA4EF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,SAAS,CAAC;AA+FhE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AAmvBD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CA0dzE,CAAC;AAyFF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CA+ClF,CAAC;AAmJF,wBAAgB,mCAAmC,CAClD,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAClC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACxB,+BAA+B,CAkBjC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Anthropic from "@anthropic-ai/sdk";
|
|
2
2
|
import { calculateCost } from "../models.js";
|
|
3
|
+
import { readProviderDiagnostic } from "../provider-diagnostic.js";
|
|
3
4
|
import { registerSessionResourceCleanup } from "../session-resources.js";
|
|
4
5
|
import { isVideoMimeType } from "../types.js";
|
|
5
6
|
import { combineAbortSignals } from "../utils/abort-signals.js";
|
|
@@ -10,6 +11,8 @@ import { headersToRecord, providerHeadersToRecord } from "../utils/headers.js";
|
|
|
10
11
|
import { parseJsonWithRepair, parseStreamingJson } from "../utils/json-parse.js";
|
|
11
12
|
import { getPiUserAgent } from "../utils/pi-user-agent.js";
|
|
12
13
|
import { getAnthropicCompat, isAnthropicApiBaseUrl } from "../utils/prompt-cache-ttl.js";
|
|
14
|
+
import { attachProviderDiagnostic } from "../utils/provider-diagnostic-carrier.js";
|
|
15
|
+
import { anthropicProviderDiagnosticFromError, anthropicProviderDiagnosticFromSseData, awaitProviderTransport, } from "../utils/provider-diagnostic-sources.js";
|
|
13
16
|
import { getProviderEnvValue } from "../utils/provider-env.js";
|
|
14
17
|
import { retryProviderRequest } from "../utils/provider-retry.js";
|
|
15
18
|
import { appendRetryAfterMsMarker, extract429RetryAfterMs } from "../utils/retry-hint.js";
|
|
@@ -790,7 +793,7 @@ async function* iterateAnthropicEvents(response, signal) {
|
|
|
790
793
|
if (hintMs !== undefined) {
|
|
791
794
|
errorText = appendRetryAfterMsMarker(errorText, hintMs);
|
|
792
795
|
}
|
|
793
|
-
throw new Error(errorText);
|
|
796
|
+
throw attachProviderDiagnostic(new Error(errorText), anthropicProviderDiagnosticFromSseData(sse.data));
|
|
794
797
|
}
|
|
795
798
|
if (!ANTHROPIC_MESSAGE_EVENTS.has(sse.event ?? "")) {
|
|
796
799
|
continue;
|
|
@@ -888,18 +891,15 @@ export const stream = (model, context, options) => {
|
|
|
888
891
|
maxRetries: 0,
|
|
889
892
|
...(payloadRequestMetadata.headers ? { headers: payloadRequestMetadata.headers } : {}),
|
|
890
893
|
};
|
|
894
|
+
const send = (body) => awaitProviderTransport(() => client.beta.messages.create({ ...body, stream: true }, requestOptions).asResponse(), anthropicProviderDiagnosticFromError);
|
|
891
895
|
try {
|
|
892
|
-
const response = await
|
|
893
|
-
.create({ ...params, stream: true }, requestOptions)
|
|
894
|
-
.asResponse();
|
|
896
|
+
const response = await send(params);
|
|
895
897
|
return { params, response };
|
|
896
898
|
}
|
|
897
899
|
catch (error) {
|
|
898
900
|
if (isForcedToolChoiceUnsupportedError(error, isForcedAnthropicToolChoice(params.tool_choice))) {
|
|
899
901
|
params = omitToolChoiceParam(params);
|
|
900
|
-
const response = await
|
|
901
|
-
.create({ ...params, stream: true }, requestOptions)
|
|
902
|
-
.asResponse();
|
|
902
|
+
const response = await send(params);
|
|
903
903
|
return { params, response };
|
|
904
904
|
}
|
|
905
905
|
throw error;
|
|
@@ -1254,6 +1254,9 @@ export const stream = (model, context, options) => {
|
|
|
1254
1254
|
...(failure.shouldRetry !== undefined ? { shouldRetry: failure.shouldRetry } : {}),
|
|
1255
1255
|
},
|
|
1256
1256
|
});
|
|
1257
|
+
const providerDiagnostic = output.stopReason === "error" ? readProviderDiagnostic(error) : undefined;
|
|
1258
|
+
if (providerDiagnostic !== undefined)
|
|
1259
|
+
output.providerDiagnostic = providerDiagnostic;
|
|
1257
1260
|
output.errorMessage = errorMessage;
|
|
1258
1261
|
stream.push({ type: "error", reason: output.stopReason, error: output });
|
|
1259
1262
|
stream.end();
|