@acosmi/sdk-ts 2.9.0 → 2.11.0
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/CHANGELOG.md +29 -0
- package/README.md +22 -0
- package/dist/browser/index.mjs +50 -6
- package/dist/browser/index.mjs.map +1 -1
- package/dist/index.mjs +50 -6
- package/dist/index.mjs.map +1 -1
- package/dist/node/adapters/anthropic.cjs.map +1 -1
- package/dist/node/adapters/anthropic.d.cts +1 -1
- package/dist/node/adapters/anthropic.d.ts +1 -1
- package/dist/node/adapters/anthropic.mjs.map +1 -1
- package/dist/node/adapters/openai.cjs.map +1 -1
- package/dist/node/adapters/openai.d.cts +2 -2
- package/dist/node/adapters/openai.d.ts +2 -2
- package/dist/node/adapters/openai.mjs.map +1 -1
- package/dist/node/{index-B5ixqnVB.d.cts → index-RoHp_9g8.d.cts} +53 -8
- package/dist/node/{index-B5ixqnVB.d.ts → index-RoHp_9g8.d.ts} +53 -8
- package/dist/node/index.cjs +51 -5
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +49 -8
- package/dist/node/index.d.ts +49 -8
- package/dist/node/index.mjs +50 -6
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/{openai-Br-G1fCG.d.ts → openai-DnFW4Ryl.d.ts} +1 -1
- package/dist/node/{openai-C3gVV388.d.cts → openai-Dpl3GSEJ.d.cts} +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -91,7 +91,21 @@ var init_types = __esm({
|
|
|
91
91
|
});
|
|
92
92
|
|
|
93
93
|
// src/shared/errors.ts
|
|
94
|
-
|
|
94
|
+
function isWindowLimitError(err) {
|
|
95
|
+
if (!(err instanceof HTTPError)) return false;
|
|
96
|
+
if (err.errorCode === windowLimitErrorCode) return true;
|
|
97
|
+
return err.message.includes(windowLimitErrorCode) || err.body.includes(windowLimitErrorCode);
|
|
98
|
+
}
|
|
99
|
+
function isWindowLimitStreamError(err) {
|
|
100
|
+
if (err == null || typeof err !== "object") return false;
|
|
101
|
+
const e = err;
|
|
102
|
+
if (e.code === windowLimitStreamCode) return true;
|
|
103
|
+
for (const field of [e.message, e.userMessage, e.rawError]) {
|
|
104
|
+
if (typeof field === "string" && field.includes(windowLimitErrorCode)) return true;
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
var RateLimitError, BusinessError, OrderTerminalError, ModelNotFoundError, HTTPError, NetworkError, StreamError, windowLimitErrorCode, windowLimitStreamCode;
|
|
95
109
|
var init_errors = __esm({
|
|
96
110
|
"src/shared/errors.ts"() {
|
|
97
111
|
RateLimitError = class extends Error {
|
|
@@ -138,6 +152,12 @@ var init_errors = __esm({
|
|
|
138
152
|
retryAfter;
|
|
139
153
|
/** 原始响应体 (截断到 maxErrorBodySize) */
|
|
140
154
|
body;
|
|
155
|
+
/** 后端业务机器码 (响应体顶层 errorCode, e.g. "WINDOW_LIMIT_EXCEEDED"); 缺失为 undefined */
|
|
156
|
+
errorCode;
|
|
157
|
+
/** 窗口限额场景: 触发的滚动窗口档位 (FIVE_HOUR = 5 小时 / WEEKLY = 7 天); 缺失为 undefined */
|
|
158
|
+
windowKind;
|
|
159
|
+
/** 窗口限额场景: 预计恢复时间 (ISO-8601 UTC); 缺失为 undefined */
|
|
160
|
+
windowResetAt;
|
|
141
161
|
constructor(statusCode, opts = {}) {
|
|
142
162
|
let msg;
|
|
143
163
|
if (opts.type) {
|
|
@@ -155,6 +175,9 @@ var init_errors = __esm({
|
|
|
155
175
|
this.type = opts.type ?? "";
|
|
156
176
|
this.retryAfter = opts.retryAfter ?? 0;
|
|
157
177
|
this.body = opts.body ?? "";
|
|
178
|
+
this.errorCode = opts.errorCode;
|
|
179
|
+
this.windowKind = opts.windowKind;
|
|
180
|
+
this.windowResetAt = opts.windowResetAt;
|
|
158
181
|
}
|
|
159
182
|
};
|
|
160
183
|
NetworkError = class extends Error {
|
|
@@ -210,6 +233,8 @@ var init_errors = __esm({
|
|
|
210
233
|
this.retryable = retryable;
|
|
211
234
|
}
|
|
212
235
|
};
|
|
236
|
+
windowLimitErrorCode = "WINDOW_LIMIT_EXCEEDED";
|
|
237
|
+
windowLimitStreamCode = "window_limit_exceeded";
|
|
213
238
|
}
|
|
214
239
|
});
|
|
215
240
|
|
|
@@ -1930,19 +1955,28 @@ function parseHTTPErrorWithHeader(statusCode, body, header) {
|
|
|
1930
1955
|
}
|
|
1931
1956
|
let type = "";
|
|
1932
1957
|
let message = "";
|
|
1958
|
+
let errorCode;
|
|
1959
|
+
let windowKind;
|
|
1960
|
+
let windowResetAt;
|
|
1933
1961
|
try {
|
|
1934
1962
|
const obj = JSON.parse(bodyStr);
|
|
1935
1963
|
if (obj && typeof obj === "object") {
|
|
1936
|
-
const
|
|
1964
|
+
const top = obj;
|
|
1965
|
+
const errObj = top.error;
|
|
1937
1966
|
if (errObj && typeof errObj === "object") {
|
|
1938
1967
|
const e = errObj;
|
|
1939
1968
|
if (typeof e.message === "string") message = e.message;
|
|
1940
1969
|
if (typeof e.type === "string") type = e.type;
|
|
1970
|
+
} else if (typeof top.message === "string") {
|
|
1971
|
+
message = top.message;
|
|
1941
1972
|
}
|
|
1973
|
+
if (typeof top.errorCode === "string") errorCode = top.errorCode;
|
|
1974
|
+
if (top.windowKind === "FIVE_HOUR" || top.windowKind === "WEEKLY") windowKind = top.windowKind;
|
|
1975
|
+
if (typeof top.windowResetAt === "string") windowResetAt = top.windowResetAt;
|
|
1942
1976
|
}
|
|
1943
1977
|
} catch {
|
|
1944
1978
|
}
|
|
1945
|
-
return new HTTPError(statusCode, { type, message, retryAfter, body: bodyStr });
|
|
1979
|
+
return new HTTPError(statusCode, { type, message, retryAfter, body: bodyStr, errorCode, windowKind, windowResetAt });
|
|
1946
1980
|
}
|
|
1947
1981
|
function classifyTransport(op, urlStr, err) {
|
|
1948
1982
|
const ne = new NetworkError(op, urlStr, err);
|
|
@@ -2206,9 +2240,16 @@ var Client = class _Client {
|
|
|
2206
2240
|
fetchImpl;
|
|
2207
2241
|
/** 互斥锁 (TS 用 Promise chain 替代 sync.Mutex) */
|
|
2208
2242
|
mu = Promise.resolve();
|
|
2209
|
-
/**
|
|
2243
|
+
/**
|
|
2244
|
+
* WebSocket 状态 (实际方法由 ws.ts mixin 维护)。
|
|
2245
|
+
* @internal — 实现细节: 跨模块 (ws.ts mixin) 需可见故为 public, 但非消费者 API,
|
|
2246
|
+
* 消费者用 connect/subscribe 等高层方法; 引用的 WSState 不进公开文档。
|
|
2247
|
+
*/
|
|
2210
2248
|
ws = null;
|
|
2211
|
-
/**
|
|
2249
|
+
/**
|
|
2250
|
+
* v0.15.1: token 就绪等待机制 — login 成功后 resolve, 等待方解除阻塞。
|
|
2251
|
+
* @internal — 内部同步原语 (Deferred), 非消费者 API。
|
|
2252
|
+
*/
|
|
2212
2253
|
tokenReady = newDeferred();
|
|
2213
2254
|
/** Login 进行中 — 等待方需等而非 fail-fast */
|
|
2214
2255
|
loginInFlight = false;
|
|
@@ -5629,6 +5670,9 @@ function normalizeError(value) {
|
|
|
5629
5670
|
message: stringField(value, "message", "error") || "agent run failed",
|
|
5630
5671
|
stage: optionalStringField(value, "stage"),
|
|
5631
5672
|
retryable: typeof value.retryable === "boolean" ? value.retryable : void 0,
|
|
5673
|
+
// 窗口限额扩展 (code="window_limit_exceeded"): 契约 wire 为 camelCase, 蛇形兼容兜底。
|
|
5674
|
+
windowKind: optionalStringField(value, "windowKind", "window_kind"),
|
|
5675
|
+
windowResetAt: optionalStringField(value, "windowResetAt", "window_reset_at"),
|
|
5632
5676
|
raw: value
|
|
5633
5677
|
};
|
|
5634
5678
|
}
|
|
@@ -7546,6 +7590,6 @@ function brandCredential(c) {
|
|
|
7546
7590
|
return c;
|
|
7547
7591
|
}
|
|
7548
7592
|
|
|
7549
|
-
export { AGENT_RUN_META_TITLE, AGENT_RUN_META_WORKSPACE, ALL_INTEGRATION_STATUS, ALL_PLATFORMS, ALL_REGIONS, AgentRunStreamError, AgentRunsClient, AnthropicAdapter, AudienceEnum, BillingModeEnum, BucketClassCommercial, BucketClassGeneric, BusinessError, ChatBridgeClient, Client, ComplianceClient, CompliancePollError, CrabCodeByokClient, DEFAULT_API_TIMEOUT_MS, DEFAULT_GATEWAY_BASE_URL, DefaultRetryPolicy, ErrAuthDenied, ErrBillingCallbackCannotCommit, ErrBillingCommitRequiresLocalVerify, ErrBillingS2sForbidden, ErrBrowserOpen, ErrComplianceStepUpRequired, ErrDiscovery, ErrEnvelopeGateClosed, ErrOAuthCORSBlocked, ErrProviderNotConfigured, ErrProviderUnknownNoRetry, ErrRefreshProxyFailed, ErrRegistration, ErrSSLProxy, ErrSealApprovalContractHashMismatch, ErrSealApprovalExpired, ErrSealApprovalLocationMismatch, ErrSealApprovalNonceUsed, ErrSealApprovalNotApproved, ErrSealApprovalSealMismatch, ErrSealApprovalTransactorMismatch, ErrSealUseAlreadyConsumed, ErrStateMismatch, ErrTimeout, ErrTokenExchange, ErrTokenExpired, EventAuthURL, EventComplete, EventError, FileTokenStore, FilterStatusAdminBypass, FilterStatusDisabledByFlag, FilterStatusFallbackMissingUser, FilterStatusFallbackNoBuckets, FilterStatusFallbackTkdistError, FilterStatusFallbackTkdistSkew, FilterStatusInternalBypass, FilterStatusOK, FilterStatusUnknown, HTTPError, IdempotencyKeyHeader, InMemoryTokenStore, LocalStorageTokenStore, ModelNotFoundError, NetworkError, OAuthTokenEndpointError, OpenAIAdapter, OrderTerminalError, ProductFamilyEnum, ProviderFormat, RETRY_ADVICE_REASONS, RateLimitError, RegionScopeEnum, ScopeAI, ScopeAccount, ScopeChatBridge, ScopeChatBridgeRead, ScopeChatBridgeRotate, ScopeChatBridgeWrite, ScopeComplianceContractSigningRead, ScopeComplianceContractSigningWrite, ScopeComplianceContractTemplateRead, ScopeComplianceContractTemplateWrite, ScopeComplianceEvidenceRead, ScopeComplianceEvidenceWrite, ScopeComplianceReportsPublish, ScopeComplianceReportsRead, ScopeComplianceReportsWrite, ScopeComplianceSealApprovalApprove, ScopeComplianceSealApprovalRequest, ScopeComplianceSealManage, ScopeComplianceSealUseExecute, ScopeComplianceTimestampIssue, ScopeComplianceTimestampVerify, ScopeEntitlements, ScopeModels, ScopeModelsChat, ScopeProfile, ScopeRemoteControl, ScopeRemoteControlAgentRun, ScopeRemoteControlPermissionResponse, ScopeRemoteControlSessionControl, ScopeSkillStore, ScopeSkills, ScopeTokenPackages, ScopeTools, ScopeToolsExecute, ScopeWallet, ScopeWalletReadonly, ServerToolTypeWebSearch, StreamError, ThinkingHigh, ThinkingHighMinMaxTokens, ThinkingMax, ThinkingMaxFallbackMaxTokens, ThinkingOff, allScopes, anthropicResponseTextContent, anthropicResponseThinkingContent, anthropicResponseToolUseBlocks, apiResponseBusinessError, apiResponseGetMessage, asCredentialRef, authorize, bucketInfoIsCommercial, bucketRowIsCommercial, buildBetas, chatBridgeScopes, classifyComplianceError, commerceScopes, completeWebAuthorizationRequest, complianceErrorToRetryAdvice, complianceScopes, computeBackoff, createWebAuthorizationRequest, defaultRetryable, defaultSafeToRetry, discover, discoverWebOAuthMetadata, discoverWithProfile, effectivePolicy, exchangeCode, extractAnthropicBlockMeta, fileLockDefaults, findDesktopVisualUnderstandingModel, findFirstModelByInputModality, generateState, getAdapter, getAdapterForModel, isBillingConfirmable, isChannelInboundEvent, isComplianceBusinessError, isComplianceTerminalError, isIntegrationStatus, isInvalidGrantError, isPlatform, isRegion, isSSECommentLine, isSSLError, isTerminalRemoteEvent, isValidTokenSet, maxEndUserIdLength, modelScopes, modelSupportsImageInput, modelSupportsInputModality, newFileTokenStore, newThinkingConfig, newTokenSet, newWebSearchTool, normalizeGatewayBaseURL, normalizeOverrideBaseURL, parseNotificationEvent, parseRemoteControlEvent, parseSettlement, parseSourcesEvent, refreshToken, register, registerWebOAuthClient, remoteControlScopes, retryReasonForComplianceKey, retryReasonForOAuthError, revokeToken, sanitize_exports as sanitize, skillScopes, tokenSetIsExpired, uniqueMerge, validateEndUserId };
|
|
7593
|
+
export { AGENT_RUN_META_TITLE, AGENT_RUN_META_WORKSPACE, ALL_INTEGRATION_STATUS, ALL_PLATFORMS, ALL_REGIONS, AgentRunStreamError, AgentRunsClient, AnthropicAdapter, AudienceEnum, BillingModeEnum, BucketClassCommercial, BucketClassGeneric, BusinessError, ChatBridgeClient, Client, ComplianceClient, CompliancePollError, CrabCodeByokClient, DEFAULT_API_TIMEOUT_MS, DEFAULT_GATEWAY_BASE_URL, DefaultRetryPolicy, ErrAuthDenied, ErrBillingCallbackCannotCommit, ErrBillingCommitRequiresLocalVerify, ErrBillingS2sForbidden, ErrBrowserOpen, ErrComplianceStepUpRequired, ErrDiscovery, ErrEnvelopeGateClosed, ErrOAuthCORSBlocked, ErrProviderNotConfigured, ErrProviderUnknownNoRetry, ErrRefreshProxyFailed, ErrRegistration, ErrSSLProxy, ErrSealApprovalContractHashMismatch, ErrSealApprovalExpired, ErrSealApprovalLocationMismatch, ErrSealApprovalNonceUsed, ErrSealApprovalNotApproved, ErrSealApprovalSealMismatch, ErrSealApprovalTransactorMismatch, ErrSealUseAlreadyConsumed, ErrStateMismatch, ErrTimeout, ErrTokenExchange, ErrTokenExpired, EventAuthURL, EventComplete, EventError, FileTokenStore, FilterStatusAdminBypass, FilterStatusDisabledByFlag, FilterStatusFallbackMissingUser, FilterStatusFallbackNoBuckets, FilterStatusFallbackTkdistError, FilterStatusFallbackTkdistSkew, FilterStatusInternalBypass, FilterStatusOK, FilterStatusUnknown, HTTPError, IdempotencyKeyHeader, InMemoryTokenStore, LocalStorageTokenStore, ModelNotFoundError, NetworkError, OAuthTokenEndpointError, OpenAIAdapter, OrderTerminalError, ProductFamilyEnum, ProviderFormat, RETRY_ADVICE_REASONS, RateLimitError, RegionScopeEnum, ScopeAI, ScopeAccount, ScopeChatBridge, ScopeChatBridgeRead, ScopeChatBridgeRotate, ScopeChatBridgeWrite, ScopeComplianceContractSigningRead, ScopeComplianceContractSigningWrite, ScopeComplianceContractTemplateRead, ScopeComplianceContractTemplateWrite, ScopeComplianceEvidenceRead, ScopeComplianceEvidenceWrite, ScopeComplianceReportsPublish, ScopeComplianceReportsRead, ScopeComplianceReportsWrite, ScopeComplianceSealApprovalApprove, ScopeComplianceSealApprovalRequest, ScopeComplianceSealManage, ScopeComplianceSealUseExecute, ScopeComplianceTimestampIssue, ScopeComplianceTimestampVerify, ScopeEntitlements, ScopeModels, ScopeModelsChat, ScopeProfile, ScopeRemoteControl, ScopeRemoteControlAgentRun, ScopeRemoteControlPermissionResponse, ScopeRemoteControlSessionControl, ScopeSkillStore, ScopeSkills, ScopeTokenPackages, ScopeTools, ScopeToolsExecute, ScopeWallet, ScopeWalletReadonly, ServerToolTypeWebSearch, StreamError, ThinkingHigh, ThinkingHighMinMaxTokens, ThinkingMax, ThinkingMaxFallbackMaxTokens, ThinkingOff, allScopes, anthropicResponseTextContent, anthropicResponseThinkingContent, anthropicResponseToolUseBlocks, apiResponseBusinessError, apiResponseGetMessage, asCredentialRef, authorize, bucketInfoIsCommercial, bucketRowIsCommercial, buildBetas, chatBridgeScopes, classifyComplianceError, commerceScopes, completeWebAuthorizationRequest, complianceErrorToRetryAdvice, complianceScopes, computeBackoff, createWebAuthorizationRequest, defaultRetryable, defaultSafeToRetry, discover, discoverWebOAuthMetadata, discoverWithProfile, effectivePolicy, exchangeCode, extractAnthropicBlockMeta, fileLockDefaults, findDesktopVisualUnderstandingModel, findFirstModelByInputModality, generateState, getAdapter, getAdapterForModel, isBillingConfirmable, isChannelInboundEvent, isComplianceBusinessError, isComplianceTerminalError, isIntegrationStatus, isInvalidGrantError, isPlatform, isRegion, isSSECommentLine, isSSLError, isTerminalRemoteEvent, isValidTokenSet, isWindowLimitError, isWindowLimitStreamError, maxEndUserIdLength, modelScopes, modelSupportsImageInput, modelSupportsInputModality, newFileTokenStore, newThinkingConfig, newTokenSet, newWebSearchTool, normalizeGatewayBaseURL, normalizeOverrideBaseURL, parseNotificationEvent, parseRemoteControlEvent, parseSettlement, parseSourcesEvent, refreshToken, register, registerWebOAuthClient, remoteControlScopes, retryReasonForComplianceKey, retryReasonForOAuthError, revokeToken, sanitize_exports as sanitize, skillScopes, tokenSetIsExpired, uniqueMerge, validateEndUserId };
|
|
7550
7594
|
//# sourceMappingURL=index.mjs.map
|
|
7551
7595
|
//# sourceMappingURL=index.mjs.map
|