@downcity/city 0.2.192 → 0.2.196

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 (32) hide show
  1. package/bin/index.d.ts +1 -0
  2. package/bin/index.d.ts.map +1 -1
  3. package/bin/index.js.map +1 -1
  4. package/bin/pact/invoker/ai/client-stream.d.ts +14 -0
  5. package/bin/pact/invoker/ai/client-stream.d.ts.map +1 -0
  6. package/bin/pact/invoker/ai/client-stream.js +129 -0
  7. package/bin/pact/invoker/ai/client-stream.js.map +1 -0
  8. package/bin/pact/invoker/ai/index.d.ts +12 -5
  9. package/bin/pact/invoker/ai/index.d.ts.map +1 -1
  10. package/bin/pact/invoker/ai/index.js +38 -16
  11. package/bin/pact/invoker/ai/index.js.map +1 -1
  12. package/bin/service/ai/ai-service.d.ts +4 -5
  13. package/bin/service/ai/ai-service.d.ts.map +1 -1
  14. package/bin/service/ai/ai-service.js +26 -28
  15. package/bin/service/ai/ai-service.js.map +1 -1
  16. package/bin/service/ai/language-model-stream.d.ts +9 -5
  17. package/bin/service/ai/language-model-stream.d.ts.map +1 -1
  18. package/bin/service/ai/language-model-stream.js +13 -10
  19. package/bin/service/ai/language-model-stream.js.map +1 -1
  20. package/bin/service/ai/provider.d.ts +12 -13
  21. package/bin/service/ai/provider.d.ts.map +1 -1
  22. package/bin/service/ai/provider.js +26 -47
  23. package/bin/service/ai/provider.js.map +1 -1
  24. package/bin/service/ai/types.d.ts +7 -9
  25. package/bin/service/ai/types.d.ts.map +1 -1
  26. package/bin/types/CityLanguageModelRuntime.d.ts +6 -9
  27. package/bin/types/CityLanguageModelRuntime.d.ts.map +1 -1
  28. package/package.json +2 -2
  29. package/bin/pact/invoker/ai/stream.d.ts +0 -8
  30. package/bin/pact/invoker/ai/stream.d.ts.map +0 -1
  31. package/bin/pact/invoker/ai/stream.js +0 -17
  32. package/bin/pact/invoker/ai/stream.js.map +0 -1
package/bin/index.d.ts CHANGED
@@ -27,6 +27,7 @@ export { Provider } from "./service/ai/provider.js";
27
27
  export { read_resolved_reasoning } from "./service/ai/reasoning.js";
28
28
  export type { AIServiceOptions, ModelConfig, ModelFallbackMedia, ModelFallbackRule, ModelActions, ModelLanguageRuntime, CityLanguageModelV3, OpenAICompatibleClient, OpenAICompatibleClientConfig, ProviderOptions, PublicModel, } from "./service/ai/types.js";
29
29
  export type { AIProviderOptionObject, AIProviderOptions, AIProviderOptionValue, AIResolvedReasoning, } from "./types/AIReasoning.js";
30
+ export type { CityProviderStreamCall, CityProviderStreamResult, } from "./types/CityLanguageModelRuntime.js";
30
31
  export { buildAssistantMessage, buildImageMessage, buildToolSet, isRecord, normalizeAIUsage, normalizeOpenAICompatibleBody, normalizeTextOnlyOpenAICompatibleBody, readErrorMessage, readJsonResponse, readOpenAICompatibleSseUsage, readRequiredEnv, readString, resolveUpstreamModel, stripUndefined, toRecord, trimTrailingSlash, } from "./service/ai/helpers.js";
31
32
  export type { BuildAssistantMessageResult, ExtractedImage, ToolCallShape, } from "./service/ai/helpers.js";
32
33
  export type { AIBalanceBridge, AIBalanceChargeInput, AIProviderBillFn, AIProviderChargedOutput, AIProviderChargedResponse, AIProviderChargeLine, } from "./service/ai/charge.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAepD,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAmC7C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAuBpE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,6BAA6B,EAC7B,qCAAqC,EACrC,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,EAC5B,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAiBjC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAShE,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAQ1D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAOtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAsB3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAUxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAyCxE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AA8BzD,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE7E,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,WAAW,EACX,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAepD,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAmC7C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA4BpE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,6BAA6B,EAC7B,qCAAqC,EACrC,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,EAC5B,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAiBjC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAShE,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAQ1D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAOtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAsB3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAUxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAyCxE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AA8BzD,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE7E,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,WAAW,EACX,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * City 客户端 UIMessage 流包装模块。
3
+ *
4
+ * Federation `/v1/ai/stream` 只返回标准 LanguageModelV3 流。该模块在客户端使用
5
+ * AI SDK `streamText()` 将 CityModel 流转换为 `UIMessageChunk`,避免 UI 协议进入
6
+ * Federation 或 CityModel transport 边界。
7
+ */
8
+ import type { UserServiceInput, UserStreamResult } from "../../user/types.js";
9
+ import type { UserModelRef } from "./types.js";
10
+ /**
11
+ * 使用 CityModel 执行流式生成,并在客户端转换成 UIMessageChunk。
12
+ */
13
+ export declare function create_client_ui_stream(input: UserServiceInput, model: UserModelRef): Promise<UserStreamResult>;
14
+ //# sourceMappingURL=client-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-stream.d.ts","sourceRoot":"","sources":["../../../../src/pact/invoker/ai/client-stream.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAiB/C;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAwC3B"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * City 客户端 UIMessage 流包装模块。
3
+ *
4
+ * Federation `/v1/ai/stream` 只返回标准 LanguageModelV3 流。该模块在客户端使用
5
+ * AI SDK `streamText()` 将 CityModel 流转换为 `UIMessageChunk`,避免 UI 协议进入
6
+ * Federation 或 CityModel transport 边界。
7
+ */
8
+ import { convertToModelMessages, jsonSchema, streamText, tool, } from "ai";
9
+ /** AI SDK `streamText()` 支持直接透传的公开生成参数。 */
10
+ const STREAM_OPTION_KEYS = [
11
+ "maxOutputTokens",
12
+ "temperature",
13
+ "topP",
14
+ "topK",
15
+ "presencePenalty",
16
+ "frequencyPenalty",
17
+ "stopSequences",
18
+ "seed",
19
+ "toolChoice",
20
+ "activeTools",
21
+ "abortSignal",
22
+ ];
23
+ /**
24
+ * 使用 CityModel 执行流式生成,并在客户端转换成 UIMessageChunk。
25
+ */
26
+ export async function create_client_ui_stream(input, model) {
27
+ const tools = create_client_tool_set(input.tools);
28
+ const messages = Array.isArray(input.messages)
29
+ ? input.messages
30
+ : undefined;
31
+ const prompt = typeof input.prompt === "string" ? input.prompt : undefined;
32
+ if (!messages?.length && prompt === undefined) {
33
+ throw new TypeError("client.ai.stream() requires prompt or messages");
34
+ }
35
+ const reasoning_effort = read_reasoning_effort(input);
36
+ const common_options = {
37
+ model,
38
+ ...(tools ? { tools } : {}),
39
+ ...read_stream_options(input),
40
+ ...(reasoning_effort
41
+ ? {
42
+ providerOptions: {
43
+ downcity: { reasoningEffort: reasoning_effort },
44
+ },
45
+ }
46
+ : {}),
47
+ };
48
+ if (messages?.length) {
49
+ const model_messages = tools
50
+ ? await convertToModelMessages(messages, { tools })
51
+ : await convertToModelMessages(messages);
52
+ const result = streamText({
53
+ ...common_options,
54
+ messages: model_messages,
55
+ });
56
+ return result.toUIMessageStream({ originalMessages: messages });
57
+ }
58
+ const result = streamText({
59
+ ...common_options,
60
+ prompt: prompt ?? "",
61
+ });
62
+ return result.toUIMessageStream();
63
+ }
64
+ /**
65
+ * 将公开 stream 输入中的工具定义规范化为不带 execute 的 AI SDK ToolSet。
66
+ *
67
+ * `client.ai.stream()` 只负责一次模型流,不在 City SDK 内执行工具循环。
68
+ */
69
+ function create_client_tool_set(value) {
70
+ const entries = Array.isArray(value)
71
+ ? value.map((item) => [read_tool_name(undefined, item), item])
72
+ : value && typeof value === "object"
73
+ ? Object.entries(value)
74
+ : [];
75
+ const tools = entries.flatMap(([fallback_name, definition]) => {
76
+ const name = read_tool_name(fallback_name, definition);
77
+ if (!name)
78
+ return [];
79
+ const record = read_record(definition);
80
+ const function_record = read_record(record?.function);
81
+ const description = read_optional_string(function_record?.description)
82
+ ?? read_optional_string(record?.description)
83
+ ?? "";
84
+ const input_schema = function_record?.parameters
85
+ ?? unwrap_json_schema(record?.inputSchema)
86
+ ?? record?.parameters
87
+ ?? {};
88
+ return [[name, tool({
89
+ description,
90
+ inputSchema: jsonSchema(input_schema),
91
+ })]];
92
+ });
93
+ return tools.length > 0 ? Object.fromEntries(tools) : undefined;
94
+ }
95
+ /** 读取 AI SDK 或 OpenAI function tool 的名称。 */
96
+ function read_tool_name(fallback_name, definition) {
97
+ const fallback = read_optional_string(fallback_name);
98
+ if (fallback)
99
+ return fallback;
100
+ const record = read_record(definition);
101
+ const direct_name = read_optional_string(record?.name);
102
+ if (direct_name)
103
+ return direct_name;
104
+ return read_optional_string(read_record(record?.function)?.name) ?? "";
105
+ }
106
+ /** 展开 AI SDK jsonSchema 包装,得到可传输的 JSON Schema。 */
107
+ function unwrap_json_schema(value) {
108
+ const record = read_record(value);
109
+ return record?.jsonSchema ?? value;
110
+ }
111
+ /** 只读取允许传给 AI SDK `streamText()` 的生成参数。 */
112
+ function read_stream_options(input) {
113
+ return Object.fromEntries(STREAM_OPTION_KEYS.flatMap((key) => input[key] === undefined ? [] : [[key, input[key]]]));
114
+ }
115
+ /** 读取 Downcity 推理强度。 */
116
+ function read_reasoning_effort(input) {
117
+ return read_optional_string(input.reasoning_effort);
118
+ }
119
+ /** 将未知值收窄为普通对象。 */
120
+ function read_record(value) {
121
+ return value && typeof value === "object" && !Array.isArray(value)
122
+ ? value
123
+ : undefined;
124
+ }
125
+ /** 读取非空字符串。 */
126
+ function read_optional_string(value) {
127
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
128
+ }
129
+ //# sourceMappingURL=client-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-stream.js","sourceRoot":"","sources":["../../../../src/pact/invoker/ai/client-stream.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@
5
5
  */
6
6
  import { type CityModelDescriptor } from "@downcity/type";
7
7
  import type { UserModelRef } from "./types.js";
8
- import type { CityLanguageModelStreamRequestV1 } from "../../../types/CityLanguageModelTransport.js";
9
8
  import type { UserImageInput, UserImageJobCreateResult, UserImageJobResult, UserImageJobResultInput, UserAsrInput, UserAsrResult, UserServiceInput, UserStreamResult, UserTextResult, UserTtsInput, UserTtsResult, UserVideoResult } from "../../user/types.js";
10
9
  import type { FetchResponseLike, RequestInitLike } from "../../http.js";
11
10
  /**
@@ -40,10 +39,14 @@ export declare class AIInvoker {
40
39
  get base_url(): string;
41
40
  /** 文本生成。支持 tools 参数(ai-sdk tool 格式,自动序列化去掉 execute) */
42
41
  text(input: UserServiceInput): Promise<UserTextResult>;
43
- /** 流式生成。支持 tools 参数(ai-sdk tool 格式,自动序列化去掉 execute) */
42
+ /**
43
+ * 使用 CityModel 流式生成 UIMessageChunk。
44
+ *
45
+ * Federation `/v1/ai/stream` 只传输 LanguageModelV3 事件;UIMessage 转换在客户端完成。
46
+ */
44
47
  stream(input: UserServiceInput): Promise<UserStreamResult>;
45
- /** 使用当前 City user 鉴权上下文调用原生 LanguageModel endpoint。 */
46
- language_model_stream(request: CityLanguageModelStreamRequestV1, signal?: AbortSignal): Promise<FetchResponseLike>;
48
+ /** 使用当前 City user 鉴权上下文调用模型流端点。 */
49
+ private request_model_stream;
47
50
  /** 创建图片生成任务 */
48
51
  image_create(input: UserImageInput): Promise<UserImageJobCreateResult>;
49
52
  /** 查询图片生成任务 */
@@ -69,6 +72,10 @@ export declare class AIInvoker {
69
72
  * ```
70
73
  */
71
74
  model(ref: UserModelRef | string): ModelHandle;
75
+ /** 将模型输入解析为绑定当前鉴权请求器的 CityModel。 */
76
+ private resolve_city_model;
77
+ /** 使用公开目录描述创建可执行 CityModel。 */
78
+ private create_city_model;
72
79
  private post;
73
80
  /**
74
81
  * 解析 AI SDK / OpenAI function tool 的名称。
@@ -90,7 +97,7 @@ export declare class AIInvoker {
90
97
  */
91
98
  export declare class ModelCatalog {
92
99
  private readonly byId;
93
- constructor(items: CityModelDescriptor[], ai: AIInvoker);
100
+ constructor(items: CityModelDescriptor[], create_model: (descriptor: CityModelDescriptor) => UserModelRef);
94
101
  get(id: string): UserModelRef | undefined;
95
102
  all(): UserModelRef[];
96
103
  forModality(modality: string): UserModelRef[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pact/invoker/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AACrG,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIxE;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyD;IAC7E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsE;IAC7F,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuD;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;gBAE/B,IAAI,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;QACpE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAChF,UAAU,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClE;IAQD;;;;;;OAMG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,uDAAuD;IACvD,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAOtD,uDAAuD;IACjD,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQhE,uDAAuD;IACvD,qBAAqB,CACnB,OAAO,EAAE,gCAAgC,EACzC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,iBAAiB,CAAC;IAQ7B,eAAe;IACf,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAItE,eAAe;IACf,YAAY,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIzE,WAAW;IACX,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxD,WAAW;IACX,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIhD,WAAW;IACX,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIhD,aAAa;IACP,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAKzC;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW;IAO9C,OAAO,CAAC,IAAI;IAOZ;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA2B/B,qEAAqE;IACrE,OAAO,CAAC,cAAc;CAkBvB;AAMD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;gBAErC,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,SAAS;IAcvD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzC,GAAG,IAAI,YAAY,EAAE;IAIrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE;CAI9C;AAED,6BAA6B;AAC7B,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGzG;AAMD;;;;;;;;GAQG;AACH,qBAAa,WAAW;IASpB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,YAAY;IACZ,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,aAAa;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM;IAZvB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,mBAAmB;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGhB,EAAE,EAAE,SAAS;IAC9B,YAAY;IACH,EAAE,EAAE,MAAM;IACnB,aAAa;IACJ,IAAI,GAAE,MAAW;IAC1B,mBAAmB;IACnB,QAAQ,GAAE,MAAW;IACrB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAShC,WAAW;IACX,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzE,WAAW;IACX,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAIrE,WAAW;IACX,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAMvE,uBAAuB;IACvB,GAAG,IAAI,MAAM;IAIb,+BAA+B;IAC/B,SAAS,IAAI,MAAM;CAGpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pact/invoker/ai/index.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * 路由:/v1/ai/{modality} 和 /v1/ai/models。
5
5
  */
6
- import { parseAIStreamBody } from "./stream.js";
7
6
  import { CityModel } from "./CityModel.js";
7
+ import { create_client_ui_stream } from "./client-stream.js";
8
8
  const PREFIX = "/v1/ai";
9
9
  /**
10
10
  * AI 服务调用器。
@@ -45,17 +45,17 @@ export class AIInvoker {
45
45
  body: JSON.stringify(this.input(this.serializeTools(input))),
46
46
  });
47
47
  }
48
- /** 流式生成。支持 tools 参数(ai-sdk tool 格式,自动序列化去掉 execute) */
48
+ /**
49
+ * 使用 CityModel 流式生成 UIMessageChunk。
50
+ *
51
+ * Federation `/v1/ai/stream` 只传输 LanguageModelV3 事件;UIMessage 转换在客户端完成。
52
+ */
49
53
  async stream(input) {
50
- const res = await this.reqRaw(`${PREFIX}/stream`, {
51
- method: "POST",
52
- body: JSON.stringify(this.input(this.serializeTools(input))),
53
- });
54
- return parseAIStreamBody(res.body);
54
+ return create_client_ui_stream(input, this.resolve_city_model(input.model));
55
55
  }
56
- /** 使用当前 City user 鉴权上下文调用原生 LanguageModel endpoint。 */
57
- language_model_stream(request, signal) {
58
- return this.reqRaw(`${PREFIX}/language-model/stream`, {
56
+ /** 使用当前 City user 鉴权上下文调用模型流端点。 */
57
+ request_model_stream(request, signal) {
58
+ return this.reqRaw(`${PREFIX}/stream`, {
59
59
  method: "POST",
60
60
  body: JSON.stringify(request),
61
61
  signal,
@@ -84,7 +84,7 @@ export class AIInvoker {
84
84
  /** 获取模型目录 */
85
85
  async listModels() {
86
86
  const body = await this.req(`${PREFIX}/models`, { method: "GET" });
87
- return new ModelCatalog(body.items, this);
87
+ return new ModelCatalog(body.items, (descriptor) => this.create_city_model(descriptor));
88
88
  }
89
89
  /**
90
90
  * 获取指定模型的操作句柄。
@@ -104,6 +104,31 @@ export class AIInvoker {
104
104
  }
105
105
  return new ModelHandle(this, ref.id, ref.name, this.base_url, this.token, ref.meta);
106
106
  }
107
+ /** 将模型输入解析为绑定当前鉴权请求器的 CityModel。 */
108
+ resolve_city_model(model) {
109
+ if (model && typeof model === "object")
110
+ return model;
111
+ if (typeof model !== "string")
112
+ throw new TypeError("model is required");
113
+ const model_id = model.trim();
114
+ if (!model_id)
115
+ throw new TypeError("model must be a non-empty string");
116
+ return this.create_city_model({
117
+ id: model_id,
118
+ name: model_id,
119
+ description: "",
120
+ modalities: ["text", "stream"],
121
+ tags: [],
122
+ meta: {},
123
+ });
124
+ }
125
+ /** 使用公开目录描述创建可执行 CityModel。 */
126
+ create_city_model(descriptor) {
127
+ return new CityModel({
128
+ descriptor,
129
+ request_stream: (request, signal) => this.request_model_stream(request, signal),
130
+ });
131
+ }
107
132
  post(path, input) {
108
133
  return this.req(`${PREFIX}${path}`, {
109
134
  method: "POST",
@@ -192,15 +217,12 @@ export class AIInvoker {
192
217
  */
193
218
  export class ModelCatalog {
194
219
  byId;
195
- constructor(items, ai) {
220
+ constructor(items, create_model) {
196
221
  if (!items?.length) {
197
222
  this.byId = new Map();
198
223
  return;
199
224
  }
200
- const enriched = items.map((item) => new CityModel({
201
- descriptor: item,
202
- request_stream: (request, signal) => ai.language_model_stream(request, signal),
203
- }));
225
+ const enriched = items.map(create_model);
204
226
  this.byId = new Map(enriched.map((item) => [item.id, item]));
205
227
  }
206
228
  get(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pact/invoker/ai/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pact/invoker/ai/index.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,11 @@
8
8
  *
9
9
  * 路由(City 自动生成):
10
10
  * - POST /v1/ai/text — 文本生成
11
- * - POST /v1/ai/stream — 流式生成
11
+ * - POST /v1/ai/stream — CityModel LanguageModelV3 模型流
12
12
  * - POST /v1/ai/video — 视频生成
13
13
  * - POST /v1/ai/image/create — 创建图片生成任务
14
14
  * - POST /v1/ai/image/result — 查询图片生成任务
15
15
  * - POST /v1/ai/chat/completions — OpenAI 兼容端点
16
- * - POST /v1/ai/language-model/stream — CityModel 原生 LanguageModelV3 端点
17
16
  * - GET /v1/ai/models — 模型列表
18
17
  */
19
18
  import { Service } from "../service.js";
@@ -49,10 +48,10 @@ export declare class AIService extends Service {
49
48
  private plan_text_execution;
50
49
  private handleModality;
51
50
  /**
52
- * 执行 CityModel 原生 LanguageModelV3 调用。
51
+ * 执行 CityModel LanguageModelV3 模型流调用。
53
52
  *
54
- * 路由、fallback、reasoning 和计费仍由 AIService 统一拥有;transport 模块只负责
55
- * 调用最终模型并编码 SSE,避免把 Provider 决策泄漏到客户端。
53
+ * 路由、fallback、reasoning 和计费仍由 AIService 统一拥有;Provider 负责执行
54
+ * 标准模型流,transport 模块只编码 SSE,避免把 Provider 决策泄漏到客户端。
56
55
  */
57
56
  private handleLanguageModelStream;
58
57
  private createImageJob;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EAEX,WAAW,EACZ,MAAM,YAAY,CAAC;AA4EpB,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAYrD,qBAAa,SAAU,SAAQ,OAAO;IACpC,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAEhD,0CAA0C;IAC1C,OAAO,CAAC,eAAe,CAA+B;IAEtD,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAS;gBAE3C,OAAO,GAAE,gBAAqB;IA+C1C,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,GAAG,IAAI;IAKrD,UAAU,IAAI,WAAW,EAAE;IAI3B,SAAS,IAAI,OAAO;IAMpB,OAAO,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE;IAgB7G,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,2BAA2B;IAmCnC,OAAO,CAAC,kBAAkB;IAS1B,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;YAkBb,cAAc;IAiC5B;;;;;OAKG;YACW,yBAAyB;YA8CzB,cAAc;YAgBd,YAAY;IAS1B;;OAEG;YACW,aAAa;IAuD3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAc1C;;OAEG;YACW,iBAAiB;IAU/B;;;;;;;OAOG;YACW,2BAA2B;IAwDzC;;OAEG;YACW,cAAc;IAuB5B;;OAEG;YACW,eAAe;IAW7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YAcV,qBAAqB;IAoCnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;;;OAOG;YACW,QAAQ;IAMtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;YACW,YAAY;IA0D1B,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;QAC/C,GAAG,EAAE,SAAS,CAAC;QACf,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;KACtC,GAAG,WAAW,EAAE;CAMlB"}
1
+ {"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EAEX,WAAW,EACZ,MAAM,YAAY,CAAC;AAgFpB,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAWrD,qBAAa,SAAU,SAAQ,OAAO;IACpC,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAEhD,0CAA0C;IAC1C,OAAO,CAAC,eAAe,CAA+B;IAEtD,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAS;gBAE3C,OAAO,GAAE,gBAAqB;IA+C1C,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,GAAG,IAAI;IAKrD,UAAU,IAAI,WAAW,EAAE;IAI3B,SAAS,IAAI,OAAO;IAMpB,OAAO,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE;IAgB7G,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,2BAA2B;IAmCnC,OAAO,CAAC,kBAAkB;IAU1B,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;YAkBb,cAAc;IAiC5B;;;;;OAKG;YACW,yBAAyB;YA4CzB,cAAc;YAgBd,YAAY;IAS1B;;OAEG;YACW,aAAa;IAuD3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAc1C;;OAEG;YACW,iBAAiB;IAU/B;;;;;;;OAOG;YACW,2BAA2B;IAwDzC;;OAEG;YACW,cAAc;IAuB5B;;OAEG;YACW,eAAe;IAW7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YAcV,qBAAqB;IAoCnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;;;OAOG;YACW,QAAQ;IAMtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;YACW,YAAY;IA0D1B,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;QAC/C,GAAG,EAAE,SAAS,CAAC;QACf,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;KACtC,GAAG,WAAW,EAAE;CAMlB"}
@@ -8,12 +8,11 @@
8
8
  *
9
9
  * 路由(City 自动生成):
10
10
  * - POST /v1/ai/text — 文本生成
11
- * - POST /v1/ai/stream — 流式生成
11
+ * - POST /v1/ai/stream — CityModel LanguageModelV3 模型流
12
12
  * - POST /v1/ai/video — 视频生成
13
13
  * - POST /v1/ai/image/create — 创建图片生成任务
14
14
  * - POST /v1/ai/image/result — 查询图片生成任务
15
15
  * - POST /v1/ai/chat/completions — OpenAI 兼容端点
16
- * - POST /v1/ai/language-model/stream — CityModel 原生 LanguageModelV3 端点
17
16
  * - GET /v1/ai/models — 模型列表
18
17
  */
19
18
  import { Service } from "../service.js";
@@ -24,10 +23,10 @@ import { AIModelRegistry } from "./model-registry.js";
24
23
  import { resolve_text_routing_plan } from "./model-routing.js";
25
24
  import { claim_image_job, finish_image_job_fetch, release_image_job_claim, } from "./image-job-store.js";
26
25
  import { settle_response_charge } from "./charge-runtime.js";
27
- import { create_city_language_model_stream, decode_city_language_model_request, } from "./language-model-stream.js";
26
+ import { create_city_language_model_stream, decode_city_language_model_request, prepare_city_language_model_call, } from "./language-model-stream.js";
28
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";
29
- /** AIService 直接暴露的 SDK 通路模态列表。图片只通过 image/create + image/result 暴露。 */
30
- const MODALITIES = ["text", "stream", "video", "tts", "asr"];
28
+ /** AIService 直接暴露的 action 模态列表。模型流与图片任务使用独立 handler。 */
29
+ const MODALITIES = ["text", "video", "tts", "asr"];
31
30
  /** 用户侧默认以 text 模态排序模型 */
32
31
  const DEFAULT_MODEL_MODE = "text";
33
32
  /** CityModel 原生 LanguageModelV3 运行模式。 */
@@ -42,14 +41,13 @@ const IMAGE_FETCH_ACTION = "image/fetch";
42
41
  const DEFAULT_IMAGE_MAX_PENDING_DURATION_MS = 2 * 60 * 60 * 1000;
43
42
  /** 图片任务 pending 超时错误。 */
44
43
  const IMAGE_PENDING_TIMEOUT_ERROR = "upstream timeout";
45
- /** 判断 Provider runtime 是否返回了可直接调用的 LanguageModelV3。 */
46
- function is_language_model_v3(value) {
44
+ /** 判断 Provider runtime 是否返回了标准模型流结果。 */
45
+ function is_language_model_stream_result(value) {
47
46
  if (!value || typeof value !== "object")
48
47
  return false;
49
- const model = value;
50
- return model.specificationVersion === "v3" &&
51
- typeof model.doStream === "function" &&
52
- typeof model.doGenerate === "function";
48
+ const stream = value.stream;
49
+ return Boolean(stream && typeof stream === "object" && "getReader" in stream &&
50
+ typeof stream.getReader === "function");
53
51
  }
54
52
  export class AIService extends Service {
55
53
  /** 模型注册表 */
@@ -70,6 +68,10 @@ export class AIService extends Service {
70
68
  auth: ["user", "admin"],
71
69
  }).before((ctx) => this.precheck(ctx));
72
70
  }
71
+ // `/stream` 是 CityModel 唯一模型流入口,不经过旧 UIMessage action。
72
+ this.action("stream", async (ctx) => this.handleLanguageModelStream(ctx), {
73
+ auth: ["user", "admin"],
74
+ }).before((ctx) => this.precheck(ctx));
73
75
  // 图片生成的任务式端点。SDK 通过 image_create / image_result 显式访问。
74
76
  this.action("image/create", async (ctx) => this.createImageJob(ctx), {
75
77
  auth: ["user", "admin"],
@@ -84,10 +86,6 @@ export class AIService extends Service {
84
86
  this.action("chat/completions", async (ctx) => this.handleChatCompletions(ctx), {
85
87
  auth: ["user", "admin"],
86
88
  }).before((ctx) => this.precheck(ctx));
87
- // CityModel 原生 LanguageModelV3 endpoint。
88
- this.action("language-model/stream", async (ctx) => this.handleLanguageModelStream(ctx), {
89
- auth: ["user", "admin"],
90
- }).before((ctx) => this.precheck(ctx));
91
89
  // 模型列表走同一路径,根据身份决定可见范围。
92
90
  this.action("models", (ctx) => ({
93
91
  items: AIService.listModels(this, {
@@ -131,7 +129,7 @@ export class AIService extends Service {
131
129
  getAction(model, mode) {
132
130
  if (mode === LANGUAGE_MODEL_MODE) {
133
131
  return model.language_model
134
- ? (ctx) => model.language_model?.create_language_model(ctx)
132
+ ? (ctx) => model.language_model?.stream(ctx, ctx.input.call)
135
133
  : undefined;
136
134
  }
137
135
  if (mode === "image" || IMAGE_ACTION_MODES.includes(mode)) {
@@ -183,6 +181,8 @@ export class AIService extends Service {
183
181
  }
184
182
  getModelModalities(model) {
185
183
  const modalities = Object.keys(model.actions).filter((key) => model.actions[key] !== undefined);
184
+ if (model.language_model && !modalities.includes("stream"))
185
+ modalities.push("stream");
186
186
  if (modalities.includes("image_create") && modalities.includes("image_fetch")) {
187
187
  modalities.push("image");
188
188
  }
@@ -206,7 +206,7 @@ export class AIService extends Service {
206
206
  async handleModality(modality, ctx) {
207
207
  const initial_resolved = this.resolve({ model: this.normalizeModelId(ctx.input.model), mode: modality }, ctx.env);
208
208
  const { resolved, fallback_from, fallback_reason, fallback_media_type } = this.plan_text_execution(initial_resolved, ctx, modality);
209
- const reasoning = resolved.model && (modality === "text" || modality === "stream")
209
+ const reasoning = resolved.model && modality === "text"
210
210
  ? resolve_model_reasoning(resolved.model, ctx.input)
211
211
  : undefined;
212
212
  this.attachResolvedModel(ctx, resolved.model, modality, { fallback_from, fallback_reason, fallback_media_type });
@@ -230,16 +230,18 @@ export class AIService extends Service {
230
230
  }
231
231
  }
232
232
  /**
233
- * 执行 CityModel 原生 LanguageModelV3 调用。
233
+ * 执行 CityModel LanguageModelV3 模型流调用。
234
234
  *
235
- * 路由、fallback、reasoning 和计费仍由 AIService 统一拥有;transport 模块只负责
236
- * 调用最终模型并编码 SSE,避免把 Provider 决策泄漏到客户端。
235
+ * 路由、fallback、reasoning 和计费仍由 AIService 统一拥有;Provider 负责执行
236
+ * 标准模型流,transport 模块只编码 SSE,避免把 Provider 决策泄漏到客户端。
237
237
  */
238
238
  async handleLanguageModelStream(ctx) {
239
239
  const request = decode_city_language_model_request(ctx.input);
240
+ const call = prepare_city_language_model_call(request.call, ctx.request?.signal);
240
241
  ctx.input = {
241
242
  ...ctx.input,
242
243
  model: request.model_id,
244
+ call,
243
245
  ...(request.reasoning_effort ? { reasoning_effort: request.reasoning_effort } : {}),
244
246
  };
245
247
  const initial_resolved = this.resolve({ model: request.model_id, mode: LANGUAGE_MODEL_MODE }, ctx.env);
@@ -250,15 +252,11 @@ export class AIService extends Service {
250
252
  attach_resolved_reasoning(ctx, reasoning);
251
253
  const started_at = Date.now();
252
254
  const output = await resolved.action(ctx);
253
- if (!is_language_model_v3(output)) {
254
- throw httpError(500, "Model language runtime did not return LanguageModelV3");
255
+ if (!is_language_model_stream_result(output)) {
256
+ throw httpError(500, "Provider stream did not return a LanguageModelV3 stream result");
255
257
  }
256
- const provider_options = resolved.model?.language_model?.build_provider_options?.(ctx, output);
257
- const execution = await create_city_language_model_stream({
258
- model: output,
259
- call: request.call,
260
- provider_options,
261
- signal: ctx.request?.signal,
258
+ const execution = create_city_language_model_stream({
259
+ result: output,
262
260
  });
263
261
  const completion = execution.completion.then((part) => {
264
262
  if (part)