@acosmi/sdk-ts 2.10.0 → 2.12.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/dist/browser/index.mjs +90 -4
- package/dist/browser/index.mjs.map +1 -1
- package/dist/index.mjs +90 -4
- 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-CsDRFZIj.d.cts → index-9IuEE_GY.d.cts} +24 -1
- package/dist/node/{index-CsDRFZIj.d.ts → index-9IuEE_GY.d.ts} +24 -1
- package/dist/node/index.cjs +93 -3
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +88 -5
- package/dist/node/index.d.ts +88 -5
- package/dist/node/index.mjs +90 -4
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/{openai-BdpEzATI.d.ts → openai-71wGCPIj.d.ts} +1 -1
- package/dist/node/{openai-Z2NDbHhT.d.cts → openai-DaLO4XPf.d.cts} +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -91,7 +91,34 @@ 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
|
+
function isContinuableWindowLimitError(err) {
|
|
109
|
+
return isWindowLimitError(err) && err.windowOverridable === true;
|
|
110
|
+
}
|
|
111
|
+
function getWindowLimitStreamDetails(err) {
|
|
112
|
+
if (!isWindowLimitStreamError(err)) return null;
|
|
113
|
+
const e = err ?? {};
|
|
114
|
+
const kind = e.windowKind === "FIVE_HOUR" || e.windowKind === "WEEKLY" ? e.windowKind : void 0;
|
|
115
|
+
return {
|
|
116
|
+
windowKind: kind,
|
|
117
|
+
windowResetAt: typeof e.windowResetAt === "string" ? e.windowResetAt : void 0,
|
|
118
|
+
windowOverridable: typeof e.windowOverridable === "boolean" ? e.windowOverridable : void 0
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
var RateLimitError, BusinessError, OrderTerminalError, ModelNotFoundError, HTTPError, NetworkError, StreamError, windowLimitErrorCode, windowLimitStreamCode;
|
|
95
122
|
var init_errors = __esm({
|
|
96
123
|
"src/shared/errors.ts"() {
|
|
97
124
|
RateLimitError = class extends Error {
|
|
@@ -138,6 +165,18 @@ var init_errors = __esm({
|
|
|
138
165
|
retryAfter;
|
|
139
166
|
/** 原始响应体 (截断到 maxErrorBodySize) */
|
|
140
167
|
body;
|
|
168
|
+
/** 后端业务机器码 (响应体顶层 errorCode, e.g. "WINDOW_LIMIT_EXCEEDED"); 缺失为 undefined */
|
|
169
|
+
errorCode;
|
|
170
|
+
/** 窗口限额场景: 触发的滚动窗口档位 (FIVE_HOUR = 5 小时 / WEEKLY = 7 天); 缺失为 undefined */
|
|
171
|
+
windowKind;
|
|
172
|
+
/** 窗口限额场景: 预计恢复时间 (ISO-8601 UTC); 缺失为 undefined */
|
|
173
|
+
windowResetAt;
|
|
174
|
+
/**
|
|
175
|
+
* [W1 2026-07-11 软限额] 窗口限额场景: 该 429 可否被用户「继续」开关豁免 —
|
|
176
|
+
* true = 5 小时软限额严格模式 (客户端可提示「继续任务」以消耗周配额继续);
|
|
177
|
+
* false/缺失 = 周窗/显式禁止/灰度关 (硬等待, 无豁免路径, 老网关不返回时为 undefined)。
|
|
178
|
+
*/
|
|
179
|
+
windowOverridable;
|
|
141
180
|
constructor(statusCode, opts = {}) {
|
|
142
181
|
let msg;
|
|
143
182
|
if (opts.type) {
|
|
@@ -155,6 +194,10 @@ var init_errors = __esm({
|
|
|
155
194
|
this.type = opts.type ?? "";
|
|
156
195
|
this.retryAfter = opts.retryAfter ?? 0;
|
|
157
196
|
this.body = opts.body ?? "";
|
|
197
|
+
this.errorCode = opts.errorCode;
|
|
198
|
+
this.windowKind = opts.windowKind;
|
|
199
|
+
this.windowResetAt = opts.windowResetAt;
|
|
200
|
+
this.windowOverridable = opts.windowOverridable;
|
|
158
201
|
}
|
|
159
202
|
};
|
|
160
203
|
NetworkError = class extends Error {
|
|
@@ -210,6 +253,8 @@ var init_errors = __esm({
|
|
|
210
253
|
this.retryable = retryable;
|
|
211
254
|
}
|
|
212
255
|
};
|
|
256
|
+
windowLimitErrorCode = "WINDOW_LIMIT_EXCEEDED";
|
|
257
|
+
windowLimitStreamCode = "window_limit_exceeded";
|
|
213
258
|
}
|
|
214
259
|
});
|
|
215
260
|
|
|
@@ -1930,19 +1975,39 @@ function parseHTTPErrorWithHeader(statusCode, body, header) {
|
|
|
1930
1975
|
}
|
|
1931
1976
|
let type = "";
|
|
1932
1977
|
let message = "";
|
|
1978
|
+
let errorCode;
|
|
1979
|
+
let windowKind;
|
|
1980
|
+
let windowResetAt;
|
|
1981
|
+
let windowOverridable;
|
|
1933
1982
|
try {
|
|
1934
1983
|
const obj = JSON.parse(bodyStr);
|
|
1935
1984
|
if (obj && typeof obj === "object") {
|
|
1936
|
-
const
|
|
1985
|
+
const top = obj;
|
|
1986
|
+
const errObj = top.error;
|
|
1937
1987
|
if (errObj && typeof errObj === "object") {
|
|
1938
1988
|
const e = errObj;
|
|
1939
1989
|
if (typeof e.message === "string") message = e.message;
|
|
1940
1990
|
if (typeof e.type === "string") type = e.type;
|
|
1991
|
+
} else if (typeof top.message === "string") {
|
|
1992
|
+
message = top.message;
|
|
1941
1993
|
}
|
|
1994
|
+
if (typeof top.errorCode === "string") errorCode = top.errorCode;
|
|
1995
|
+
if (top.windowKind === "FIVE_HOUR" || top.windowKind === "WEEKLY") windowKind = top.windowKind;
|
|
1996
|
+
if (typeof top.windowResetAt === "string") windowResetAt = top.windowResetAt;
|
|
1997
|
+
if (typeof top.windowOverridable === "boolean") windowOverridable = top.windowOverridable;
|
|
1942
1998
|
}
|
|
1943
1999
|
} catch {
|
|
1944
2000
|
}
|
|
1945
|
-
return new HTTPError(statusCode, {
|
|
2001
|
+
return new HTTPError(statusCode, {
|
|
2002
|
+
type,
|
|
2003
|
+
message,
|
|
2004
|
+
retryAfter,
|
|
2005
|
+
body: bodyStr,
|
|
2006
|
+
errorCode,
|
|
2007
|
+
windowKind,
|
|
2008
|
+
windowResetAt,
|
|
2009
|
+
windowOverridable
|
|
2010
|
+
});
|
|
1946
2011
|
}
|
|
1947
2012
|
function classifyTransport(op, urlStr, err) {
|
|
1948
2013
|
const ne = new NetworkError(op, urlStr, err);
|
|
@@ -2731,6 +2796,24 @@ var Client = class _Client {
|
|
|
2731
2796
|
);
|
|
2732
2797
|
return resp.data;
|
|
2733
2798
|
}
|
|
2799
|
+
/**
|
|
2800
|
+
* [W1 2026-07-11 软限额] 设置当前用户 5 小时窗口软限额「继续」开关 (v2.12+)。
|
|
2801
|
+
*
|
|
2802
|
+
* enabled=true = 软限额 (到达 5h 后继续消耗周配额, 默认); false = 严格模式 (到达即等待逐步恢复)。
|
|
2803
|
+
* userId 由网关从鉴权态解析 (客户端永不传), 故只需 enabled + 可选 source (审计: web /
|
|
2804
|
+
* crabcode-gui / crabcode-tui / dialog)。用于个人中心开关、429 严格模式「重新开启继续」续跑。
|
|
2805
|
+
*
|
|
2806
|
+
* @returns 网关回显的新状态 { enabled }。
|
|
2807
|
+
*/
|
|
2808
|
+
async setWindowContinuePreference(enabled, opts) {
|
|
2809
|
+
const resp = await this.doJSON(
|
|
2810
|
+
"POST",
|
|
2811
|
+
"/entitlements/window-continue-pref",
|
|
2812
|
+
{ enabled, source: opts?.source },
|
|
2813
|
+
opts?.signal
|
|
2814
|
+
);
|
|
2815
|
+
return { enabled: resp.data.enabled };
|
|
2816
|
+
}
|
|
2734
2817
|
/**
|
|
2735
2818
|
* 查询单个模型的能力矩阵
|
|
2736
2819
|
* 优先从 listModels 缓存读取, miss 时调用 listModels 刷新
|
|
@@ -5636,6 +5719,9 @@ function normalizeError(value) {
|
|
|
5636
5719
|
message: stringField(value, "message", "error") || "agent run failed",
|
|
5637
5720
|
stage: optionalStringField(value, "stage"),
|
|
5638
5721
|
retryable: typeof value.retryable === "boolean" ? value.retryable : void 0,
|
|
5722
|
+
// 窗口限额扩展 (code="window_limit_exceeded"): 契约 wire 为 camelCase, 蛇形兼容兜底。
|
|
5723
|
+
windowKind: optionalStringField(value, "windowKind", "window_kind"),
|
|
5724
|
+
windowResetAt: optionalStringField(value, "windowResetAt", "window_reset_at"),
|
|
5639
5725
|
raw: value
|
|
5640
5726
|
};
|
|
5641
5727
|
}
|
|
@@ -7553,6 +7639,6 @@ function brandCredential(c) {
|
|
|
7553
7639
|
return c;
|
|
7554
7640
|
}
|
|
7555
7641
|
|
|
7556
|
-
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 };
|
|
7642
|
+
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, getWindowLimitStreamDetails, isBillingConfirmable, isChannelInboundEvent, isComplianceBusinessError, isComplianceTerminalError, isContinuableWindowLimitError, 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 };
|
|
7557
7643
|
//# sourceMappingURL=index.mjs.map
|
|
7558
7644
|
//# sourceMappingURL=index.mjs.map
|