@wudao-org/providers 0.0.0-stage → 0.4.21
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/LICENSE +21 -0
- package/README.md +8 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/anthropic.d.ts +19 -0
- package/dist/anthropic.d.ts.map +1 -0
- package/dist/anthropic.js +621 -0
- package/dist/anthropic.js.map +1 -0
- package/dist/balance.d.ts +28 -0
- package/dist/balance.d.ts.map +1 -0
- package/dist/balance.js +105 -0
- package/dist/balance.js.map +1 -0
- package/dist/config.d.ts +328 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +623 -0
- package/dist/config.js.map +1 -0
- package/dist/dispatcher.d.ts +5 -0
- package/dist/dispatcher.d.ts.map +1 -0
- package/dist/dispatcher.js +21 -0
- package/dist/dispatcher.js.map +1 -0
- package/dist/effort-catalog.d.ts +17 -0
- package/dist/effort-catalog.d.ts.map +1 -0
- package/dist/effort-catalog.js +73 -0
- package/dist/effort-catalog.js.map +1 -0
- package/dist/error-body.d.ts +32 -0
- package/dist/error-body.d.ts.map +1 -0
- package/dist/error-body.js +74 -0
- package/dist/error-body.js.map +1 -0
- package/dist/header-validation.d.ts +57 -0
- package/dist/header-validation.d.ts.map +1 -0
- package/dist/header-validation.js +130 -0
- package/dist/header-validation.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +110 -0
- package/dist/index.js.map +1 -0
- package/dist/json-arguments.d.ts +17 -0
- package/dist/json-arguments.d.ts.map +1 -0
- package/dist/json-arguments.js +227 -0
- package/dist/json-arguments.js.map +1 -0
- package/dist/key-pool.d.ts +66 -0
- package/dist/key-pool.d.ts.map +1 -0
- package/dist/key-pool.js +207 -0
- package/dist/key-pool.js.map +1 -0
- package/dist/missing-reasoning-circuit.d.ts +17 -0
- package/dist/missing-reasoning-circuit.d.ts.map +1 -0
- package/dist/missing-reasoning-circuit.js +38 -0
- package/dist/missing-reasoning-circuit.js.map +1 -0
- package/dist/model-failure.d.ts +156 -0
- package/dist/model-failure.d.ts.map +1 -0
- package/dist/model-failure.js +253 -0
- package/dist/model-failure.js.map +1 -0
- package/dist/model-fallback.d.ts +18 -0
- package/dist/model-fallback.d.ts.map +1 -0
- package/dist/model-fallback.js +87 -0
- package/dist/model-fallback.js.map +1 -0
- package/dist/models.d.ts +20 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +55 -0
- package/dist/models.js.map +1 -0
- package/dist/openai-compatible.d.ts +87 -0
- package/dist/openai-compatible.d.ts.map +1 -0
- package/dist/openai-compatible.js +368 -0
- package/dist/openai-compatible.js.map +1 -0
- package/dist/openai-engine.d.ts +18 -0
- package/dist/openai-engine.d.ts.map +1 -0
- package/dist/openai-engine.js +515 -0
- package/dist/openai-engine.js.map +1 -0
- package/dist/openai-images.d.ts +38 -0
- package/dist/openai-images.d.ts.map +1 -0
- package/dist/openai-images.js +301 -0
- package/dist/openai-images.js.map +1 -0
- package/dist/openai-messages.d.ts +40 -0
- package/dist/openai-messages.d.ts.map +1 -0
- package/dist/openai-messages.js +135 -0
- package/dist/openai-messages.js.map +1 -0
- package/dist/openai-wire.d.ts +93 -0
- package/dist/openai-wire.d.ts.map +1 -0
- package/dist/openai-wire.js +151 -0
- package/dist/openai-wire.js.map +1 -0
- package/dist/persona/apply.d.ts +19 -0
- package/dist/persona/apply.d.ts.map +1 -0
- package/dist/persona/apply.js +98 -0
- package/dist/persona/apply.js.map +1 -0
- package/dist/persona/builtins.d.ts +3 -0
- package/dist/persona/builtins.d.ts.map +1 -0
- package/dist/persona/builtins.js +180 -0
- package/dist/persona/builtins.js.map +1 -0
- package/dist/persona/decorator.d.ts +4 -0
- package/dist/persona/decorator.d.ts.map +1 -0
- package/dist/persona/decorator.js +112 -0
- package/dist/persona/decorator.js.map +1 -0
- package/dist/persona/files.d.ts +20 -0
- package/dist/persona/files.d.ts.map +1 -0
- package/dist/persona/files.js +84 -0
- package/dist/persona/files.js.map +1 -0
- package/dist/persona/ids.d.ts +9 -0
- package/dist/persona/ids.d.ts.map +1 -0
- package/dist/persona/ids.js +11 -0
- package/dist/persona/ids.js.map +1 -0
- package/dist/persona/registry.d.ts +12 -0
- package/dist/persona/registry.d.ts.map +1 -0
- package/dist/persona/registry.js +54 -0
- package/dist/persona/registry.js.map +1 -0
- package/dist/persona/runtime.d.ts +23 -0
- package/dist/persona/runtime.d.ts.map +1 -0
- package/dist/persona/runtime.js +32 -0
- package/dist/persona/runtime.js.map +1 -0
- package/dist/persona/schema.d.ts +27 -0
- package/dist/persona/schema.d.ts.map +1 -0
- package/dist/persona/schema.js +165 -0
- package/dist/persona/schema.js.map +1 -0
- package/dist/persona/types.d.ts +38 -0
- package/dist/persona/types.d.ts.map +1 -0
- package/dist/persona/types.js +2 -0
- package/dist/persona/types.js.map +1 -0
- package/dist/pricing.d.ts +40 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +70 -0
- package/dist/pricing.js.map +1 -0
- package/dist/quota-park.d.ts +53 -0
- package/dist/quota-park.d.ts.map +1 -0
- package/dist/quota-park.js +135 -0
- package/dist/quota-park.js.map +1 -0
- package/dist/rate-pause.d.ts +28 -0
- package/dist/rate-pause.d.ts.map +1 -0
- package/dist/rate-pause.js +72 -0
- package/dist/rate-pause.js.map +1 -0
- package/dist/registry.d.ts +142 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +471 -0
- package/dist/registry.js.map +1 -0
- package/dist/responses.d.ts +5 -0
- package/dist/responses.d.ts.map +1 -0
- package/dist/responses.js +290 -0
- package/dist/responses.js.map +1 -0
- package/dist/retry-after.d.ts +13 -0
- package/dist/retry-after.d.ts.map +1 -0
- package/dist/retry-after.js +64 -0
- package/dist/retry-after.js.map +1 -0
- package/dist/retry-ladder.d.ts +176 -0
- package/dist/retry-ladder.d.ts.map +1 -0
- package/dist/retry-ladder.js +664 -0
- package/dist/retry-ladder.js.map +1 -0
- package/dist/split-inband-thinking.d.ts +35 -0
- package/dist/split-inband-thinking.d.ts.map +1 -0
- package/dist/split-inband-thinking.js +117 -0
- package/dist/split-inband-thinking.js.map +1 -0
- package/dist/stream-idle.d.ts +97 -0
- package/dist/stream-idle.d.ts.map +1 -0
- package/dist/stream-idle.js +127 -0
- package/dist/stream-idle.js.map +1 -0
- package/dist/tool-call-ids.d.ts +16 -0
- package/dist/tool-call-ids.d.ts.map +1 -0
- package/dist/tool-call-ids.js +36 -0
- package/dist/tool-call-ids.js.map +1 -0
- package/package.json +32 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ModelClient } from "@wudao-org/core";
|
|
2
|
+
import type { ProviderConfig } from "./config.js";
|
|
3
|
+
import type { ProviderOptions } from "./openai-compatible.js";
|
|
4
|
+
export declare function createProvider(config: ProviderConfig, options?: ProviderOptions): ModelClient;
|
|
5
|
+
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,eAAoB,GAAG,WAAW,CAejG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PROTOCOL_IDS } from "./persona/schema.js";
|
|
2
|
+
import { createOpenAICompatibleProvider } from "./openai-compatible.js";
|
|
3
|
+
import { createAnthropicProvider } from "./anthropic.js";
|
|
4
|
+
import { createResponsesProvider } from "./responses.js";
|
|
5
|
+
export function createProvider(config, options = {}) {
|
|
6
|
+
// Widen to string so the default arm stays reachable: a hand-built config
|
|
7
|
+
// (JS caller, or one parsed off disk) can carry any runtime value — the
|
|
8
|
+
// ProtocolId type is the compile-time promise, not the runtime guarantee.
|
|
9
|
+
const wire = config.wire ?? "openai-chat";
|
|
10
|
+
switch (wire) {
|
|
11
|
+
case "openai-chat":
|
|
12
|
+
return createOpenAICompatibleProvider(config, options);
|
|
13
|
+
case "anthropic":
|
|
14
|
+
return createAnthropicProvider(config, options);
|
|
15
|
+
case "responses":
|
|
16
|
+
return createResponsesProvider(config, options);
|
|
17
|
+
default:
|
|
18
|
+
throw new Error(`unknown wire "${wire}" (expected one of: ${PROTOCOL_IDS.join(", ")})`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,UAAU,cAAc,CAAC,MAAsB,EAAE,UAA2B,EAAE;IAClF,0EAA0E;IAC1E,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,IAAI,aAAa,CAAC;IAClD,QAAQ,IAAkB,EAAE,CAAC;QAC3B,KAAK,aAAa;YAChB,OAAO,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzD,KAAK,WAAW;YACd,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,KAAK,WAAW;YACd,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,uBAAuB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReasoningEffort } from "./config.js";
|
|
2
|
+
import type { EffectiveProfile } from "./registry.js";
|
|
3
|
+
/** 模型级 effort 钉:只钉有平台文档出处的限制(kimi-k2.7-code 家族——
|
|
4
|
+
* platform.kimi.com/docs/guide/claude-code-kimi:该模型必须显式 thinking,
|
|
5
|
+
* effort none(不发 thinking 块)会被端点 400)。键序:provider → model →
|
|
6
|
+
* 完整支持集合。 */
|
|
7
|
+
export declare const MODEL_EFFORT_PINS: Readonly<Record<string, Readonly<Record<string, readonly ReasoningEffort[]>>>>;
|
|
8
|
+
/** The supported effort set for a (provider, model) pair, or undefined when
|
|
9
|
+
* the provider is unknown (custom-without-row, blank) — the caller degrades
|
|
10
|
+
* to「未验证」, never blocks. Precedence: registry `efforts` override
|
|
11
|
+
* (wholesale, beats model pins) > model pin > derived family set. Pure. */
|
|
12
|
+
export declare function supportedEfforts(provider: string | undefined, model: string, profiles?: ReadonlyMap<string, EffectiveProfile>): readonly ReasoningEffort[] | undefined;
|
|
13
|
+
/** Does this family's wire carry streaming reasoning_content? true for the
|
|
14
|
+
* openai-wire reasoning formats; false for format "none" (anthropic-wire
|
|
15
|
+
* thinking blocks / no reasoning lane). undefined = unknown provider. Pure. */
|
|
16
|
+
export declare function reasoningContentStreams(provider: string | undefined, profiles?: ReadonlyMap<string, EffectiveProfile>): boolean | undefined;
|
|
17
|
+
//# sourceMappingURL=effort-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effort-catalog.d.ts","sourceRoot":"","sources":["../src/effort-catalog.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAmB,eAAe,EAAmB,MAAM,aAAa,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAsBtD;;;cAGc;AACd,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CACtC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC,CAAC,CAMrE,CAAC;AAuBF;;;4EAG4E;AAC5E,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC/C,SAAS,eAAe,EAAE,GAAG,SAAS,CAOxC;AAED;;gFAEgF;AAChF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC/C,OAAO,GAAG,SAAS,CAIrB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// ω99-245: #4 — 角色化推理能力目录(数据层)。每模型族 → 支持的 effort 档
|
|
2
|
+
// 集合 + 是否 reasoning 模型(reasoning_content 有无)。纯查表:族默认从
|
|
3
|
+
// PROVIDER_PROFILES 推导(单一事实源——目录永不与矩阵漂移),模型级钉只落在
|
|
4
|
+
// 有出处的文档事实上;registry 的 `efforts` 覆盖列整卡替换(fail-closed 但
|
|
5
|
+
// 可逃生:用户新模型/目录过时不被卡死)。未知 provider/模型返回 undefined
|
|
6
|
+
// = 降级「未验证」,绝不阻塞。
|
|
7
|
+
import { PROVIDER_PROFILES, REASONING_EFFORTS, isBuiltinProviderName } from "./config.js";
|
|
8
|
+
/** 流式 reasoning_content 的推理格式(openai 线族——deepseek/zai/qwen 系)。
|
|
9
|
+
* format "none"(anthropic wire 的 thinking 块线与无推理端点)没有
|
|
10
|
+
* reasoning_content。 */
|
|
11
|
+
const REASONING_CONTENT_FORMATS = new Set([
|
|
12
|
+
"deepseek",
|
|
13
|
+
"zai",
|
|
14
|
+
"qwen",
|
|
15
|
+
"qwen-chat-template",
|
|
16
|
+
"openrouter",
|
|
17
|
+
"together",
|
|
18
|
+
"baseten",
|
|
19
|
+
]);
|
|
20
|
+
/** 模型级 effort 钉:只钉有平台文档出处的限制(kimi-k2.7-code 家族——
|
|
21
|
+
* platform.kimi.com/docs/guide/claude-code-kimi:该模型必须显式 thinking,
|
|
22
|
+
* effort none(不发 thinking 块)会被端点 400)。键序:provider → model →
|
|
23
|
+
* 完整支持集合。 */
|
|
24
|
+
export const MODEL_EFFORT_PINS = {
|
|
25
|
+
kimi: {
|
|
26
|
+
"kimi-k2.7-code": ["low", "medium", "high", "max"],
|
|
27
|
+
"kimi-k2.7-code-highspeed": ["low", "medium", "high", "max"],
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
/** Resolve the profile view for a provider id: the effective (registry) view
|
|
31
|
+
* first, then the compiled-in builtin. undefined = unknown provider. */
|
|
32
|
+
function profileFor(provider, profiles) {
|
|
33
|
+
if (provider === undefined || provider === "")
|
|
34
|
+
return undefined;
|
|
35
|
+
const registered = profiles?.get(provider);
|
|
36
|
+
if (registered !== undefined)
|
|
37
|
+
return registered;
|
|
38
|
+
return isBuiltinProviderName(provider) ? PROVIDER_PROFILES[provider] : undefined;
|
|
39
|
+
}
|
|
40
|
+
/** 族默认支持集:全五档减去 thinkingLevelMap 显式钉为 null(不支持)的档。
|
|
41
|
+
* 折叠(glm 的 enabled/disabled、qwen 的布尔)不是不支持——引擎每档都可
|
|
42
|
+
* 表达,目录照收。 */
|
|
43
|
+
function familyEfforts(profile) {
|
|
44
|
+
const map = profile.thinkingLevelMap;
|
|
45
|
+
if (map === undefined)
|
|
46
|
+
return REASONING_EFFORTS;
|
|
47
|
+
return REASONING_EFFORTS.filter((e) => map[e] !== null);
|
|
48
|
+
}
|
|
49
|
+
/** The supported effort set for a (provider, model) pair, or undefined when
|
|
50
|
+
* the provider is unknown (custom-without-row, blank) — the caller degrades
|
|
51
|
+
* to「未验证」, never blocks. Precedence: registry `efforts` override
|
|
52
|
+
* (wholesale, beats model pins) > model pin > derived family set. Pure. */
|
|
53
|
+
export function supportedEfforts(provider, model, profiles) {
|
|
54
|
+
const profile = profileFor(provider, profiles);
|
|
55
|
+
if (profile === undefined)
|
|
56
|
+
return undefined;
|
|
57
|
+
if (profile.efforts !== undefined)
|
|
58
|
+
return profile.efforts;
|
|
59
|
+
const pinned = MODEL_EFFORT_PINS[provider ?? ""]?.[model];
|
|
60
|
+
if (pinned !== undefined)
|
|
61
|
+
return pinned;
|
|
62
|
+
return familyEfforts(profile);
|
|
63
|
+
}
|
|
64
|
+
/** Does this family's wire carry streaming reasoning_content? true for the
|
|
65
|
+
* openai-wire reasoning formats; false for format "none" (anthropic-wire
|
|
66
|
+
* thinking blocks / no reasoning lane). undefined = unknown provider. Pure. */
|
|
67
|
+
export function reasoningContentStreams(provider, profiles) {
|
|
68
|
+
const profile = profileFor(provider, profiles);
|
|
69
|
+
if (profile === undefined)
|
|
70
|
+
return undefined;
|
|
71
|
+
return REASONING_CONTENT_FORMATS.has(profile.reasoningFormat ?? "none");
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=effort-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effort-catalog.js","sourceRoot":"","sources":["../src/effort-catalog.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,sDAAsD;AACtD,iDAAiD;AACjD,uDAAuD;AACvD,iDAAiD;AACjD,kBAAkB;AAClB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAW1F;;yBAEyB;AACzB,MAAM,yBAAyB,GAAiC,IAAI,GAAG,CAAC;IACtE,UAAU;IACV,KAAK;IACL,MAAM;IACN,oBAAoB;IACpB,YAAY;IACZ,UAAU;IACV,SAAS;CACV,CAAC,CAAC;AAEH;;;cAGc;AACd,MAAM,CAAC,MAAM,iBAAiB,GAE1B;IACF,IAAI,EAAE;QACJ,gBAAgB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;QAClD,0BAA0B,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;KAC7D;CACF,CAAC;AAEF;yEACyE;AACzE,SAAS,UAAU,CACjB,QAA4B,EAC5B,QAAgD;IAEhD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,UAAU,GAAG,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAChD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,CAAC;AAED;;eAEe;AACf,SAAS,aAAa,CAAC,OAAuB;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACrC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,iBAAiB,CAAC;IAChD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED;;;4EAG4E;AAC5E,MAAM,UAAU,gBAAgB,CAC9B,QAA4B,EAC5B,KAAa,EACb,QAAgD;IAEhD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAC1D,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED;;gFAEgF;AAChF,MAAM,UAAU,uBAAuB,CACrC,QAA4B,EAC5B,QAAgD;IAEhD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 波次 8 #42 (hermes #24 `bounded_response.py`): bounded error-body read.
|
|
3
|
+
*
|
|
4
|
+
* The three protocol factories read a non-OK response's body for diagnostics.
|
|
5
|
+
* A bare `await res.text()` is unbounded on BOTH axes:
|
|
6
|
+
* · bytes — a server that answers 500 with a multi-GB body buffers all of
|
|
7
|
+
* it into memory for a diagnostic string nobody reads past a few hundred
|
|
8
|
+
* chars;
|
|
9
|
+
* · wall clock — a server that opens the error body then STOPS sending
|
|
10
|
+
* parks the read in C/socket land; no outer timer cancels it and the
|
|
11
|
+
* request hangs well past every retry deadline.
|
|
12
|
+
*
|
|
13
|
+
* `readErrorBody` reads the (already-decompressed) body stream with a byte
|
|
14
|
+
* cap and a wall-clock deadline; whichever trips first, the reader is
|
|
15
|
+
* CANCELLED — undici tears down the connection instead of leaking the stalled
|
|
16
|
+
* read — and the received prefix is returned. Mid-read stream errors return
|
|
17
|
+
* the prefix too (more diagnostic value than the old catch→""), and the whole
|
|
18
|
+
* function never throws (the `safeText` contract rides unchanged).
|
|
19
|
+
*/
|
|
20
|
+
/** Diagnostic bodies are shown truncated to a few hundred chars everywhere
|
|
21
|
+
* downstream; 64KB is generously past that and hermes' chosen bound. */
|
|
22
|
+
export declare const ERROR_BODY_MAX_BYTES: number;
|
|
23
|
+
/** Generous for a healthy error answer, but finite for a stalled one. */
|
|
24
|
+
export declare const ERROR_BODY_DEADLINE_MS = 5000;
|
|
25
|
+
export interface ReadErrorBodyOptions {
|
|
26
|
+
/** Byte cap; default {@link ERROR_BODY_MAX_BYTES}. */
|
|
27
|
+
readonly maxBytes?: number;
|
|
28
|
+
/** Wall-clock deadline, ms; default {@link ERROR_BODY_DEADLINE_MS}. */
|
|
29
|
+
readonly deadlineMs?: number;
|
|
30
|
+
}
|
|
31
|
+
export declare function readErrorBody(res: Response, opts?: ReadErrorBodyOptions): Promise<string>;
|
|
32
|
+
//# sourceMappingURL=error-body.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-body.d.ts","sourceRoot":"","sources":["../src/error-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;yEACyE;AACzE,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,OAAQ,CAAC;AAE5C,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2CnG"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 波次 8 #42 (hermes #24 `bounded_response.py`): bounded error-body read.
|
|
3
|
+
*
|
|
4
|
+
* The three protocol factories read a non-OK response's body for diagnostics.
|
|
5
|
+
* A bare `await res.text()` is unbounded on BOTH axes:
|
|
6
|
+
* · bytes — a server that answers 500 with a multi-GB body buffers all of
|
|
7
|
+
* it into memory for a diagnostic string nobody reads past a few hundred
|
|
8
|
+
* chars;
|
|
9
|
+
* · wall clock — a server that opens the error body then STOPS sending
|
|
10
|
+
* parks the read in C/socket land; no outer timer cancels it and the
|
|
11
|
+
* request hangs well past every retry deadline.
|
|
12
|
+
*
|
|
13
|
+
* `readErrorBody` reads the (already-decompressed) body stream with a byte
|
|
14
|
+
* cap and a wall-clock deadline; whichever trips first, the reader is
|
|
15
|
+
* CANCELLED — undici tears down the connection instead of leaking the stalled
|
|
16
|
+
* read — and the received prefix is returned. Mid-read stream errors return
|
|
17
|
+
* the prefix too (more diagnostic value than the old catch→""), and the whole
|
|
18
|
+
* function never throws (the `safeText` contract rides unchanged).
|
|
19
|
+
*/
|
|
20
|
+
/** Diagnostic bodies are shown truncated to a few hundred chars everywhere
|
|
21
|
+
* downstream; 64KB is generously past that and hermes' chosen bound. */
|
|
22
|
+
export const ERROR_BODY_MAX_BYTES = 64 * 1024;
|
|
23
|
+
/** Generous for a healthy error answer, but finite for a stalled one. */
|
|
24
|
+
export const ERROR_BODY_DEADLINE_MS = 5_000;
|
|
25
|
+
export async function readErrorBody(res, opts = {}) {
|
|
26
|
+
const maxBytes = opts.maxBytes ?? ERROR_BODY_MAX_BYTES;
|
|
27
|
+
const deadlineMs = opts.deadlineMs ?? ERROR_BODY_DEADLINE_MS;
|
|
28
|
+
try {
|
|
29
|
+
const body = res.body;
|
|
30
|
+
if (!body)
|
|
31
|
+
return await res.text(); // no stream to bound — 204/304 shapes
|
|
32
|
+
const reader = body.getReader();
|
|
33
|
+
const decoder = new TextDecoder();
|
|
34
|
+
let out = "";
|
|
35
|
+
let bytes = 0;
|
|
36
|
+
const deadline = Date.now() + deadlineMs;
|
|
37
|
+
while (true) {
|
|
38
|
+
const remaining = deadline - Date.now();
|
|
39
|
+
if (remaining <= 0)
|
|
40
|
+
break; // stalled — the prefix below is all we get
|
|
41
|
+
// settle-safe: the losing side of the race must never surface as an
|
|
42
|
+
// unhandled rejection when we abandon the read.
|
|
43
|
+
const readP = reader.read().then((r) => ({ kind: "read", r }), (e) => ({ kind: "fail", e }));
|
|
44
|
+
let timer;
|
|
45
|
+
const gate = new Promise((resolve) => { timer = setTimeout(() => resolve("timer"), remaining); });
|
|
46
|
+
const winner = await Promise.race([readP, gate]);
|
|
47
|
+
if (timer !== undefined)
|
|
48
|
+
clearTimeout(timer);
|
|
49
|
+
if (winner === "timer")
|
|
50
|
+
break;
|
|
51
|
+
if (winner.kind === "fail")
|
|
52
|
+
return out + decoder.decode(); // prefix, flushed
|
|
53
|
+
const { done, value } = winner.r;
|
|
54
|
+
if (done)
|
|
55
|
+
return out + decoder.decode(); // clean end — flush multibyte tail
|
|
56
|
+
if (value) {
|
|
57
|
+
const room = maxBytes - bytes;
|
|
58
|
+
const slice = value.byteLength > room ? value.subarray(0, Math.max(0, room)) : value;
|
|
59
|
+
out += decoder.decode(slice, { stream: true });
|
|
60
|
+
bytes += slice.byteLength;
|
|
61
|
+
if (bytes >= maxBytes)
|
|
62
|
+
break; // cap reached — the tail is worthless
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Abandoning mid-stream (deadline or cap): cancel so the socket is freed
|
|
66
|
+
// instead of parking the read forever.
|
|
67
|
+
await reader.cancel().catch(() => { });
|
|
68
|
+
return out + decoder.decode();
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return "";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=error-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-body.js","sourceRoot":"","sources":["../src/error-body.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** The credential headers the adapter's key pool owns. A persona header with
|
|
2
|
+
* one of these names is SKIPPED (never sent) by resolvePersonaHeaders — the
|
|
3
|
+
* once-per-process notice below is visibility for that silent drop, not a
|
|
4
|
+
* behavior change. Deliberately excludes anthropic-version (pinned by design
|
|
5
|
+
* on the claude-code builtin persona). */
|
|
6
|
+
export declare const RESERVED_CREDENTIAL_HEADER_KEYS: ReadonlySet<string>;
|
|
7
|
+
/** ω99-69(64 停泊 C1 收口):persona 永不控制、hand-built 配置也永不覆盖的
|
|
8
|
+
* 头全集——鉴权键(键池所有)+ hop-by-hop / 传输语义键(适配器所有)。
|
|
9
|
+
* 定义唯一下沉到这里(header-validation.ts 单一来源,无 import 出边——依赖
|
|
10
|
+
* 图无环);persona/schema.ts re-export 保既有 import 面(registry/apply 的
|
|
11
|
+
* ABI 零 diff)。四个消费面同一堵墙:schema 加载期拒绝(checkHeaderMap)、
|
|
12
|
+
* registry 保存/加载期拒行(validateUserProviderEntry /
|
|
13
|
+
* readProviderRegistrySync)、resolvePersonaHeaders 防御性跳过(persona
|
|
14
|
+
* 面)、gatewayExtraHeaders seam 跳过(hand-built 面)——64 裁定反转理由:
|
|
15
|
+
* registry 面(唯一用户面)已全集拦,hand-built 面与它的防御不对称没有
|
|
16
|
+
* 架构理由,两入口同一堵墙。 */
|
|
17
|
+
export declare const FORBIDDEN_HEADER_KEYS: ReadonlySet<string>;
|
|
18
|
+
/** Probe: can this [name, value] pair ride a fetch wire? Returns the
|
|
19
|
+
* underlying TypeError message when the global Headers constructor refuses
|
|
20
|
+
* the pair (the same validation undici applies at request time), null when
|
|
21
|
+
* representable. Single probe source: the schema (load-time errors), the
|
|
22
|
+
* registry (save-time red), and the adapter seam (typed throw) all consume
|
|
23
|
+
* this one function. */
|
|
24
|
+
export declare function headerRepresentabilityError(name: string, value: string): string | null;
|
|
25
|
+
/** The typed load-time rejection (dsh assertValidHeaders form). Deterministic
|
|
26
|
+
* — junk can never succeed on retry or on a sibling model — so BOTH error
|
|
27
|
+
* ladders fail fast on its name (isRetryableProviderError /
|
|
28
|
+
* isModelFallbackEligible), the validatedInputEffort/M58 §C discipline. */
|
|
29
|
+
export declare class HeaderValidationError extends Error {
|
|
30
|
+
constructor(label: string, headerName: string, originalMessage: string);
|
|
31
|
+
}
|
|
32
|
+
/** Throw a named HeaderValidationError when any [name, value] in `headers`
|
|
33
|
+
* cannot ride a fetch wire. `label` names the source (provider/persona/card)
|
|
34
|
+
* so the error points at the fix instead of dying as an anonymous undici
|
|
35
|
+
* TypeError mid-request. */
|
|
36
|
+
export declare function assertValidHeaders(headers: Readonly<Record<string, string>>, label: string): void;
|
|
37
|
+
/** ω99-64 → ω99-69: the registry/provider-card extra headers as they ride the
|
|
38
|
+
* adapter seam — FORBIDDEN keys (auth + transport-control, the full 14-key
|
|
39
|
+
* set) are skipped, never sent: the key pool owns auth and the adapter owns
|
|
40
|
+
* transport on the wire, structurally (both land BEFORE the user spreads at
|
|
41
|
+
* all five header-construction points, so an unfiltered key would silently
|
|
42
|
+
* REPLACE the adapter's own — a hand-built content-type used to clobber the
|
|
43
|
+
* JSON body's content-type). ω99-69 reverses 64's parking of the transport
|
|
44
|
+
* half ("loud self-injury"): the registry face (the only user-facing
|
|
45
|
+
* entrance) already refuses the full FORBIDDEN set at save AND load, so the
|
|
46
|
+
* hand-built face skipping only auth was a defense asymmetry with no
|
|
47
|
+
* architectural reason — one wall, both entrances (same posture as
|
|
48
|
+
* resolvePersonaHeaders, which already skips the full set; its skip is
|
|
49
|
+
* likewise silent for transport keys — no notice added here either).
|
|
50
|
+
* undefined → {} so an unconfigured config keeps its historical header
|
|
51
|
+
* bytes; an empty {} row spreads to nothing (§3.6 no-op). */
|
|
52
|
+
export declare function gatewayExtraHeaders(extra: Readonly<Record<string, string>> | undefined): Record<string, string>;
|
|
53
|
+
/** One-line stderr tell that a persona header named a reserved credential
|
|
54
|
+
* key and was therefore IGNORED (the adapter's key-pool credentials own
|
|
55
|
+
* auth on the wire). Visibility only — the skip itself is unchanged. */
|
|
56
|
+
export declare function noticeReservedCredentialHeader(headerName: string, label: string): void;
|
|
57
|
+
//# sourceMappingURL=header-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-validation.d.ts","sourceRoot":"","sources":["../src/header-validation.ts"],"names":[],"mappings":"AAqBA;;;;2CAI2C;AAC3C,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,MAAM,CAA2C,CAAC;AAE5G;;;;;;;;;oBASoB;AACpB,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAepD,CAAC;AAEH;;;;;yBAKyB;AACzB,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQtF;AAED;;;4EAG4E;AAC5E,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;CAIvE;AAED;;;6BAG6B;AAC7B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKjG;AAED;;;;;;;;;;;;;;8DAc8D;AAC9D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ/G;AAOD;;yEAEyE;AACzE,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMtF"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// packages/providers/src/header-validation.ts — ω99-50:用户自定义 header 的
|
|
2
|
+
// fetch 可表示性校验 + 凭证保留名可见性。
|
|
3
|
+
//
|
|
4
|
+
// 来源:dsh 候选 9(assertValidHeaders,commit 25e4527f5e)经队列 105 §3 池
|
|
5
|
+
// 第 6 项。wudao 裁定(brief §1,控制器预裁决):
|
|
6
|
+
// - 只校验用户输入面 —— persona wire.headers(5 触点的唯一来源)与 registry
|
|
7
|
+
// 行的 headers 列(持久化保留面,尚未上 wire);适配器自带头不校验。
|
|
8
|
+
// - 探针依据(node 24 实测):`new Headers([[name, value]])` 与 fetch(undici)
|
|
9
|
+
// 请求时刻消费同一校验 —— LF/CR/NUL 值、>255 字节值(CJK)、空格/换行/
|
|
10
|
+
// 制表/空/非 ASCII 名全部抛 TypeError;空值与 latin-1 内字符合法。
|
|
11
|
+
// 加载期用它预测请求时刻的失败,错误早一步且指名(provider + header 名
|
|
12
|
+
// + 原始 TypeError 文案)——dsh 形。
|
|
13
|
+
// - 保留名(authorization/x-api-key)不采纳 dsh 的"harness 归属、拒绝用户"
|
|
14
|
+
// ——wudao 里这两个键在 persona schema 加载期已拒、resolve 期防御性跳过
|
|
15
|
+
// (FORBIDDEN_HEADER_KEYS —— ω99-69 起定义在本文件单一来源,schema.ts
|
|
16
|
+
// re-export),根本到不了 wire;本弧只对"程序化构造绕过 schema"的兜底
|
|
17
|
+
// 路径加一次性 stderr 可见性(静默丢弃 → 告知丢弃),行为零变化。
|
|
18
|
+
// anthropic-version 不在警告集:内置 claude-code persona 按设计钉它
|
|
19
|
+
// (builtins.ts 身份仿真),警告即常态噪音。
|
|
20
|
+
//
|
|
21
|
+
// 红线:合法 header 请求字节零变化;`...(wire?.headers)` 仍在 auth 后 spread。
|
|
22
|
+
/** The credential headers the adapter's key pool owns. A persona header with
|
|
23
|
+
* one of these names is SKIPPED (never sent) by resolvePersonaHeaders — the
|
|
24
|
+
* once-per-process notice below is visibility for that silent drop, not a
|
|
25
|
+
* behavior change. Deliberately excludes anthropic-version (pinned by design
|
|
26
|
+
* on the claude-code builtin persona). */
|
|
27
|
+
export const RESERVED_CREDENTIAL_HEADER_KEYS = new Set(["authorization", "x-api-key"]);
|
|
28
|
+
/** ω99-69(64 停泊 C1 收口):persona 永不控制、hand-built 配置也永不覆盖的
|
|
29
|
+
* 头全集——鉴权键(键池所有)+ hop-by-hop / 传输语义键(适配器所有)。
|
|
30
|
+
* 定义唯一下沉到这里(header-validation.ts 单一来源,无 import 出边——依赖
|
|
31
|
+
* 图无环);persona/schema.ts re-export 保既有 import 面(registry/apply 的
|
|
32
|
+
* ABI 零 diff)。四个消费面同一堵墙:schema 加载期拒绝(checkHeaderMap)、
|
|
33
|
+
* registry 保存/加载期拒行(validateUserProviderEntry /
|
|
34
|
+
* readProviderRegistrySync)、resolvePersonaHeaders 防御性跳过(persona
|
|
35
|
+
* 面)、gatewayExtraHeaders seam 跳过(hand-built 面)——64 裁定反转理由:
|
|
36
|
+
* registry 面(唯一用户面)已全集拦,hand-built 面与它的防御不对称没有
|
|
37
|
+
* 架构理由,两入口同一堵墙。 */
|
|
38
|
+
export const FORBIDDEN_HEADER_KEYS = new Set([
|
|
39
|
+
"authorization",
|
|
40
|
+
"x-api-key",
|
|
41
|
+
"host",
|
|
42
|
+
"content-length",
|
|
43
|
+
"content-type",
|
|
44
|
+
"connection",
|
|
45
|
+
"keep-alive",
|
|
46
|
+
"proxy-authenticate",
|
|
47
|
+
"proxy-authorization",
|
|
48
|
+
"te",
|
|
49
|
+
"trailer",
|
|
50
|
+
"transfer-encoding",
|
|
51
|
+
"upgrade",
|
|
52
|
+
"cookie",
|
|
53
|
+
]);
|
|
54
|
+
/** Probe: can this [name, value] pair ride a fetch wire? Returns the
|
|
55
|
+
* underlying TypeError message when the global Headers constructor refuses
|
|
56
|
+
* the pair (the same validation undici applies at request time), null when
|
|
57
|
+
* representable. Single probe source: the schema (load-time errors), the
|
|
58
|
+
* registry (save-time red), and the adapter seam (typed throw) all consume
|
|
59
|
+
* this one function. */
|
|
60
|
+
export function headerRepresentabilityError(name, value) {
|
|
61
|
+
const init = [[name, value]];
|
|
62
|
+
try {
|
|
63
|
+
new Headers(init);
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
return e instanceof Error ? e.message : String(e);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** The typed load-time rejection (dsh assertValidHeaders form). Deterministic
|
|
71
|
+
* — junk can never succeed on retry or on a sibling model — so BOTH error
|
|
72
|
+
* ladders fail fast on its name (isRetryableProviderError /
|
|
73
|
+
* isModelFallbackEligible), the validatedInputEffort/M58 §C discipline. */
|
|
74
|
+
export class HeaderValidationError extends Error {
|
|
75
|
+
constructor(label, headerName, originalMessage) {
|
|
76
|
+
super(`${label}: header "${headerName}" cannot be sent — ${originalMessage}`);
|
|
77
|
+
this.name = "HeaderValidationError";
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** Throw a named HeaderValidationError when any [name, value] in `headers`
|
|
81
|
+
* cannot ride a fetch wire. `label` names the source (provider/persona/card)
|
|
82
|
+
* so the error points at the fix instead of dying as an anonymous undici
|
|
83
|
+
* TypeError mid-request. */
|
|
84
|
+
export function assertValidHeaders(headers, label) {
|
|
85
|
+
for (const [name, value] of Object.entries(headers)) {
|
|
86
|
+
const rep = headerRepresentabilityError(name, value);
|
|
87
|
+
if (rep !== null)
|
|
88
|
+
throw new HeaderValidationError(label, name, rep);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** ω99-64 → ω99-69: the registry/provider-card extra headers as they ride the
|
|
92
|
+
* adapter seam — FORBIDDEN keys (auth + transport-control, the full 14-key
|
|
93
|
+
* set) are skipped, never sent: the key pool owns auth and the adapter owns
|
|
94
|
+
* transport on the wire, structurally (both land BEFORE the user spreads at
|
|
95
|
+
* all five header-construction points, so an unfiltered key would silently
|
|
96
|
+
* REPLACE the adapter's own — a hand-built content-type used to clobber the
|
|
97
|
+
* JSON body's content-type). ω99-69 reverses 64's parking of the transport
|
|
98
|
+
* half ("loud self-injury"): the registry face (the only user-facing
|
|
99
|
+
* entrance) already refuses the full FORBIDDEN set at save AND load, so the
|
|
100
|
+
* hand-built face skipping only auth was a defense asymmetry with no
|
|
101
|
+
* architectural reason — one wall, both entrances (same posture as
|
|
102
|
+
* resolvePersonaHeaders, which already skips the full set; its skip is
|
|
103
|
+
* likewise silent for transport keys — no notice added here either).
|
|
104
|
+
* undefined → {} so an unconfigured config keeps its historical header
|
|
105
|
+
* bytes; an empty {} row spreads to nothing (§3.6 no-op). */
|
|
106
|
+
export function gatewayExtraHeaders(extra) {
|
|
107
|
+
if (extra === undefined)
|
|
108
|
+
return {};
|
|
109
|
+
const out = {};
|
|
110
|
+
for (const [k, v] of Object.entries(extra)) {
|
|
111
|
+
if (FORBIDDEN_HEADER_KEYS.has(k.toLowerCase()))
|
|
112
|
+
continue;
|
|
113
|
+
out[k] = v;
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
117
|
+
// ω99-39 form: providers has no warn/notice channel, so the pre-authorized
|
|
118
|
+
// fallback applies — ONE stderr line per process, module-level guard. Tests
|
|
119
|
+
// re-arm with vi.resetModules + dynamic import (a fresh module instance).
|
|
120
|
+
let reservedHeaderNoticeShown = false;
|
|
121
|
+
/** One-line stderr tell that a persona header named a reserved credential
|
|
122
|
+
* key and was therefore IGNORED (the adapter's key-pool credentials own
|
|
123
|
+
* auth on the wire). Visibility only — the skip itself is unchanged. */
|
|
124
|
+
export function noticeReservedCredentialHeader(headerName, label) {
|
|
125
|
+
if (reservedHeaderNoticeShown)
|
|
126
|
+
return;
|
|
127
|
+
reservedHeaderNoticeShown = true;
|
|
128
|
+
process.stderr.write(`wudao: ${label}: persona header "${headerName}" is ignored — auth headers are reserved for the key pool\n`);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=header-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-validation.js","sourceRoot":"","sources":["../src/header-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export { createOpenAICompatibleProvider, serializePrompt, withRetry, withRetryStream, isRetryableProviderError, backoffDelayMs, defaultMaxRetries, ProviderHttpError, OVERLOAD_BODY_SIGNATURES, sniffOverloadBody, isOverloadError, overloadBackoffDelayMs, ContextLengthError, CONTEXT_LENGTH_BODY_SIGNATURES, CONTEXT_LIMIT_INPUT_LENGTH_RE, matchContextLimitInputLength, sniffContextLengthBody, isContextLengthFailure, StreamIdleError, DEFAULT_STREAM_IDLE_TIMEOUT_MS, MAX_STREAM_IDLE_TIMEOUT_MS, defaultStreamIdleTimeoutMs, DEFAULT_STREAM_IDLE_SOFT_MS, DEFAULT_STREAM_IDLE_HARD_MS, resolveStreamIdleBudget, type StreamIdleBudget, type StreamIdleRuntime, type StreamIdleWarningInfo, StreamOverflowError, TruncatedStreamError, FOREGROUND_QUERY_SOURCES, isOverloadClassFailure, isNetworkClassFailure, DEFAULT_NETWORK_GRACE_RETRY_MULTIPLIER, DEFAULT_NETWORK_GRACE_MAX_DELAY_MS, BackgroundOverloadError, parseMaxTokensOverflow, selfRepairMaxTokensValue, parseContextLimitBody, terminalRepairKind, ReasoningMandatoryError, isMandatoryReasoningRejection, MANDATORY_REASONING_BODY_SIGNATURES, assertImagesSupported, TOOL_IMAGE_NOTE, QUOTA_BODY_SIGNATURES, sniffQuotaBody, parseQuotaResetAt, isQuotaParkFailure, tryQuotaParkError, QuotaParkError, } from "./openai-compatible.js";
|
|
2
|
+
export { createAnthropicProvider } from "./anthropic.js";
|
|
3
|
+
export { createResponsesProvider } from "./responses.js";
|
|
4
|
+
export { withModelFallback } from "./model-fallback.js";
|
|
5
|
+
export type { ModelClientFactory, StreamingModelClient } from "./model-fallback.js";
|
|
6
|
+
export { MaxTokensThinkingBudgetConflictError } from "./model-failure.js";
|
|
7
|
+
export { parseRetryAfterMs, RETRY_AFTER_FAIL_CAP_MS } from "./retry-after.js";
|
|
8
|
+
export type { RetryAfterHeadersLike } from "./retry-after.js";
|
|
9
|
+
export { readErrorBody, ERROR_BODY_MAX_BYTES, ERROR_BODY_DEADLINE_MS } from "./error-body.js";
|
|
10
|
+
export type { ReadErrorBodyOptions } from "./error-body.js";
|
|
11
|
+
export { createProvider } from "./dispatcher.js";
|
|
12
|
+
export type { ProviderOptions, RetryLadderOptions, RetryObserver, AttachmentResolver } from "./openai-compatible.js";
|
|
13
|
+
export { modelInputModalities, resolveInputModalities, modelAcceptsImages, } from "./models.js";
|
|
14
|
+
export type { InputModality, ModelDescriptor } from "./models.js";
|
|
15
|
+
export { PROVIDER_PROFILES, REASONING_EFFORTS, REASONING_FORMATS, REASONING_REPLAYS, NO_KEY_REASON, parseApiKeyPool, isProviderName, isBuiltinProviderName, parseReasoningEffort, parseReasoningFormat, parseReasoningReplay, capClientReasoningReplay, parseWire, reasoningFormatBody, mandatoryRepairReasoningBody, reasoningResponseFields, pickReasoning, resolveReasoningContext, supportsReasoningEffort, resolveProviderConfig, resolveProviderConfigResult, acceptsReasoningOnlyFinish, omitsReasoningOnToolTurns, outputLimitEscalateFor, resolveWindowMode, } from "./config.js";
|
|
16
|
+
export { InbandThinkSplitter, resolveSplitInbandThinking } from "./split-inband-thinking.js";
|
|
17
|
+
export type { SplitOutput } from "./split-inband-thinking.js";
|
|
18
|
+
export type { ProviderConfig, ProviderConfigResult, ProviderName, BuiltinProviderName, ProviderProfile, ProviderSelection, ReasoningEffort, ReasoningFormat, ReasoningReplay, ReasoningRequestContext, WindowMode, CredentialsMap, } from "./config.js";
|
|
19
|
+
export { defaultProviderRegistryPath, readProviderRegistrySync, writeProviderRegistrySync, effectiveProfiles, validateUserProviderEntry, resolveContextWindowTokens, } from "./registry.js";
|
|
20
|
+
export type { ProviderModelEntry, UserProviderConfig, ProviderRegistryFile, RegistryLoadResult, EffectiveProfile, } from "./registry.js";
|
|
21
|
+
export { deriveCachePricing, isModelPrices, catalogPricesFor } from "./pricing.js";
|
|
22
|
+
export type { ModelPrices, PriceSource } from "./pricing.js";
|
|
23
|
+
export { supportedEfforts, reasoningContentStreams, MODEL_EFFORT_PINS, } from "./effort-catalog.js";
|
|
24
|
+
export { fetchProviderBalance, BALANCE_TIMEOUT_MS } from "./balance.js";
|
|
25
|
+
export type { BalanceInfo, ProviderBalance } from "./balance.js";
|
|
26
|
+
export { createKeyPool, createLiveKeyPool, keyPoolFromEnv, cooldownClassForStatus, DEFAULT_KEY_COOLDOWN_MS, DEFAULT_AUTH_COOLDOWN_MS, } from "./key-pool.js";
|
|
27
|
+
export type { KeyPool, KeyPoolOptions, KeyPoolSnapshot, CooldownClass } from "./key-pool.js";
|
|
28
|
+
export { createRatePauseWindow, DEFAULT_RATE_PAUSE_MS, RATE_PAUSE_SLICE_MS } from "./rate-pause.js";
|
|
29
|
+
export type { RatePauseWindow, RatePauseOptions } from "./rate-pause.js";
|
|
30
|
+
export { validatePersonaDefinition, effectiveLayers, BODY_WHITELIST, PROTOCOL_IDS } from "./persona/schema.js";
|
|
31
|
+
export { loadPersonaRegistry, lookupPersona } from "./persona/registry.js";
|
|
32
|
+
export type { PersonaRegistry } from "./persona/registry.js";
|
|
33
|
+
export { savePersonaDefinition, deletePersonaDefinition, personaIdsInDir } from "./persona/files.js";
|
|
34
|
+
export { BUILTIN_PERSONAS } from "./persona/builtins.js";
|
|
35
|
+
export { createPersonaRuntime, resolvePersona, parsePersonaSpec } from "./persona/runtime.js";
|
|
36
|
+
export type { PersonaRuntime, PersonaRuntimeSlots } from "./persona/runtime.js";
|
|
37
|
+
export { applyWirePersona, mergeBodyOverlay, resolveTemplate, resolvePersonaHeaders } from "./persona/apply.js";
|
|
38
|
+
export type { WirePersona } from "./persona/apply.js";
|
|
39
|
+
export { withPersona } from "./persona/decorator.js";
|
|
40
|
+
export type { ProtocolId, LayerFlags, PersonaDefinition, ResolvedPersona, PromptStyle, SystemStyle, BodyStyleOverlay, PersonaSource, } from "./persona/types.js";
|
|
41
|
+
export declare const PACKAGE_NAME = "@wudao-org/providers";
|
|
42
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|