@qjp88995/provider-client 0.1.1 → 0.3.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.
Files changed (125) hide show
  1. package/dist/direct-resolver.d.ts.map +1 -1
  2. package/dist/direct-resolver.js +2 -0
  3. package/dist/direct-resolver.js.map +1 -1
  4. package/dist/index.d.ts +5 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +4 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/justone/client.d.ts +101 -0
  9. package/dist/justone/client.d.ts.map +1 -0
  10. package/dist/justone/client.js +272 -0
  11. package/dist/justone/client.js.map +1 -0
  12. package/dist/justone/endpoint-spec.d.ts +49 -0
  13. package/dist/justone/endpoint-spec.d.ts.map +1 -0
  14. package/dist/justone/endpoint-spec.js +2 -0
  15. package/dist/justone/endpoint-spec.js.map +1 -0
  16. package/dist/justone/endpoints.generated.d.ts +7927 -0
  17. package/dist/justone/endpoints.generated.d.ts.map +1 -0
  18. package/dist/justone/endpoints.generated.js +8508 -0
  19. package/dist/justone/endpoints.generated.js.map +1 -0
  20. package/dist/justone/errors.d.ts +52 -0
  21. package/dist/justone/errors.d.ts.map +1 -0
  22. package/dist/justone/errors.js +73 -0
  23. package/dist/justone/errors.js.map +1 -0
  24. package/dist/justone/index.d.ts +8 -0
  25. package/dist/justone/index.d.ts.map +1 -0
  26. package/dist/justone/index.js +7 -0
  27. package/dist/justone/index.js.map +1 -0
  28. package/dist/justone/params.d.ts +17 -0
  29. package/dist/justone/params.d.ts.map +1 -0
  30. package/dist/justone/params.js +72 -0
  31. package/dist/justone/params.js.map +1 -0
  32. package/dist/justone/pricing.d.ts +6 -0
  33. package/dist/justone/pricing.d.ts.map +1 -0
  34. package/dist/justone/pricing.generated.d.ts +303 -0
  35. package/dist/justone/pricing.generated.d.ts.map +1 -0
  36. package/dist/justone/pricing.generated.js +305 -0
  37. package/dist/justone/pricing.generated.js.map +1 -0
  38. package/dist/justone/pricing.js +11 -0
  39. package/dist/justone/pricing.js.map +1 -0
  40. package/dist/media/bibigpt.adapter.d.ts +43 -0
  41. package/dist/media/bibigpt.adapter.d.ts.map +1 -0
  42. package/dist/media/bibigpt.adapter.js +302 -0
  43. package/dist/media/bibigpt.adapter.js.map +1 -0
  44. package/dist/media/http.d.ts +21 -0
  45. package/dist/media/http.d.ts.map +1 -0
  46. package/dist/media/http.js +39 -0
  47. package/dist/media/http.js.map +1 -0
  48. package/dist/media/index.d.ts +44 -0
  49. package/dist/media/index.d.ts.map +1 -0
  50. package/dist/media/index.js +47 -0
  51. package/dist/media/index.js.map +1 -0
  52. package/dist/media/types.d.ts +207 -0
  53. package/dist/media/types.d.ts.map +1 -0
  54. package/dist/media/types.js +21 -0
  55. package/dist/media/types.js.map +1 -0
  56. package/dist/media/zhipu-parser-package.d.ts +37 -0
  57. package/dist/media/zhipu-parser-package.d.ts.map +1 -0
  58. package/dist/media/zhipu-parser-package.js +108 -0
  59. package/dist/media/zhipu-parser-package.js.map +1 -0
  60. package/dist/media/zhipu.adapter.d.ts +37 -0
  61. package/dist/media/zhipu.adapter.d.ts.map +1 -0
  62. package/dist/media/zhipu.adapter.js +361 -0
  63. package/dist/media/zhipu.adapter.js.map +1 -0
  64. package/dist/provider-client.d.ts +65 -0
  65. package/dist/provider-client.d.ts.map +1 -1
  66. package/dist/provider-client.js +151 -0
  67. package/dist/provider-client.js.map +1 -1
  68. package/dist/types.d.ts +15 -4
  69. package/dist/types.d.ts.map +1 -1
  70. package/dist/types.js +16 -1
  71. package/dist/types.js.map +1 -1
  72. package/dist/web-search/deepseek.adapter.d.ts +19 -0
  73. package/dist/web-search/deepseek.adapter.d.ts.map +1 -0
  74. package/dist/web-search/deepseek.adapter.js +82 -0
  75. package/dist/web-search/deepseek.adapter.js.map +1 -0
  76. package/dist/web-search/http.d.ts +28 -0
  77. package/dist/web-search/http.d.ts.map +1 -0
  78. package/dist/web-search/http.js +95 -0
  79. package/dist/web-search/http.js.map +1 -0
  80. package/dist/web-search/index.d.ts +27 -0
  81. package/dist/web-search/index.d.ts.map +1 -0
  82. package/dist/web-search/index.js +36 -0
  83. package/dist/web-search/index.js.map +1 -0
  84. package/dist/web-search/minimax.adapter.d.ts +13 -0
  85. package/dist/web-search/minimax.adapter.d.ts.map +1 -0
  86. package/dist/web-search/minimax.adapter.js +82 -0
  87. package/dist/web-search/minimax.adapter.js.map +1 -0
  88. package/dist/web-search/moonshotai.adapter.d.ts +19 -0
  89. package/dist/web-search/moonshotai.adapter.d.ts.map +1 -0
  90. package/dist/web-search/moonshotai.adapter.js +151 -0
  91. package/dist/web-search/moonshotai.adapter.js.map +1 -0
  92. package/dist/web-search/types.d.ts +120 -0
  93. package/dist/web-search/types.d.ts.map +1 -0
  94. package/dist/web-search/types.js +60 -0
  95. package/dist/web-search/types.js.map +1 -0
  96. package/dist/web-search/zhipu.adapter.d.ts +14 -0
  97. package/dist/web-search/zhipu.adapter.d.ts.map +1 -0
  98. package/dist/web-search/zhipu.adapter.js +98 -0
  99. package/dist/web-search/zhipu.adapter.js.map +1 -0
  100. package/package.json +4 -3
  101. package/src/direct-resolver.ts +2 -0
  102. package/src/index.ts +104 -0
  103. package/src/justone/client.ts +462 -0
  104. package/src/justone/endpoint-spec.ts +66 -0
  105. package/src/justone/endpoints.generated.ts +9258 -0
  106. package/src/justone/errors.ts +97 -0
  107. package/src/justone/index.ts +34 -0
  108. package/src/justone/params.ts +91 -0
  109. package/src/justone/pricing.generated.ts +308 -0
  110. package/src/justone/pricing.ts +11 -0
  111. package/src/media/bibigpt.adapter.ts +372 -0
  112. package/src/media/http.ts +43 -0
  113. package/src/media/index.ts +114 -0
  114. package/src/media/types.ts +233 -0
  115. package/src/media/zhipu-parser-package.ts +149 -0
  116. package/src/media/zhipu.adapter.ts +510 -0
  117. package/src/provider-client.ts +268 -1
  118. package/src/types.ts +23 -2
  119. package/src/web-search/deepseek.adapter.ts +149 -0
  120. package/src/web-search/http.ts +108 -0
  121. package/src/web-search/index.ts +70 -0
  122. package/src/web-search/minimax.adapter.ts +148 -0
  123. package/src/web-search/moonshotai.adapter.ts +228 -0
  124. package/src/web-search/types.ts +172 -0
  125. package/src/web-search/zhipu.adapter.ts +184 -0
@@ -1 +1 @@
1
- {"version":3,"file":"provider-client.js","sourceRoot":"","sources":["../src/provider-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,WAAW,EACX,SAAS,GAKV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAwB,UAAU,EAAE,MAAM,YAAY,CAAC;AAmB9D;;;GAGG;AACH,MAAM,OAAO,cAAc;IAYI;IAXZ,MAAM,CAAS;IACf,IAAI,CAAc;IAClB,KAAK,CAAS;IACd,SAAS,CAAS;IAC3B,MAAM,GAIH,IAAI,CAAC;IACR,QAAQ,GAAoC,IAAI,CAAC;IAEzD,YAA6B,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;QACzD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;IAC/C,CAAC;IAED,8BAA8B;IAC9B,OAAO;QACL,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACnE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,6BAA6B;IAC7B,iBAAiB;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,GAAa,EACb,UAA0B,EAAE;QAE5B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,WAAW,CAAC;YACjB,GAAG;YACH,MAAM;YACN,KAAK;YACL,+CAA+C;YAC/C,MAAM,EAAE,qBAAqB;YAC7B,QAAQ,EAAE,YAAY,CAAC,EAAE,CACvB,iBAAiB,CAAC;gBAChB,SAAS,EAAE,IAAI,CAAC,MAAM;gBACtB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,QAAQ;gBACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,YAAY;gBACZ,KAAK,EAAE,IAAI,CAAC,IAAI;aACjB,CAAC;YACJ,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAa;QAChC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAChD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAC3B,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,OAAO,GAA2B;YACtC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACtC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACnE,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,aAAa,EAAE;gBACjD,OAAO;gBACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,mBAAmB,CAC3B,SAAS,EACT,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAClF,IAAI,EACJ,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"provider-client.js","sourceRoot":"","sources":["../src/provider-client.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -5,11 +5,20 @@
5
5
  /** 线协议(wire 上的请求 / 响应格式)。 */
6
6
  export declare const LLM_PROTOCOLS: readonly ["openai-chat-completions", "openai-responses", "anthropic-messages", "google-generate-content", "google-interactions"];
7
7
  export type LlmProtocol = (typeof LLM_PROTOCOLS)[number];
8
+ /**
9
+ * 端点协议:LLM 线协议;非 LLM 厂商(媒体、数据接口)唯一的 `http`;LLM 厂商的联网搜索 / 读网页 `web-search`
10
+ * (可以与对话端点不同域,如 MiniMax);LLM 厂商借同一把 key 的媒体解析 `media`(智谱)。模型只声明 LLM 协议。
11
+ */
12
+ export declare const ENDPOINT_PROTOCOLS: readonly ["openai-chat-completions", "openai-responses", "anthropic-messages", "google-generate-content", "google-interactions", "http", "web-search", "media"];
13
+ export type EndpointProtocol = (typeof ENDPOINT_PROTOCOLS)[number];
14
+ /** 厂商类别:只有 `llm` 有模型与适配器;其余的只经中心透传(适配器在各 APP)。 */
15
+ export declare const VENDOR_CATEGORIES: readonly ["llm", "media", "data"];
16
+ export type VendorCategory = (typeof VENDOR_CATEGORIES)[number];
8
17
  /** 模型能力(目录元数据:发不发图片 / 开不开推理由调用方据此决定)。 */
9
18
  export declare const LLM_CAPABILITIES: readonly ["vision", "video", "reasoning"];
10
19
  export type LlmCapability = (typeof LLM_CAPABILITIES)[number];
11
- /** 厂商类型。一种类型对应一个适配器(`VENDOR_ADAPTERS`)。 */
12
- export declare const VENDOR_KINDS: readonly ["openai", "generic", "deepseek", "moonshotai", "alibaba", "zhipu", "volcengine", "minimax", "dots", "google"];
20
+ /** 厂商类型。`llm` 类别的每一种对应一个适配器(`VENDOR_ADAPTERS`);bibigpt / justone 没有。 */
21
+ export declare const VENDOR_KINDS: readonly ["openai", "generic", "deepseek", "moonshotai", "alibaba", "zhipu", "volcengine", "minimax", "dots", "google", "bibigpt", "justone"];
13
22
  export type VendorKind = (typeof VENDOR_KINDS)[number];
14
23
  /**
15
24
  * 推理档位——**我们自己的抽象**,不是任何一家的原生枚举,各家适配器的 `reasoning()` 把它翻译成自己的形状:
@@ -39,11 +48,13 @@ export interface CatalogVendor {
39
48
  slug: string;
40
49
  name: string;
41
50
  kind: VendorKind;
51
+ /** 非 `llm` 的厂商没有模型,接入方只拿它的端点经中心透传。 */
52
+ category: VendorCategory;
42
53
  endpoints: CatalogEndpoint[];
43
54
  models: CatalogModel[];
44
55
  }
45
56
  export interface CatalogEndpoint {
46
- protocol: LlmProtocol;
57
+ protocol: EndpointProtocol;
47
58
  baseUrl: string;
48
59
  }
49
60
  export interface CatalogModel {
@@ -58,7 +69,7 @@ export interface CatalogModel {
58
69
  pricing: ModelPricing | null;
59
70
  }
60
71
  /** 中心的错误码(响应体 `{ code, message }`)。 */
61
- export declare const CENTER_ERROR_CODES: readonly ["unauthorized", "forbidden", "tenant_disabled", "not_found", "invalid_request", "conflict", "unprocessable", "upstream_error", "admin_unavailable", "vendor_not_allowed", "no_credential", "pinned_credential_unavailable"];
72
+ export declare const CENTER_ERROR_CODES: readonly ["unauthorized", "forbidden", "tenant_disabled", "not_found", "invalid_request", "conflict", "unprocessable", "upstream_error", "admin_unavailable", "vendor_not_allowed", "no_credential", "pinned_credential_unavailable", "payload_too_large"];
62
73
  export type CenterErrorCode = (typeof CENTER_ERROR_CODES)[number];
63
74
  /** 中心的请求头 / 响应头。 */
64
75
  export declare const PC_HEADERS: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6BAA6B;AAC7B,eAAO,MAAM,aAAa,kIAMhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,2CAA4C,CAAC;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,2CAA2C;AAC3C,eAAO,MAAM,YAAY,yHAWf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,6DAOpB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,sCAAsC;IACtC,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9B;AAED,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,uOAarB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,oBAAoB;AACpB,eAAO,MAAM,UAAU;IACrB,2BAA2B;;IAE3B,mCAAmC;;IAEnC,sDAAsD;;IAEtD,+BAA+B;;IAE/B,sBAAsB;;CAEd,CAAC;AAEX,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,cAAc,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6BAA6B;AAC7B,eAAO,MAAM,aAAa,kIAMhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iKAKrB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,mCAAoC,CAAC;AACnE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,2CAA4C,CAAC;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,wEAAwE;AACxE,eAAO,MAAM,YAAY,+IAaf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,6DAOpB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,sCAAsC;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,sCAAsC;IACtC,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9B;AAED,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,4PAcrB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,oBAAoB;AACpB,eAAO,MAAM,UAAU;IACrB,2BAA2B;;IAE3B,mCAAmC;;IAEnC,sDAAsD;;IAEtD,+BAA+B;;IAE/B,sBAAsB;;CAEd,CAAC;AAEX,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,cAAc,CAAC"}
package/dist/types.js CHANGED
@@ -10,9 +10,21 @@ export const LLM_PROTOCOLS = [
10
10
  'google-generate-content',
11
11
  'google-interactions',
12
12
  ];
13
+ /**
14
+ * 端点协议:LLM 线协议;非 LLM 厂商(媒体、数据接口)唯一的 `http`;LLM 厂商的联网搜索 / 读网页 `web-search`
15
+ * (可以与对话端点不同域,如 MiniMax);LLM 厂商借同一把 key 的媒体解析 `media`(智谱)。模型只声明 LLM 协议。
16
+ */
17
+ export const ENDPOINT_PROTOCOLS = [
18
+ ...LLM_PROTOCOLS,
19
+ 'http',
20
+ 'web-search',
21
+ 'media',
22
+ ];
23
+ /** 厂商类别:只有 `llm` 有模型与适配器;其余的只经中心透传(适配器在各 APP)。 */
24
+ export const VENDOR_CATEGORIES = ['llm', 'media', 'data'];
13
25
  /** 模型能力(目录元数据:发不发图片 / 开不开推理由调用方据此决定)。 */
14
26
  export const LLM_CAPABILITIES = ['vision', 'video', 'reasoning'];
15
- /** 厂商类型。一种类型对应一个适配器(`VENDOR_ADAPTERS`)。 */
27
+ /** 厂商类型。`llm` 类别的每一种对应一个适配器(`VENDOR_ADAPTERS`);bibigpt / justone 没有。 */
16
28
  export const VENDOR_KINDS = [
17
29
  'openai',
18
30
  'generic',
@@ -24,6 +36,8 @@ export const VENDOR_KINDS = [
24
36
  'minimax',
25
37
  'dots',
26
38
  'google',
39
+ 'bibigpt',
40
+ 'justone',
27
41
  ];
28
42
  /**
29
43
  * 推理档位——**我们自己的抽象**,不是任何一家的原生枚举,各家适配器的 `reasoning()` 把它翻译成自己的形状:
@@ -56,6 +70,7 @@ export const CENTER_ERROR_CODES = [
56
70
  'vendor_not_allowed',
57
71
  'no_credential',
58
72
  'pinned_credential_unavailable',
73
+ 'payload_too_large',
59
74
  ];
60
75
  /** 中心的请求头 / 响应头。 */
61
76
  export const PC_HEADERS = {
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,yBAAyB;IACzB,kBAAkB;IAClB,oBAAoB;IACpB,yBAAyB;IACzB,qBAAqB;CACb,CAAC;AAGX,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAU,CAAC;AAG1E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,SAAS;IACT,UAAU;IACV,YAAY;IACZ,SAAS;IACT,OAAO;IACP,YAAY;IACZ,SAAS;IACT,MAAM;IACN,QAAQ;CACA,CAAC;AAGX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;CACG,CAAC;AA2CX,uCAAuC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,+BAA+B;CACvB,CAAC;AAGX,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,2BAA2B;IAC3B,GAAG,EAAE,UAAU;IACf,mCAAmC;IACnC,QAAQ,EAAE,eAAe;IACzB,sDAAsD;IACtD,GAAG,EAAE,UAAU;IACf,+BAA+B;IAC/B,UAAU,EAAE,iBAAiB;IAC7B,sBAAsB;IACtB,QAAQ,EAAE,eAAe;CACjB,CAAC;AAEX,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,yBAAyB;IACzB,kBAAkB;IAClB,oBAAoB;IACpB,yBAAyB;IACzB,qBAAqB;CACb,CAAC;AAGX;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,aAAa;IAChB,MAAM;IACN,YAAY;IACZ,OAAO;CACC,CAAC;AAGX,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAGnE,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAU,CAAC;AAG1E,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,SAAS;IACT,UAAU;IACV,YAAY;IACZ,SAAS;IACT,OAAO;IACP,YAAY;IACZ,SAAS;IACT,MAAM;IACN,QAAQ;IACR,SAAS;IACT,SAAS;CACD,CAAC;AAGX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;CACG,CAAC;AA6CX,uCAAuC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,+BAA+B;IAC/B,mBAAmB;CACX,CAAC;AAGX,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,2BAA2B;IAC3B,GAAG,EAAE,UAAU;IACf,mCAAmC;IACnC,QAAQ,EAAE,eAAe;IACzB,sDAAsD;IACtD,GAAG,EAAE,UAAU;IACf,+BAA+B;IAC/B,UAAU,EAAE,iBAAiB;IAC7B,sBAAsB;IACtB,QAAQ,EAAE,eAAe;CACjB,CAAC;AAEX,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type WebPageOutcome, type WebSearchAdapter, type WebSearchConnection, type WebSearchInput, type WebSearchOutcome, type WebSearchSettings, type WebSearchTraits } from './types.js';
2
+ type Settings = WebSearchSettings<'deepseek'>;
3
+ /**
4
+ * DeepSeek 没有单独的时间 / 域名过滤字段,靠查询里的操作符(`after:` / `site:`),
5
+ * 所以这两项拼进 `query`。查询上限 128 字符(含操作符),工具层的 70 字留足了余量。
6
+ */
7
+ export declare class DeepseekWebSearchAdapter implements WebSearchAdapter<'deepseek'> {
8
+ private readonly now;
9
+ readonly kind: "deepseek";
10
+ constructor(now?: () => Date);
11
+ traits(): WebSearchTraits;
12
+ search(conn: WebSearchConnection, _settings: Settings, input: WebSearchInput, signal: AbortSignal): Promise<WebSearchOutcome>;
13
+ readPage(conn: WebSearchConnection, _settings: Settings, input: {
14
+ url: string;
15
+ }, signal: AbortSignal): Promise<WebPageOutcome>;
16
+ private post;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=deepseek.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek.adapter.d.ts","sourceRoot":"","sources":["../../src/web-search/deepseek.adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AA8BpB,KAAK,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAE9C;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB,CAAC,UAAU,CAAC;IAG/D,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;gBAEP,GAAG,GAAE,MAAM,IAAuB;IAE/D,MAAM,IAAI,eAAe;IAInB,MAAM,CACV,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAyBtB,QAAQ,CACZ,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,cAAc,CAAC;YAkBZ,IAAI;CA8BnB"}
@@ -0,0 +1,82 @@
1
+ import { clip, joinUrl, parseErrorBody, parseJson, postJson } from './http.js';
2
+ import { recencySince, WebSearchUpstreamError, } from './types.js';
3
+ /**
4
+ * DeepSeek Search / Fetch API(2026-10-17 上线,<https://api-docs.deepseek.com/guides/search>)。
5
+ * 与对话 API 同一把 Bearer key;`web-search` 端点的根是 `https://api.deepseek.com/v1/tools`,下挂 `/search`、`/fetch`。
6
+ */
7
+ const TRAITS = {
8
+ readsPages: true,
9
+ maxResults: null,
10
+ filters: ['recency', 'domain'],
11
+ linksOftenMissing: false,
12
+ pageImagesArePlaceholders: false,
13
+ };
14
+ /**
15
+ * DeepSeek 没有单独的时间 / 域名过滤字段,靠查询里的操作符(`after:` / `site:`),
16
+ * 所以这两项拼进 `query`。查询上限 128 字符(含操作符),工具层的 70 字留足了余量。
17
+ */
18
+ export class DeepseekWebSearchAdapter {
19
+ now;
20
+ kind = 'deepseek';
21
+ constructor(now = () => new Date()) {
22
+ this.now = now;
23
+ }
24
+ traits() {
25
+ return TRAITS;
26
+ }
27
+ async search(conn, _settings, input, signal) {
28
+ const query = [
29
+ input.query,
30
+ input.domain ? `site:${input.domain}` : null,
31
+ input.recency ? `after:${recencySince(input.recency, this.now())}` : null,
32
+ ]
33
+ .filter(Boolean)
34
+ .join(' ');
35
+ const data = await this.post('search', conn, { query, ...(input.count !== undefined ? { count: input.count } : {}) }, signal);
36
+ const items = (data.results ?? []).map(r => ({
37
+ title: r.title ?? '',
38
+ link: r.url ?? '',
39
+ // summary 是给模型看的长摘要(600–800 字),snippet 是给界面的短摘要。
40
+ content: r.summary || r.snippet || '',
41
+ media: r.site_name || null,
42
+ publishDate: r.date || null,
43
+ }));
44
+ return { engine: 'deepseek', items };
45
+ }
46
+ async readPage(conn, _settings, input, signal) {
47
+ const data = await this.post('fetch', conn, { url: input.url }, signal);
48
+ if (typeof data.content !== 'string') {
49
+ throw new WebSearchUpstreamError('deepseek fetch 响应缺少 content');
50
+ }
51
+ return {
52
+ url: input.url,
53
+ title: data.title || null,
54
+ description: null,
55
+ content: data.content,
56
+ };
57
+ }
58
+ async post(path, conn, body, signal) {
59
+ const label = `deepseek ${path}`;
60
+ const res = await postJson(label, joinUrl(conn.baseUrl, path), conn, body, signal);
61
+ if (!res.ok) {
62
+ const parsed = parseErrorBody(res.text);
63
+ const detail = parsed.message ?? clip(res.text);
64
+ const hint = STATUS_HINTS[res.status];
65
+ throw new WebSearchUpstreamError(`${label} ${res.status}${hint ? `(${hint})` : ''}${detail ? `: ${detail}` : ''}`, {
66
+ code: parsed.code,
67
+ // 文档:408 / 429 / 5xx 等一等再试,其余 4xx 不改请求重试也没用。
68
+ retryable: res.status >= 500 || res.status === 429 || res.status === 408,
69
+ });
70
+ }
71
+ return parseJson(label, res.text);
72
+ }
73
+ }
74
+ /** 文档里有确定含义的状态码,带进错误文案让模型 / 运营不必去查。 */
75
+ const STATUS_HINTS = {
76
+ 401: 'API key 无效',
77
+ 402: '账户余额不足,需要充值',
78
+ 403: '网页被 DeepSeek 的安全策略拒绝',
79
+ 404: '取不到这个网页的可用内容:链接失效、站点拦截或不是可提取的网页',
80
+ 429: '超过 QPS 上限',
81
+ };
82
+ //# sourceMappingURL=deepseek.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek.adapter.js","sourceRoot":"","sources":["../../src/web-search/deepseek.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type WebSearchConnection } from './types.js';
2
+ /**
3
+ * POST 一段 JSON,返回状态码与响应正文。只处理「请求没发出去」与「中心自己报的错」:
4
+ * - 中止原样抛(那是调用方超时或用户点了停止,不是上游故障,重试是错的);网络错误转成可重试的上游错误。
5
+ * - 中心自己的错误体(`{ code, message }` 且没有 `x-pc-credential` 头,判据同 `toProviderClientError`):
6
+ * `upstream_error`(中心连不上厂商)当可重试的上游错误,其余(没有可用 key、不许用这家……)是配置问题,
7
+ * 抛 `ProviderClientError`。
8
+ * 厂商的状态码与响应体怎么解释是各适配器的事。
9
+ */
10
+ export declare function postJson(label: string, url: string, { apiKey, fetch }: WebSearchConnection, body: Record<string, unknown>, signal: AbortSignal): Promise<{
11
+ status: number;
12
+ ok: boolean;
13
+ text: string;
14
+ }>;
15
+ /** 解析 JSON 响应体;不成形就是上游失败。 */
16
+ export declare function parseJson<T>(label: string, text: string): T;
17
+ /** OpenAI 形状的错误体 `{error: {code, message}}`;其余形状当没有。 */
18
+ export declare function parseErrorBody(text: string): {
19
+ code: string | undefined;
20
+ message: string | undefined;
21
+ };
22
+ /** 错误码有时是字符串有时是数字,统一成字符串;其余形状当没有。 */
23
+ export declare function codeOf(value: unknown): string | undefined;
24
+ /** 错误详情别整段回灌(HTML 错误页可能几十 KB)。 */
25
+ export declare function clip(text: string): string;
26
+ /** 端点根 + 子路径(根上多余的 `/` 去掉)。 */
27
+ export declare function joinUrl(baseUrl: string, path: string): string;
28
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/web-search/http.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,MAAM,YAAY,CAAC;AAE9E;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,mBAAmB,EACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCxD;AAUD,6BAA6B;AAC7B,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAM3D;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAC5C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAeA;AAED,qCAAqC;AACrC,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIzD;AAED,kCAAkC;AAClC,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGzC;AAED,+BAA+B;AAC/B,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,95 @@
1
+ import { parseCenterError, ProviderClientError } from '../errors.js';
2
+ import { PC_HEADERS } from '../types.js';
3
+ import { WebSearchUpstreamError } from './types.js';
4
+ /**
5
+ * POST 一段 JSON,返回状态码与响应正文。只处理「请求没发出去」与「中心自己报的错」:
6
+ * - 中止原样抛(那是调用方超时或用户点了停止,不是上游故障,重试是错的);网络错误转成可重试的上游错误。
7
+ * - 中心自己的错误体(`{ code, message }` 且没有 `x-pc-credential` 头,判据同 `toProviderClientError`):
8
+ * `upstream_error`(中心连不上厂商)当可重试的上游错误,其余(没有可用 key、不许用这家……)是配置问题,
9
+ * 抛 `ProviderClientError`。
10
+ * 厂商的状态码与响应体怎么解释是各适配器的事。
11
+ */
12
+ export async function postJson(label, url, { apiKey, fetch }, body, signal) {
13
+ let res;
14
+ try {
15
+ res = await fetch(url, {
16
+ method: 'POST',
17
+ headers: {
18
+ ...(apiKey ? { authorization: `Bearer ${apiKey}` } : {}),
19
+ 'content-type': 'application/json',
20
+ },
21
+ body: JSON.stringify(body),
22
+ signal,
23
+ });
24
+ }
25
+ catch (err) {
26
+ if (signal.aborted)
27
+ throw err;
28
+ const reason = err instanceof Error ? err.message : String(err);
29
+ throw new WebSearchUpstreamError(`${label} 请求失败:${reason}`, {
30
+ retryable: true,
31
+ });
32
+ }
33
+ const text = await res.text();
34
+ if (!res.ok && !res.headers.has(PC_HEADERS.credential)) {
35
+ const center = centerErrorOf(text);
36
+ if (center?.code === 'upstream_error') {
37
+ throw new WebSearchUpstreamError(`${label} 请求失败:${center.message}`, {
38
+ code: center.code,
39
+ retryable: true,
40
+ });
41
+ }
42
+ if (center) {
43
+ throw new ProviderClientError(center.code, center.message, res.status);
44
+ }
45
+ }
46
+ return { status: res.status, ok: res.ok, text };
47
+ }
48
+ function centerErrorOf(text) {
49
+ try {
50
+ return parseCenterError(JSON.parse(text));
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ }
56
+ /** 解析 JSON 响应体;不成形就是上游失败。 */
57
+ export function parseJson(label, text) {
58
+ try {
59
+ return JSON.parse(text);
60
+ }
61
+ catch {
62
+ throw new WebSearchUpstreamError(`${label} 返回了无法解析的响应体`);
63
+ }
64
+ }
65
+ /** OpenAI 形状的错误体 `{error: {code, message}}`;其余形状当没有。 */
66
+ export function parseErrorBody(text) {
67
+ try {
68
+ const body = JSON.parse(text);
69
+ return {
70
+ code: codeOf(body.error?.code),
71
+ message: typeof body.error?.message === 'string'
72
+ ? body.error.message
73
+ : undefined,
74
+ };
75
+ }
76
+ catch {
77
+ return { code: undefined, message: undefined };
78
+ }
79
+ }
80
+ /** 错误码有时是字符串有时是数字,统一成字符串;其余形状当没有。 */
81
+ export function codeOf(value) {
82
+ return typeof value === 'string' || typeof value === 'number'
83
+ ? String(value)
84
+ : undefined;
85
+ }
86
+ /** 错误详情别整段回灌(HTML 错误页可能几十 KB)。 */
87
+ export function clip(text) {
88
+ const flat = text.replace(/\s+/g, ' ').trim();
89
+ return flat.length > 300 ? `${flat.slice(0, 300)}…` : flat;
90
+ }
91
+ /** 端点根 + 子路径(根上多余的 `/` 去掉)。 */
92
+ export function joinUrl(baseUrl, path) {
93
+ return `${baseUrl.replace(/\/+$/, '')}/${path}`;
94
+ }
95
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/web-search/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { WebPageOutcome, WebSearchAdapter, WebSearchConnection, WebSearchInput, WebSearchKind, WebSearchOutcome, WebSearchSettings, WebSearchTraits } from './types.js';
2
+ /** kind → 适配器。映射类型保证每个 kind 都有、且设置类型对得上;加一家漏了这里编译报错。 */
3
+ export declare const WEB_SEARCH_ADAPTERS: {
4
+ readonly [K in WebSearchKind]: WebSearchAdapter<K>;
5
+ };
6
+ export declare function isWebSearchKind(kind: string): kind is WebSearchKind;
7
+ /** 一家联网服务,连接与设置都已绑好。`readPage` 只在 `traits.readsPages` 时存在。 */
8
+ export interface WebSearch {
9
+ readonly kind: WebSearchKind;
10
+ readonly traits: WebSearchTraits;
11
+ search(input: WebSearchInput, signal: AbortSignal): Promise<WebSearchOutcome>;
12
+ readPage?(input: {
13
+ url: string;
14
+ }, signal: AbortSignal): Promise<WebPageOutcome>;
15
+ }
16
+ export interface CreateWebSearchInput<K extends WebSearchKind> {
17
+ kind: K;
18
+ connection: WebSearchConnection;
19
+ settings?: WebSearchSettings<K>;
20
+ }
21
+ /**
22
+ * 绑好连接与设置的联网服务。中心模式用 `ProviderClient.webSearch`;这里是直连(本地开发、测试)与中心模式共用的底层:
23
+ * 直连时 `connection` 给厂商的 `web-search` 根地址 + `apiKey`。
24
+ */
25
+ export declare function createWebSearch<K extends WebSearchKind>(input: CreateWebSearchInput<K>): WebSearch;
26
+ export * from './types.js';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web-search/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,EAAE;IAChC,QAAQ,EAAE,CAAC,IAAI,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC;CAMnD,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAEnE;AAED,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9E,QAAQ,CAAC,CACP,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,aAAa;IAC3D,IAAI,EAAE,CAAC,CAAC;IACR,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,aAAa,EACrD,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC7B,SAAS,CAeX;AAED,cAAc,YAAY,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { DeepseekWebSearchAdapter } from './deepseek.adapter.js';
2
+ import { MinimaxWebSearchAdapter } from './minimax.adapter.js';
3
+ import { MoonshotaiWebSearchAdapter } from './moonshotai.adapter.js';
4
+ import { ZhipuWebSearchAdapter } from './zhipu.adapter.js';
5
+ /** kind → 适配器。映射类型保证每个 kind 都有、且设置类型对得上;加一家漏了这里编译报错。 */
6
+ export const WEB_SEARCH_ADAPTERS = {
7
+ deepseek: new DeepseekWebSearchAdapter(),
8
+ moonshotai: new MoonshotaiWebSearchAdapter(),
9
+ minimax: new MinimaxWebSearchAdapter(),
10
+ zhipu: new ZhipuWebSearchAdapter(),
11
+ };
12
+ export function isWebSearchKind(kind) {
13
+ return Object.hasOwn(WEB_SEARCH_ADAPTERS, kind);
14
+ }
15
+ /**
16
+ * 绑好连接与设置的联网服务。中心模式用 `ProviderClient.webSearch`;这里是直连(本地开发、测试)与中心模式共用的底层:
17
+ * 直连时 `connection` 给厂商的 `web-search` 根地址 + `apiKey`。
18
+ */
19
+ export function createWebSearch(input) {
20
+ // 映射类型按 K 取出来是联合,TS 收窄不了泛型索引;kind 与 settings 由签名绑在一起。
21
+ const adapter = WEB_SEARCH_ADAPTERS[input.kind];
22
+ const settings = (input.settings ?? {});
23
+ const conn = input.connection;
24
+ const traits = adapter.traits(settings);
25
+ const readPage = adapter.readPage?.bind(adapter);
26
+ return {
27
+ kind: input.kind,
28
+ traits,
29
+ search: (q, signal) => adapter.search(conn, settings, q, signal),
30
+ ...(readPage
31
+ ? { readPage: (q, signal) => readPage(conn, settings, q, signal) }
32
+ : {}),
33
+ };
34
+ }
35
+ export * from './types.js';
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/web-search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAWrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAE5B;IACF,QAAQ,EAAE,IAAI,wBAAwB,EAAE;IACxC,UAAU,EAAE,IAAI,0BAA0B,EAAE;IAC5C,OAAO,EAAE,IAAI,uBAAuB,EAAE;IACtC,KAAK,EAAE,IAAI,qBAAqB,EAAE;CACnC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAmBD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,KAA8B;IAE9B,sDAAsD;IACtD,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC;IACvE,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAyB,CAAC;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM;QACN,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC;QAChE,GAAG,CAAC,QAAQ;YACV,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,cAAc,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type WebSearchAdapter, type WebSearchConnection, type WebSearchInput, type WebSearchOutcome, type WebSearchSettings, type WebSearchTraits } from './types.js';
2
+ type Settings = WebSearchSettings<'minimax'>;
3
+ /**
4
+ * 时间 / 域名过滤一律报回 `ignored`、不拼进查询:实测两种操作符都靠不住,拼进去只会
5
+ * 改变关键词本身。条数上游定死 10 条,`count` 在本地截。
6
+ */
7
+ export declare class MinimaxWebSearchAdapter implements WebSearchAdapter<'minimax'> {
8
+ readonly kind: "minimax";
9
+ traits(): WebSearchTraits;
10
+ search(conn: WebSearchConnection, _settings: Settings, input: WebSearchInput, signal: AbortSignal): Promise<WebSearchOutcome>;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=minimax.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimax.adapter.d.ts","sourceRoot":"","sources":["../../src/web-search/minimax.adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAExB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AA2BpB,KAAK,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAK7C;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB,CAAC,SAAS,CAAC;IACzE,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAEnC,MAAM,IAAI,eAAe;IAUnB,MAAM,CACV,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,gBAAgB,CAAC;CAgC7B"}
@@ -0,0 +1,82 @@
1
+ import { clip, codeOf, joinUrl, parseJson, postJson } from './http.js';
2
+ import { WebSearchUpstreamError, } from './types.js';
3
+ /** 上游定死的条数(实测没有条数参数)。 */
4
+ const UPSTREAM_COUNT = 10;
5
+ /**
6
+ * 时间 / 域名过滤一律报回 `ignored`、不拼进查询:实测两种操作符都靠不住,拼进去只会
7
+ * 改变关键词本身。条数上游定死 10 条,`count` 在本地截。
8
+ */
9
+ export class MinimaxWebSearchAdapter {
10
+ kind = 'minimax';
11
+ traits() {
12
+ return {
13
+ readsPages: false,
14
+ maxResults: UPSTREAM_COUNT,
15
+ filters: [],
16
+ linksOftenMissing: false,
17
+ pageImagesArePlaceholders: false,
18
+ };
19
+ }
20
+ async search(conn, _settings, input, signal) {
21
+ const label = 'minimax search';
22
+ const res = await postJson(label, joinUrl(conn.baseUrl, 'search'), conn, { q: input.query }, signal);
23
+ const data = parseBody(label, res.status, res.text);
24
+ const code = data.base_resp?.status_code;
25
+ if (!res.ok || code !== 0) {
26
+ throw upstreamError(label, res.status, code, data.base_resp?.status_msg);
27
+ }
28
+ const items = (data.organic ?? []).map(r => ({
29
+ title: r.title ?? '',
30
+ link: r.link ?? '',
31
+ content: r.snippet ?? '',
32
+ media: null,
33
+ publishDate: r.date || null,
34
+ }));
35
+ const ignored = [
36
+ ...(input.recency ? ['recency'] : []),
37
+ ...(input.domain ? ['domain'] : []),
38
+ ];
39
+ return {
40
+ engine: 'minimax',
41
+ items: input.count !== undefined ? items.slice(0, input.count) : items,
42
+ ...(ignored.length ? { ignored } : {}),
43
+ };
44
+ }
45
+ }
46
+ /** 4xx / 5xx 也可能带 `base_resp`(参数错是 400 + 2013);不成形的非 2xx 当没有错误体。 */
47
+ function parseBody(label, status, text) {
48
+ if (status >= 200 && status < 300)
49
+ return parseJson(label, text);
50
+ try {
51
+ return JSON.parse(text);
52
+ }
53
+ catch {
54
+ return { base_resp: { status_msg: clip(text) } };
55
+ }
56
+ }
57
+ function upstreamError(label, status, code, msg) {
58
+ const hint = code !== undefined ? CODE_HINTS[code] : undefined;
59
+ const head = code !== undefined ? `${label} ${code}` : `${label} ${status}`;
60
+ return new WebSearchUpstreamError(`${head}${hint ? `(${hint})` : ''}${msg ? `: ${msg}` : ''}`, {
61
+ code: codeOf(code),
62
+ retryable: status >= 500 ||
63
+ status === 429 ||
64
+ (code !== undefined && RETRYABLE_CODES.has(code)),
65
+ });
66
+ }
67
+ /**
68
+ * MiniMax 通用错误码里表示「稍后再试有用」的:未知错误、超时、限流(RPM / TPM)、
69
+ * 服务内部错误。鉴权、余额、参数类改了请求或账户才有用。
70
+ */
71
+ const RETRYABLE_CODES = new Set([
72
+ 1000, 1001, 1002, 1013, 1024, 1033, 1039,
73
+ ]);
74
+ /** 实测见过、或 MiniMax 通用错误码里含义确定的,带进错误文案让模型 / 运营不必去查。 */
75
+ const CODE_HINTS = {
76
+ 1002: '超过频率上限',
77
+ 1004: 'API key 无效或没带上',
78
+ 1008: '账户余额不足,需要充值',
79
+ 2013: '请求参数不合法',
80
+ 2049: 'API key 无效,或与所选站点不匹配',
81
+ };
82
+ //# sourceMappingURL=minimax.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimax.adapter.js","sourceRoot":"","sources":["../../src/web-search/minimax.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type WebPageOutcome, type WebSearchAdapter, type WebSearchConnection, type WebSearchInput, type WebSearchOutcome, type WebSearchSettings, type WebSearchTraits } from './types.js';
2
+ type Settings = WebSearchSettings<'moonshotai'>;
3
+ /**
4
+ * 基础版没有时间 / 域名过滤字段,给了就报回 `ignored`——文档没说认 `site:` 之类的操作符,
5
+ * 拼进查询是在猜。专业版有 `sites` 与 `time_window`,两项都施加。`include_content` 不开:
6
+ * 会把每条结果的全文塞回来,体量没有上限。
7
+ */
8
+ export declare class MoonshotaiWebSearchAdapter implements WebSearchAdapter<'moonshotai'> {
9
+ private readonly now;
10
+ readonly kind: "moonshotai";
11
+ constructor(now?: () => Date);
12
+ traits(settings: Settings): WebSearchTraits;
13
+ search(conn: WebSearchConnection, settings: Settings, input: WebSearchInput, signal: AbortSignal): Promise<WebSearchOutcome>;
14
+ readPage(conn: WebSearchConnection, _settings: Settings, input: {
15
+ url: string;
16
+ }, signal: AbortSignal): Promise<WebPageOutcome>;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=moonshotai.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moonshotai.adapter.d.ts","sourceRoot":"","sources":["../../src/web-search/moonshotai.adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAExB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AAiCpB,KAAK,QAAQ,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB,CAAC,YAAY,CAAC;IAGnE,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;gBAET,GAAG,GAAE,MAAM,IAAuB;IAE/D,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe;IAWrC,MAAM,CACV,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAgDtB,QAAQ,CACZ,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,cAAc,CAAC;CA6B3B"}