@downcity/city 0.2.200 → 0.2.211

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 (221) hide show
  1. package/README.md +89 -13
  2. package/bin/client/bureau.d.ts +41 -0
  3. package/bin/client/bureau.d.ts.map +1 -0
  4. package/bin/client/bureau.js +240 -0
  5. package/bin/client/bureau.js.map +1 -0
  6. package/bin/client/city.d.ts +15 -79
  7. package/bin/client/city.d.ts.map +1 -1
  8. package/bin/client/city.js +15 -99
  9. package/bin/client/city.js.map +1 -1
  10. package/bin/client/federation-admin.d.ts +32 -0
  11. package/bin/client/federation-admin.d.ts.map +1 -0
  12. package/bin/client/federation-admin.js +54 -0
  13. package/bin/client/federation-admin.js.map +1 -0
  14. package/bin/client/types.d.ts +10 -70
  15. package/bin/client/types.d.ts.map +1 -1
  16. package/bin/client/types.js +3 -3
  17. package/bin/federation/auth/authenticator.d.ts +17 -13
  18. package/bin/federation/auth/authenticator.d.ts.map +1 -1
  19. package/bin/federation/auth/authenticator.js +38 -27
  20. package/bin/federation/auth/authenticator.js.map +1 -1
  21. package/bin/federation/auth/bureau-token-schema.d.ts +274 -0
  22. package/bin/federation/auth/bureau-token-schema.d.ts.map +1 -0
  23. package/bin/federation/auth/bureau-token-schema.js +43 -0
  24. package/bin/federation/auth/bureau-token-schema.js.map +1 -0
  25. package/bin/federation/auth/bureau-token-store.d.ts +22 -0
  26. package/bin/federation/auth/bureau-token-store.d.ts.map +1 -0
  27. package/bin/federation/auth/bureau-token-store.js +122 -0
  28. package/bin/federation/auth/bureau-token-store.js.map +1 -0
  29. package/bin/federation/auth/federation-key-store.d.ts +26 -0
  30. package/bin/federation/auth/federation-key-store.d.ts.map +1 -0
  31. package/bin/federation/auth/federation-key-store.js +96 -0
  32. package/bin/federation/auth/federation-key-store.js.map +1 -0
  33. package/bin/federation/auth/key-schema.d.ts +275 -0
  34. package/bin/federation/auth/key-schema.d.ts.map +1 -0
  35. package/bin/federation/auth/key-schema.js +44 -0
  36. package/bin/federation/auth/key-schema.js.map +1 -0
  37. package/bin/federation/auth/types.d.ts +62 -4
  38. package/bin/federation/auth/types.d.ts.map +1 -1
  39. package/bin/federation/auth/user-token-authority.d.ts +26 -0
  40. package/bin/federation/auth/user-token-authority.d.ts.map +1 -0
  41. package/bin/federation/auth/user-token-authority.js +179 -0
  42. package/bin/federation/auth/user-token-authority.js.map +1 -0
  43. package/bin/federation/federation-init.d.ts.map +1 -1
  44. package/bin/federation/federation-init.js +23 -4
  45. package/bin/federation/federation-init.js.map +1 -1
  46. package/bin/federation/federation-router.d.ts +3 -1
  47. package/bin/federation/federation-router.d.ts.map +1 -1
  48. package/bin/federation/federation-router.js +17 -0
  49. package/bin/federation/federation-router.js.map +1 -1
  50. package/bin/federation/federation-runtime.d.ts.map +1 -1
  51. package/bin/federation/federation-runtime.js +14 -2
  52. package/bin/federation/federation-runtime.js.map +1 -1
  53. package/bin/federation/federation.d.ts.map +1 -1
  54. package/bin/federation/federation.js +2 -0
  55. package/bin/federation/federation.js.map +1 -1
  56. package/bin/federation/runtime.d.ts +4 -0
  57. package/bin/federation/runtime.d.ts.map +1 -1
  58. package/bin/index.d.ts +11 -10
  59. package/bin/index.d.ts.map +1 -1
  60. package/bin/index.js +5 -3
  61. package/bin/index.js.map +1 -1
  62. package/bin/pact/admin/index.d.ts +7 -19
  63. package/bin/pact/admin/index.d.ts.map +1 -1
  64. package/bin/pact/admin/index.js +10 -18
  65. package/bin/pact/admin/index.js.map +1 -1
  66. package/bin/pact/admin/types.d.ts +4 -10
  67. package/bin/pact/admin/types.d.ts.map +1 -1
  68. package/bin/pact/invoker/ai/CityModel.d.ts +1 -1
  69. package/bin/pact/invoker/ai/CityModel.d.ts.map +1 -1
  70. package/bin/pact/invoker/ai/CityModel.js +3 -65
  71. package/bin/pact/invoker/ai/CityModel.js.map +1 -1
  72. package/bin/pact/invoker/ai/types.d.ts +1 -1
  73. package/bin/pact/invoker/ai/types.js +1 -1
  74. package/bin/pact/invoker/bureaus/index.d.ts +25 -0
  75. package/bin/pact/invoker/bureaus/index.d.ts.map +1 -0
  76. package/bin/pact/invoker/bureaus/index.js +36 -0
  77. package/bin/pact/invoker/bureaus/index.js.map +1 -0
  78. package/bin/pact/invoker/cities/types.d.ts +2 -2
  79. package/bin/pact/invoker/cities/types.d.ts.map +1 -1
  80. package/bin/pact/invoker/user/index.d.ts +19 -0
  81. package/bin/pact/invoker/user/index.d.ts.map +1 -0
  82. package/bin/pact/invoker/user/index.js +24 -0
  83. package/bin/pact/invoker/user/index.js.map +1 -0
  84. package/bin/pact/user/index.d.ts +2 -1
  85. package/bin/pact/user/index.d.ts.map +1 -1
  86. package/bin/pact/user/index.js +7 -3
  87. package/bin/pact/user/index.js.map +1 -1
  88. package/bin/pact/user/types.d.ts +11 -6
  89. package/bin/pact/user/types.d.ts.map +1 -1
  90. package/bin/service/ai/AIChannel.d.ts +57 -0
  91. package/bin/service/ai/AIChannel.d.ts.map +1 -0
  92. package/bin/service/ai/AIChannel.js +151 -0
  93. package/bin/service/ai/AIChannel.js.map +1 -0
  94. package/bin/service/ai/OpenAIChatCompletionsAdapter.d.ts +23 -0
  95. package/bin/service/ai/OpenAIChatCompletionsAdapter.d.ts.map +1 -0
  96. package/bin/service/ai/OpenAIChatCompletionsAdapter.js +503 -0
  97. package/bin/service/ai/OpenAIChatCompletionsAdapter.js.map +1 -0
  98. package/bin/service/ai/ai-service-values.d.ts +16 -19
  99. package/bin/service/ai/ai-service-values.d.ts.map +1 -1
  100. package/bin/service/ai/ai-service-values.js +9 -13
  101. package/bin/service/ai/ai-service-values.js.map +1 -1
  102. package/bin/service/ai/ai-service.d.ts +16 -15
  103. package/bin/service/ai/ai-service.d.ts.map +1 -1
  104. package/bin/service/ai/ai-service.js +97 -106
  105. package/bin/service/ai/ai-service.js.map +1 -1
  106. package/bin/service/ai/helpers.d.ts +8 -35
  107. package/bin/service/ai/helpers.d.ts.map +1 -1
  108. package/bin/service/ai/helpers.js +8 -140
  109. package/bin/service/ai/helpers.js.map +1 -1
  110. package/bin/service/ai/image-job-store.d.ts +2 -3
  111. package/bin/service/ai/image-job-store.d.ts.map +1 -1
  112. package/bin/service/ai/image-job-store.js.map +1 -1
  113. package/bin/service/ai/language-model-stream.d.ts +9 -4
  114. package/bin/service/ai/language-model-stream.d.ts.map +1 -1
  115. package/bin/service/ai/language-model-stream.js +8 -4
  116. package/bin/service/ai/language-model-stream.js.map +1 -1
  117. package/bin/service/ai/language-model-text.d.ts +15 -0
  118. package/bin/service/ai/language-model-text.d.ts.map +1 -0
  119. package/bin/service/ai/language-model-text.js +67 -0
  120. package/bin/service/ai/language-model-text.js.map +1 -0
  121. package/bin/service/ai/model-context-window.d.ts +2 -2
  122. package/bin/service/ai/model-context-window.d.ts.map +1 -1
  123. package/bin/service/ai/model-context-window.js.map +1 -1
  124. package/bin/service/ai/model-registry.d.ts +9 -8
  125. package/bin/service/ai/model-registry.d.ts.map +1 -1
  126. package/bin/service/ai/model-registry.js +1 -5
  127. package/bin/service/ai/model-registry.js.map +1 -1
  128. package/bin/service/ai/model-routing.d.ts +1 -1
  129. package/bin/service/ai/model-routing.d.ts.map +1 -1
  130. package/bin/service/ai/model-routing.js +1 -1
  131. package/bin/service/ai/model-routing.js.map +1 -1
  132. package/bin/service/ai/reasoning.d.ts +4 -4
  133. package/bin/service/ai/reasoning.d.ts.map +1 -1
  134. package/bin/service/ai/reasoning.js.map +1 -1
  135. package/bin/service/bureaus/bureaus-service.d.ts +15 -0
  136. package/bin/service/bureaus/bureaus-service.d.ts.map +1 -0
  137. package/bin/service/bureaus/bureaus-service.js +55 -0
  138. package/bin/service/bureaus/bureaus-service.js.map +1 -0
  139. package/bin/service/installable-service.d.ts +5 -2
  140. package/bin/service/installable-service.d.ts.map +1 -1
  141. package/bin/service/installable-service.js +1 -0
  142. package/bin/service/installable-service.js.map +1 -1
  143. package/bin/service/instruction.js +1 -1
  144. package/bin/service/instruction.js.map +1 -1
  145. package/bin/service/service.d.ts +15 -2
  146. package/bin/service/service.d.ts.map +1 -1
  147. package/bin/service/service.js +2 -0
  148. package/bin/service/service.js.map +1 -1
  149. package/bin/types/AI.d.ts +289 -0
  150. package/bin/types/AI.d.ts.map +1 -0
  151. package/bin/types/AI.js +8 -0
  152. package/bin/types/AI.js.map +1 -0
  153. package/bin/types/AITransport.d.ts +251 -0
  154. package/bin/types/AITransport.d.ts.map +1 -0
  155. package/bin/types/AITransport.js +12 -0
  156. package/bin/types/AITransport.js.map +1 -0
  157. package/bin/types/Bureau.d.ts +96 -0
  158. package/bin/types/Bureau.d.ts.map +1 -0
  159. package/bin/types/Bureau.js +8 -0
  160. package/bin/types/Bureau.js.map +1 -0
  161. package/bin/types/FederationAdmin.d.ts +16 -0
  162. package/bin/types/FederationAdmin.d.ts.map +1 -0
  163. package/bin/types/FederationAdmin.js +7 -0
  164. package/bin/types/FederationAdmin.js.map +1 -0
  165. package/bin/types/Metering.d.ts +2 -2
  166. package/bin/types/Metering.d.ts.map +1 -1
  167. package/bin/types/User.d.ts +24 -0
  168. package/bin/types/User.d.ts.map +1 -0
  169. package/bin/types/User.js +8 -0
  170. package/bin/types/User.js.map +1 -0
  171. package/bin/utils/CityLanguageModelCodec.d.ts +1 -1
  172. package/bin/utils/CityLanguageModelCodec.d.ts.map +1 -1
  173. package/bin/utils/CityLanguageModelResult.d.ts +11 -0
  174. package/bin/utils/CityLanguageModelResult.d.ts.map +1 -0
  175. package/bin/utils/CityLanguageModelResult.js +76 -0
  176. package/bin/utils/CityLanguageModelResult.js.map +1 -0
  177. package/package.json +4 -3
  178. package/bin/federation/auth/token-signer.d.ts +0 -27
  179. package/bin/federation/auth/token-signer.d.ts.map +0 -1
  180. package/bin/federation/auth/token-signer.js +0 -116
  181. package/bin/federation/auth/token-signer.js.map +0 -1
  182. package/bin/service/ai/charge.d.ts +0 -76
  183. package/bin/service/ai/charge.d.ts.map +0 -1
  184. package/bin/service/ai/charge.js +0 -10
  185. package/bin/service/ai/charge.js.map +0 -1
  186. package/bin/service/ai/job-types.d.ts +0 -69
  187. package/bin/service/ai/job-types.d.ts.map +0 -1
  188. package/bin/service/ai/job-types.js +0 -9
  189. package/bin/service/ai/job-types.js.map +0 -1
  190. package/bin/service/ai/provider.d.ts +0 -143
  191. package/bin/service/ai/provider.d.ts.map +0 -1
  192. package/bin/service/ai/provider.js +0 -221
  193. package/bin/service/ai/provider.js.map +0 -1
  194. package/bin/service/ai/types.d.ts +0 -174
  195. package/bin/service/ai/types.d.ts.map +0 -1
  196. package/bin/service/ai/types.js +0 -7
  197. package/bin/service/ai/types.js.map +0 -1
  198. package/bin/types/AIImageJobClaim.d.ts +0 -14
  199. package/bin/types/AIImageJobClaim.d.ts.map +0 -1
  200. package/bin/types/AIImageJobClaim.js +0 -7
  201. package/bin/types/AIImageJobClaim.js.map +0 -1
  202. package/bin/types/AIReasoning.d.ts +0 -25
  203. package/bin/types/AIReasoning.d.ts.map +0 -1
  204. package/bin/types/AIReasoning.js +0 -7
  205. package/bin/types/AIReasoning.js.map +0 -1
  206. package/bin/types/AIRouting.d.ts +0 -37
  207. package/bin/types/AIRouting.d.ts.map +0 -1
  208. package/bin/types/AIRouting.js +0 -7
  209. package/bin/types/AIRouting.js.map +0 -1
  210. package/bin/types/CityLanguageModelRuntime.d.ts +0 -46
  211. package/bin/types/CityLanguageModelRuntime.d.ts.map +0 -1
  212. package/bin/types/CityLanguageModelRuntime.js +0 -8
  213. package/bin/types/CityLanguageModelRuntime.js.map +0 -1
  214. package/bin/types/CityLanguageModelTransport.d.ts +0 -49
  215. package/bin/types/CityLanguageModelTransport.d.ts.map +0 -1
  216. package/bin/types/CityLanguageModelTransport.js +0 -9
  217. package/bin/types/CityLanguageModelTransport.js.map +0 -1
  218. package/bin/types/CityModelRuntime.d.ts +0 -17
  219. package/bin/types/CityModelRuntime.d.ts.map +0 -1
  220. package/bin/types/CityModelRuntime.js +0 -8
  221. package/bin/types/CityModelRuntime.js.map +0 -1
@@ -24,7 +24,8 @@ import { resolve_text_routing_plan } from "./model-routing.js";
24
24
  import { claim_image_job, finish_image_job_fetch, release_image_job_claim, } from "./image-job-store.js";
25
25
  import { settle_response_charge } from "./charge-runtime.js";
26
26
  import { create_city_language_model_stream, decode_city_language_model_request, prepare_city_language_model_call, } from "./language-model-stream.js";
27
- import { countImageOutputs, extractUsage, imageActionError, isImageProviderCreateResult, isImageProviderResult, isPromiseLike, isProviderChargedOutput, isProviderChargedResponse, isResponse, isStorableRemoteFilePart, normalizePositiveNumber, normalizeUsage, parseImageMessage, parseRecordJson, readFilePartFilename, readFilePartMediaType, readOptionalNumber, readOptionalString, rowToAsyncJobRecord, } from "./ai-service-values.js";
27
+ import { create_openai_chat_completion_response, openai_chat_request_to_language_model_call, } from "./OpenAIChatCompletionsAdapter.js";
28
+ import { countImageOutputs, extractUsage, imageActionError, isImageChannelCreateResult, isImageChannelResult, isPromiseLike, isChannelChargedOutput, isResponse, isStorableRemoteFilePart, normalizePositiveNumber, normalizeUsage, parseImageMessage, parseRecordJson, readFilePartFilename, readFilePartMediaType, readOptionalNumber, readOptionalString, rowToAsyncJobRecord, } from "./ai-service-values.js";
28
29
  /** AIService 直接暴露的 action 模态列表。模型流与图片任务使用独立 handler。 */
29
30
  const MODALITIES = ["text", "video", "tts", "asr"];
30
31
  /** 用户侧默认以 text 模态排序模型 */
@@ -41,7 +42,7 @@ const IMAGE_FETCH_ACTION = "image/fetch";
41
42
  const DEFAULT_IMAGE_MAX_PENDING_DURATION_MS = 2 * 60 * 60 * 1000;
42
43
  /** 图片任务 pending 超时错误。 */
43
44
  const IMAGE_PENDING_TIMEOUT_ERROR = "upstream timeout";
44
- /** 判断 Provider runtime 是否返回了标准模型流结果。 */
45
+ /** 判断 AIChannel runtime 是否返回了标准模型流结果。 */
45
46
  function is_language_model_stream_result(value) {
46
47
  if (!value || typeof value !== "object")
47
48
  return false;
@@ -108,7 +109,6 @@ export class AIService extends Service {
108
109
  // ========== 模型匹配 ==========
109
110
  resolve(query, env) {
110
111
  const { model: modelId, mode } = query;
111
- const isOpenAIMode = mode === "openai";
112
112
  if (!modelId)
113
113
  throw httpError(422, "model is required");
114
114
  const model = this.models.get(modelId);
@@ -117,7 +117,7 @@ export class AIService extends Service {
117
117
  if (env && this.models.get_missing_env(model, env).length > 0) {
118
118
  throw httpError(422, `No available model: ${modelId}`);
119
119
  }
120
- const action = isOpenAIMode ? this.resolveOpenAIAction(model) : this.getAction(model, mode);
120
+ const action = this.getAction(model, mode);
121
121
  if (!action)
122
122
  throw httpError(422, `Model ${modelId} does not support mode: ${mode ?? "text"}`);
123
123
  return { model, action };
@@ -128,77 +128,35 @@ export class AIService extends Service {
128
128
  }
129
129
  getAction(model, mode) {
130
130
  if (mode === LANGUAGE_MODEL_MODE) {
131
- return model.language_model
132
- ? (ctx) => model.language_model?.stream(ctx, ctx.input.call)
131
+ return model.runtime.stream
132
+ ? (ctx) => model.runtime.stream?.(ctx, ctx.input.call)
133
133
  : undefined;
134
134
  }
135
135
  if (mode === "image" || IMAGE_ACTION_MODES.includes(mode)) {
136
- const has_image_actions = Boolean(model.actions.image_create && model.actions.image_fetch);
136
+ const has_image_actions = Boolean(model.runtime.actions.image_create && model.runtime.actions.image_fetch);
137
137
  if (!has_image_actions)
138
138
  return undefined;
139
139
  return mode === "image"
140
- ? model.actions.image_create
141
- : model.actions[mode];
140
+ ? model.runtime.actions.image_create
141
+ : model.runtime.actions[mode];
142
142
  }
143
- return model.actions[(mode ?? "text")];
144
- }
145
- resolveOpenAIAction(model) {
146
- if (model.actions.openai)
147
- return model.actions.openai;
148
- if (model.baseURL && model.envKey)
149
- return this.createAutoPassthroughAction(model);
150
- return undefined;
151
- }
152
- createAutoPassthroughAction(model) {
153
- const baseURL = model.baseURL;
154
- const envKey = model.envKey;
155
- const passthroughModel = model.passthroughModel;
156
- return async (ctx) => {
157
- const apiKey = ctx.env(envKey);
158
- if (!apiKey) {
159
- return new Response(JSON.stringify({
160
- error: { message: `${envKey} is required`, type: "authentication_error" },
161
- }), { status: 401, headers: { "content-type": "application/json" } });
162
- }
163
- const body = { ...ctx.input };
164
- if (passthroughModel) {
165
- body.model = passthroughModel;
166
- }
167
- const response = await fetch(`${baseURL}/chat/completions`, {
168
- method: "POST",
169
- headers: {
170
- "Authorization": `Bearer ${apiKey}`,
171
- "Content-Type": "application/json",
172
- },
173
- body: JSON.stringify(body),
174
- });
175
- return new Response(response.body, {
176
- status: response.status,
177
- statusText: response.statusText,
178
- headers: response.headers,
179
- });
180
- };
143
+ return model.runtime.actions[(mode ?? "text")];
181
144
  }
182
145
  getModelModalities(model) {
183
- const modalities = Object.keys(model.actions).filter((key) => model.actions[key] !== undefined);
184
- if (model.language_model && !modalities.includes("stream"))
146
+ const modalities = Object.keys(model.runtime.actions)
147
+ .filter((key) => model.runtime.actions[key] !== undefined);
148
+ if (model.runtime.stream && !modalities.includes("stream"))
185
149
  modalities.push("stream");
186
150
  if (modalities.includes("image_create") && modalities.includes("image_fetch")) {
187
151
  modalities.push("image");
188
152
  }
189
- if (!modalities.includes("openai") && this.resolveOpenAIAction(model))
190
- modalities.push("openai");
191
153
  return modalities.filter((mode) => mode !== "image_create" && mode !== "image_fetch" && mode !== "image_result");
192
154
  }
193
155
  /** 按媒体输入解析最终模型,推理强度必须在该步骤之后解析。 */
194
156
  plan_text_execution(resolved, ctx, mode) {
195
157
  return resolve_text_routing_plan(resolved, ctx.input, mode, {
196
- resolve_model: (input) => typeof input === "string"
197
- ? this.models.get(input)
198
- : this.models.get(input.id) ?? input,
199
- resolve_action: (model, target_mode) => target_mode === "openai"
200
- ? this.resolveOpenAIAction(model)
201
- : this.getAction(model, target_mode),
158
+ resolve_model: (input) => this.models.get(input),
159
+ resolve_action: (model, target_mode) => this.getAction(model, target_mode),
202
160
  is_available: (model) => this.models.get_missing_env(model, ctx.env).length === 0,
203
161
  });
204
162
  }
@@ -213,10 +171,12 @@ export class AIService extends Service {
213
171
  attach_resolved_reasoning(ctx, reasoning);
214
172
  const started_at = Date.now();
215
173
  try {
216
- const provider_output = await resolved.action(ctx);
217
- const { output, charge } = this.resolveProviderOutput(provider_output);
174
+ const channel_output = await resolved.action(ctx);
175
+ const { output, charge } = this.resolveChannelOutput(channel_output);
218
176
  this.attachOutputMetering(ctx, output, modality, started_at);
219
- const resolved_charge = charge ?? resolved.model?.bill?.(ctx, output);
177
+ const resolved_charge = charge ?? (resolved.model
178
+ ? resolved.model.bill?.(this.build_bill_input(ctx, resolved.model, output))
179
+ : undefined);
220
180
  const defer_charge = isResponse(output) || isPromiseLike(resolved_charge);
221
181
  const charged_response = await this.handleCharge(ctx, resolved_charge, defer_charge, undefined, undefined, isResponse(output) ? output : undefined);
222
182
  if (isResponse(output))
@@ -232,8 +192,8 @@ export class AIService extends Service {
232
192
  /**
233
193
  * 执行 CityModel LanguageModelV3 模型流调用。
234
194
  *
235
- * 路由、fallback、reasoning 和计费仍由 AIService 统一拥有;Provider 负责执行
236
- * 标准模型流,transport 模块只编码 SSE,避免把 Provider 决策泄漏到客户端。
195
+ * 路由、fallback、reasoning 和计费仍由 AIService 统一拥有;AIChannel 负责执行
196
+ * 标准模型流,transport 模块只编码 SSE,避免把 Channel 决策泄漏到客户端。
237
197
  */
238
198
  async handleLanguageModelStream(ctx) {
239
199
  const request = decode_city_language_model_request(ctx.input);
@@ -253,7 +213,7 @@ export class AIService extends Service {
253
213
  const started_at = Date.now();
254
214
  const output = await resolved.action(ctx);
255
215
  if (!is_language_model_stream_result(output)) {
256
- throw httpError(500, "Provider stream did not return a LanguageModelV3 stream result");
216
+ throw httpError(500, "AIChannel stream did not return a LanguageModelV3 stream result");
257
217
  }
258
218
  const execution = create_city_language_model_stream({
259
219
  result: output,
@@ -264,7 +224,9 @@ export class AIService extends Service {
264
224
  return part;
265
225
  });
266
226
  const charge = resolved.model?.bill
267
- ? completion.then((part) => part ? resolved.model?.bill?.(ctx, part) : undefined)
227
+ ? completion.then((part) => part && resolved.model
228
+ ? resolved.model.bill?.(this.build_bill_input(ctx, resolved.model, part))
229
+ : undefined)
268
230
  : undefined;
269
231
  const charged_response = await this.handleCharge(ctx, charge, true, undefined, undefined, execution.response);
270
232
  return charged_response ?? execution.response;
@@ -275,7 +237,7 @@ export class AIService extends Service {
275
237
  this.attachResolvedModel(ctx, resolved.model, "image/create");
276
238
  try {
277
239
  const created = await resolved.action(ctx);
278
- if (!isImageProviderCreateResult(created)) {
240
+ if (!isImageChannelCreateResult(created)) {
279
241
  throw httpError(500, "image_create action returned invalid result");
280
242
  }
281
243
  await this.insertImageJob(ctx, created);
@@ -320,21 +282,21 @@ export class AIService extends Service {
320
282
  if (!model_id)
321
283
  throw httpError(422, "Image job is missing model_id");
322
284
  const model = this.models.get(model_id);
323
- if (!model?.actions.image_fetch) {
285
+ if (!model?.runtime.actions.image_fetch) {
324
286
  throw httpError(422, `No image_fetch action for model: ${model_id}`);
325
287
  }
326
288
  this.attachResolvedModel(ctx, model, IMAGE_FETCH_ACTION);
327
289
  this.attachImageJobContext(ctx, job);
328
290
  const started_at = Date.now();
329
- const output = await model.actions.image_fetch(ctx);
330
- if (!isImageProviderResult(output)) {
291
+ const output = await model.runtime.actions.image_fetch(ctx);
292
+ if (!isImageChannelResult(output)) {
331
293
  throw httpError(500, "image_fetch action returned invalid result");
332
294
  }
333
295
  const stored_output = await this.normalizeImageResultStorage(ctx, output);
334
296
  const should_charge = output.status === "succeeded" && Boolean(output.result) && !job.result_json;
335
297
  if (should_charge) {
336
298
  this.attachOutputMetering(ctx, stored_output.result, "image", started_at);
337
- const charge = model.bill?.(ctx, stored_output);
299
+ const charge = model.bill?.(this.build_bill_input(ctx, model, stored_output));
338
300
  await this.handleCharge(ctx, charge, false, `ai_image:${job.job_id}`, job.user_id ?? undefined);
339
301
  }
340
302
  await finish_image_job_fetch(table, claim, stored_output);
@@ -497,7 +459,7 @@ export class AIService extends Service {
497
459
  return rowToAsyncJobRecord(row);
498
460
  }
499
461
  /**
500
- * 把 async_jobs 记录注入 Provider 可读取的上下文。
462
+ * 把 async_jobs 记录注入 AIChannel 可读取的上下文。
501
463
  */
502
464
  attachImageJobContext(ctx, job) {
503
465
  const image_job = {
@@ -528,27 +490,45 @@ export class AIService extends Service {
528
490
  }
529
491
  // ========== OpenAI 兼容通路 ==========
530
492
  async handleChatCompletions(ctx) {
531
- const body = ctx.input;
532
- const modelId = this.normalizeModelId(body.model);
533
- const initial_resolved = this.resolve({ model: modelId, mode: "openai" }, ctx.env);
534
- const { resolved, fallback_from, fallback_reason, fallback_media_type } = this.plan_text_execution(initial_resolved, ctx, "openai");
535
- const reasoning = resolved.model
536
- ? resolve_model_reasoning(resolved.model, body)
537
- : undefined;
538
- this.attachResolvedModel(ctx, resolved.model, "openai", { fallback_from, fallback_reason, fallback_media_type });
539
- ctx.input = body;
540
- attach_resolved_reasoning(ctx, reasoning);
541
- const started_at = Date.now();
542
493
  try {
494
+ const body = ctx.input;
495
+ const model_id = this.normalizeModelId(body.model);
496
+ const call = openai_chat_request_to_language_model_call(body, ctx.request?.signal);
497
+ ctx.input = {
498
+ ...body,
499
+ model: model_id,
500
+ call,
501
+ };
502
+ const initial_resolved = this.resolve({ model: model_id, mode: LANGUAGE_MODEL_MODE }, ctx.env);
503
+ const routing = this.plan_text_execution(initial_resolved, ctx, LANGUAGE_MODEL_MODE);
504
+ const resolved = routing.resolved;
505
+ const reasoning = resolved.model
506
+ ? resolve_model_reasoning(resolved.model, body)
507
+ : undefined;
508
+ this.attachResolvedModel(ctx, resolved.model, "openai", routing);
509
+ attach_resolved_reasoning(ctx, reasoning);
510
+ const started_at = Date.now();
543
511
  const output = await resolved.action(ctx);
544
- const provider_output = this.resolveProviderOutput(output);
545
- this.attachOutputMetering(ctx, provider_output.output, "openai", started_at);
546
- const resolved_charge = provider_output.charge ?? resolved.model?.bill?.(ctx, provider_output.output);
547
- const defer_charge = isResponse(provider_output.output) || isPromiseLike(resolved_charge);
548
- const charged_response = await this.handleCharge(ctx, resolved_charge, defer_charge, undefined, undefined, isResponse(provider_output.output) ? provider_output.output : undefined);
549
- if (isResponse(provider_output.output))
550
- return charged_response ?? provider_output.output;
551
- return new Response(JSON.stringify(provider_output.output), { status: 200, headers: { "content-type": "application/json" } });
512
+ if (!is_language_model_stream_result(output)) {
513
+ throw httpError(500, "AIChannel stream did not return a LanguageModelV3 stream result");
514
+ }
515
+ const execution = await create_openai_chat_completion_response({
516
+ model_id: resolved.model?.id ?? model_id ?? "",
517
+ stream: body.stream === true,
518
+ result: output,
519
+ });
520
+ const completion = execution.completion.then((result) => {
521
+ if (result)
522
+ this.attachOutputMetering(ctx, result, "openai", started_at);
523
+ return result;
524
+ });
525
+ const charge = resolved.model?.bill
526
+ ? completion.then((result) => result && resolved.model
527
+ ? resolved.model.bill?.(this.build_bill_input(ctx, resolved.model, result))
528
+ : undefined)
529
+ : undefined;
530
+ const charged_response = await this.handleCharge(ctx, charge, true, undefined, undefined, execution.response);
531
+ return charged_response ?? execution.response;
552
532
  }
553
533
  catch (error) {
554
534
  const message = error instanceof Error ? error.message : String(error);
@@ -562,14 +542,18 @@ export class AIService extends Service {
562
542
  attachResolvedModel(ctx, model, mode, routing) {
563
543
  if (!model)
564
544
  return;
565
- ctx.variant = { id: model.id, name: model.name, meta: model.meta };
545
+ ctx.variant = {
546
+ id: model.id,
547
+ name: model.name,
548
+ meta: model.meta,
549
+ upstream_model: model.upstream_model,
550
+ channel_id: model.channel_id,
551
+ };
566
552
  ctx.metering = {
567
553
  ...ctx.metering,
568
- provider_id: model.provider_id,
554
+ channel_id: model.channel_id,
569
555
  model_id: model.id,
570
- upstream_model: typeof model.meta?.upstream_model === "string"
571
- ? model.meta.upstream_model
572
- : model.passthroughModel,
556
+ upstream_model: model.upstream_model,
573
557
  request_count: ctx.metering?.request_count ?? 1,
574
558
  metadata: {
575
559
  ...(ctx.metering?.metadata ?? {}),
@@ -611,21 +595,28 @@ export class AIService extends Service {
611
595
  raw_usage: usage ?? ctx.metering?.raw_usage,
612
596
  };
613
597
  }
598
+ /** 构造账单函数允许访问的显式领域输入。 */
599
+ build_bill_input(ctx, model, output) {
600
+ return {
601
+ output,
602
+ model: {
603
+ id: model.id,
604
+ upstream_model: model.upstream_model,
605
+ },
606
+ ...(ctx.metering ? { metering: ctx.metering } : {}),
607
+ ...(ctx.user?.user_id ? { user_id: ctx.user.user_id } : {}),
608
+ ...(ctx.city?.city_id ? { city_id: ctx.city.city_id } : {}),
609
+ };
610
+ }
614
611
  /**
615
- * 拆包 Provider 返回值。
612
+ * 拆包 AIChannel 返回值。
616
613
  *
617
614
  * 关键说明(中文)
618
- * - Provider 可以返回 `{ output, charge }` 或 `{ response, charge }`。
619
- * - Provider 继续直接返回 UIMessage / Response,保持兼容。
615
+ * - Channel 可以返回统一的 `{ output, charge }`。
616
+ * - 普通 action 也可以直接返回 UIMessage / Response
620
617
  */
621
- resolveProviderOutput(value) {
622
- if (isProviderChargedResponse(value)) {
623
- return {
624
- output: value.response,
625
- charge: value.charge,
626
- };
627
- }
628
- if (isProviderChargedOutput(value)) {
618
+ resolveChannelOutput(value) {
619
+ if (isChannelChargedOutput(value)) {
629
620
  return {
630
621
  output: value.output,
631
622
  charge: value.charge,
@@ -664,7 +655,7 @@ export class AIService extends Service {
664
655
  service_id: ctx.service?.id,
665
656
  action_id: ctx.action?.id,
666
657
  model_id: ctx.metering?.model_id,
667
- provider_id: ctx.metering?.provider_id,
658
+ channel_id: ctx.metering?.channel_id,
668
659
  credits: charge_line?.credits,
669
660
  error: error instanceof Error ? error.message : String(error),
670
661
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ai-service.js","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-service.js","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * AI Provider 通用工具模块。
2
+ * AIChannel 通用工具模块。
3
3
  *
4
- * 集中管理 Provider 子类常用的输入解析、消息构造、usage 归一化、
4
+ * 集中管理 AIChannel 子类常用的输入解析、消息构造、usage 归一化、
5
5
  * HTTP 响应读取等工具函数。
6
6
  */
7
7
  import type { ToolSet, UIMessage } from "ai";
8
- import type { AIProviderChargeLine } from "./charge.js";
8
+ import type { AIChannelActionInput, AICharge, AIChargedResult } from "../../types/AI.js";
9
9
  import type { Context } from "../service.js";
10
10
  /**
11
11
  * 判断一个值是否为普通对象。
@@ -30,13 +30,9 @@ export declare function trimTrailingSlash(value: string): string;
30
30
  /**
31
31
  * 读取必填环境变量。
32
32
  */
33
- export declare function readRequiredEnv(ctx: Context, key: string): string;
34
- /**
35
- * 解析上游模型 ID。
36
- *
37
- * 优先使用 model meta 中的 upstream_model,其次使用 fallback。
38
- */
39
- export declare function resolveUpstreamModel(ctx: Context, fallback: string): string;
33
+ export declare function read_required_env(source: {
34
+ env(key: string): string | undefined;
35
+ }, key: string): string;
40
36
  /**
41
37
  * 读取 JSON 响应,非 2xx 时抛出错误。
42
38
  */
@@ -70,10 +66,7 @@ export interface BuildAssistantMessageResult {
70
66
  /**
71
67
  * 构造标准 assistant UIMessage。
72
68
  */
73
- export declare function buildAssistantMessage(text: string, ctx: Context, result: BuildAssistantMessageResult, charge?: AIProviderChargeLine): {
74
- output: UIMessage;
75
- charge?: AIProviderChargeLine;
76
- };
69
+ export declare function buildAssistantMessage(text: string, ctx: Context, result: BuildAssistantMessageResult, charge?: AICharge): AIChargedResult<UIMessage>;
77
70
  /**
78
71
  * 提取后的图片信息。
79
72
  */
@@ -88,7 +81,7 @@ export interface ExtractedImage {
88
81
  /**
89
82
  * 构造标准图片 file-parts UIMessage。
90
83
  */
91
- export declare function buildImageMessage(ctx: Context, images: ExtractedImage[], metadata: Record<string, unknown>): UIMessage;
84
+ export declare function buildImageMessage(input: AIChannelActionInput, images: ExtractedImage[], metadata: Record<string, unknown>): UIMessage;
92
85
  /**
93
86
  * OpenAI function tools → ai-sdk ToolSet。
94
87
  */
@@ -102,24 +95,4 @@ export declare function normalizeAIUsage(usage: unknown): {
102
95
  cached_tokens?: number;
103
96
  reasoning_tokens?: number;
104
97
  };
105
- /**
106
- * 给 /chat/completions 透传前规整 body。
107
- *
108
- * - 替换 model 为实际上游模型
109
- * - 当 stream 为 true 时补充 include_usage
110
- * - 保留 OpenAI-compatible content 数组,让 image_url 等多模态输入原样透传
111
- */
112
- export declare function normalizeOpenAICompatibleBody(input: Record<string, unknown>, model: string): Record<string, unknown>;
113
- /**
114
- * 给文本模型 /chat/completions 透传前规整 body。
115
- *
116
- * - 替换 model 为实际上游模型
117
- * - 当 stream 为 true 时补充 include_usage
118
- * - 把多模态 content 中的文本片段拼成纯文本,适合不支持 image_url 的上游
119
- */
120
- export declare function normalizeTextOnlyOpenAICompatibleBody(input: Record<string, unknown>, model: string): Record<string, unknown>;
121
- /**
122
- * 从 OpenAI-compatible SSE 流中读取最后一个 usage。
123
- */
124
- export declare function readOpenAICompatibleSseUsage(body: ReadableStream<Uint8Array>): Promise<unknown | undefined>;
125
98
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/service/ai/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/service/ai/helpers.ts"],"names":[],"mappings":"AAAC;;;;;GAKG;AAEH,OAAO,KAAK,EAAiC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE5E,OAAO,KAAK,EACV,oBAAoB,EACpB,QAAQ,EACR,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAM7C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAI9E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EAChD,GAAG,EAAE,MAAM,GACV,MAAM,CAIR;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAuBtD;AAMD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,2BAA2B,EACnC,MAAM,CAAC,EAAE,QAAQ,GAChB,eAAe,CAAC,SAAS,CAAC,CA+B5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,SAAS,CAsBX;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAkB9F;AAQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CA2DA"}