@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.
- package/README.md +89 -13
- package/bin/client/bureau.d.ts +41 -0
- package/bin/client/bureau.d.ts.map +1 -0
- package/bin/client/bureau.js +240 -0
- package/bin/client/bureau.js.map +1 -0
- package/bin/client/city.d.ts +15 -79
- package/bin/client/city.d.ts.map +1 -1
- package/bin/client/city.js +15 -99
- package/bin/client/city.js.map +1 -1
- package/bin/client/federation-admin.d.ts +32 -0
- package/bin/client/federation-admin.d.ts.map +1 -0
- package/bin/client/federation-admin.js +54 -0
- package/bin/client/federation-admin.js.map +1 -0
- package/bin/client/types.d.ts +10 -70
- package/bin/client/types.d.ts.map +1 -1
- package/bin/client/types.js +3 -3
- package/bin/federation/auth/authenticator.d.ts +17 -13
- package/bin/federation/auth/authenticator.d.ts.map +1 -1
- package/bin/federation/auth/authenticator.js +38 -27
- package/bin/federation/auth/authenticator.js.map +1 -1
- package/bin/federation/auth/bureau-token-schema.d.ts +274 -0
- package/bin/federation/auth/bureau-token-schema.d.ts.map +1 -0
- package/bin/federation/auth/bureau-token-schema.js +43 -0
- package/bin/federation/auth/bureau-token-schema.js.map +1 -0
- package/bin/federation/auth/bureau-token-store.d.ts +22 -0
- package/bin/federation/auth/bureau-token-store.d.ts.map +1 -0
- package/bin/federation/auth/bureau-token-store.js +122 -0
- package/bin/federation/auth/bureau-token-store.js.map +1 -0
- package/bin/federation/auth/federation-key-store.d.ts +26 -0
- package/bin/federation/auth/federation-key-store.d.ts.map +1 -0
- package/bin/federation/auth/federation-key-store.js +96 -0
- package/bin/federation/auth/federation-key-store.js.map +1 -0
- package/bin/federation/auth/key-schema.d.ts +275 -0
- package/bin/federation/auth/key-schema.d.ts.map +1 -0
- package/bin/federation/auth/key-schema.js +44 -0
- package/bin/federation/auth/key-schema.js.map +1 -0
- package/bin/federation/auth/types.d.ts +62 -4
- package/bin/federation/auth/types.d.ts.map +1 -1
- package/bin/federation/auth/user-token-authority.d.ts +26 -0
- package/bin/federation/auth/user-token-authority.d.ts.map +1 -0
- package/bin/federation/auth/user-token-authority.js +179 -0
- package/bin/federation/auth/user-token-authority.js.map +1 -0
- package/bin/federation/federation-init.d.ts.map +1 -1
- package/bin/federation/federation-init.js +23 -4
- package/bin/federation/federation-init.js.map +1 -1
- package/bin/federation/federation-router.d.ts +3 -1
- package/bin/federation/federation-router.d.ts.map +1 -1
- package/bin/federation/federation-router.js +17 -0
- package/bin/federation/federation-router.js.map +1 -1
- package/bin/federation/federation-runtime.d.ts.map +1 -1
- package/bin/federation/federation-runtime.js +14 -2
- package/bin/federation/federation-runtime.js.map +1 -1
- package/bin/federation/federation.d.ts.map +1 -1
- package/bin/federation/federation.js +2 -0
- package/bin/federation/federation.js.map +1 -1
- package/bin/federation/runtime.d.ts +4 -0
- package/bin/federation/runtime.d.ts.map +1 -1
- package/bin/index.d.ts +11 -10
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +5 -3
- package/bin/index.js.map +1 -1
- package/bin/pact/admin/index.d.ts +7 -19
- package/bin/pact/admin/index.d.ts.map +1 -1
- package/bin/pact/admin/index.js +10 -18
- package/bin/pact/admin/index.js.map +1 -1
- package/bin/pact/admin/types.d.ts +4 -10
- package/bin/pact/admin/types.d.ts.map +1 -1
- package/bin/pact/invoker/ai/CityModel.d.ts +1 -1
- package/bin/pact/invoker/ai/CityModel.d.ts.map +1 -1
- package/bin/pact/invoker/ai/CityModel.js +3 -65
- package/bin/pact/invoker/ai/CityModel.js.map +1 -1
- package/bin/pact/invoker/ai/types.d.ts +1 -1
- package/bin/pact/invoker/ai/types.js +1 -1
- package/bin/pact/invoker/bureaus/index.d.ts +25 -0
- package/bin/pact/invoker/bureaus/index.d.ts.map +1 -0
- package/bin/pact/invoker/bureaus/index.js +36 -0
- package/bin/pact/invoker/bureaus/index.js.map +1 -0
- package/bin/pact/invoker/cities/types.d.ts +2 -2
- package/bin/pact/invoker/cities/types.d.ts.map +1 -1
- package/bin/pact/invoker/user/index.d.ts +19 -0
- package/bin/pact/invoker/user/index.d.ts.map +1 -0
- package/bin/pact/invoker/user/index.js +24 -0
- package/bin/pact/invoker/user/index.js.map +1 -0
- package/bin/pact/user/index.d.ts +2 -1
- package/bin/pact/user/index.d.ts.map +1 -1
- package/bin/pact/user/index.js +7 -3
- package/bin/pact/user/index.js.map +1 -1
- package/bin/pact/user/types.d.ts +11 -6
- package/bin/pact/user/types.d.ts.map +1 -1
- package/bin/service/ai/AIChannel.d.ts +57 -0
- package/bin/service/ai/AIChannel.d.ts.map +1 -0
- package/bin/service/ai/AIChannel.js +151 -0
- package/bin/service/ai/AIChannel.js.map +1 -0
- package/bin/service/ai/OpenAIChatCompletionsAdapter.d.ts +23 -0
- package/bin/service/ai/OpenAIChatCompletionsAdapter.d.ts.map +1 -0
- package/bin/service/ai/OpenAIChatCompletionsAdapter.js +503 -0
- package/bin/service/ai/OpenAIChatCompletionsAdapter.js.map +1 -0
- package/bin/service/ai/ai-service-values.d.ts +16 -19
- package/bin/service/ai/ai-service-values.d.ts.map +1 -1
- package/bin/service/ai/ai-service-values.js +9 -13
- package/bin/service/ai/ai-service-values.js.map +1 -1
- package/bin/service/ai/ai-service.d.ts +16 -15
- package/bin/service/ai/ai-service.d.ts.map +1 -1
- package/bin/service/ai/ai-service.js +97 -106
- package/bin/service/ai/ai-service.js.map +1 -1
- package/bin/service/ai/helpers.d.ts +8 -35
- package/bin/service/ai/helpers.d.ts.map +1 -1
- package/bin/service/ai/helpers.js +8 -140
- package/bin/service/ai/helpers.js.map +1 -1
- package/bin/service/ai/image-job-store.d.ts +2 -3
- package/bin/service/ai/image-job-store.d.ts.map +1 -1
- package/bin/service/ai/image-job-store.js.map +1 -1
- package/bin/service/ai/language-model-stream.d.ts +9 -4
- package/bin/service/ai/language-model-stream.d.ts.map +1 -1
- package/bin/service/ai/language-model-stream.js +8 -4
- package/bin/service/ai/language-model-stream.js.map +1 -1
- package/bin/service/ai/language-model-text.d.ts +15 -0
- package/bin/service/ai/language-model-text.d.ts.map +1 -0
- package/bin/service/ai/language-model-text.js +67 -0
- package/bin/service/ai/language-model-text.js.map +1 -0
- package/bin/service/ai/model-context-window.d.ts +2 -2
- package/bin/service/ai/model-context-window.d.ts.map +1 -1
- package/bin/service/ai/model-context-window.js.map +1 -1
- package/bin/service/ai/model-registry.d.ts +9 -8
- package/bin/service/ai/model-registry.d.ts.map +1 -1
- package/bin/service/ai/model-registry.js +1 -5
- package/bin/service/ai/model-registry.js.map +1 -1
- package/bin/service/ai/model-routing.d.ts +1 -1
- package/bin/service/ai/model-routing.d.ts.map +1 -1
- package/bin/service/ai/model-routing.js +1 -1
- package/bin/service/ai/model-routing.js.map +1 -1
- package/bin/service/ai/reasoning.d.ts +4 -4
- package/bin/service/ai/reasoning.d.ts.map +1 -1
- package/bin/service/ai/reasoning.js.map +1 -1
- package/bin/service/bureaus/bureaus-service.d.ts +15 -0
- package/bin/service/bureaus/bureaus-service.d.ts.map +1 -0
- package/bin/service/bureaus/bureaus-service.js +55 -0
- package/bin/service/bureaus/bureaus-service.js.map +1 -0
- package/bin/service/installable-service.d.ts +5 -2
- package/bin/service/installable-service.d.ts.map +1 -1
- package/bin/service/installable-service.js +1 -0
- package/bin/service/installable-service.js.map +1 -1
- package/bin/service/instruction.js +1 -1
- package/bin/service/instruction.js.map +1 -1
- package/bin/service/service.d.ts +15 -2
- package/bin/service/service.d.ts.map +1 -1
- package/bin/service/service.js +2 -0
- package/bin/service/service.js.map +1 -1
- package/bin/types/AI.d.ts +289 -0
- package/bin/types/AI.d.ts.map +1 -0
- package/bin/types/AI.js +8 -0
- package/bin/types/AI.js.map +1 -0
- package/bin/types/AITransport.d.ts +251 -0
- package/bin/types/AITransport.d.ts.map +1 -0
- package/bin/types/AITransport.js +12 -0
- package/bin/types/AITransport.js.map +1 -0
- package/bin/types/Bureau.d.ts +96 -0
- package/bin/types/Bureau.d.ts.map +1 -0
- package/bin/types/Bureau.js +8 -0
- package/bin/types/Bureau.js.map +1 -0
- package/bin/types/FederationAdmin.d.ts +16 -0
- package/bin/types/FederationAdmin.d.ts.map +1 -0
- package/bin/types/FederationAdmin.js +7 -0
- package/bin/types/FederationAdmin.js.map +1 -0
- package/bin/types/Metering.d.ts +2 -2
- package/bin/types/Metering.d.ts.map +1 -1
- package/bin/types/User.d.ts +24 -0
- package/bin/types/User.d.ts.map +1 -0
- package/bin/types/User.js +8 -0
- package/bin/types/User.js.map +1 -0
- package/bin/utils/CityLanguageModelCodec.d.ts +1 -1
- package/bin/utils/CityLanguageModelCodec.d.ts.map +1 -1
- package/bin/utils/CityLanguageModelResult.d.ts +11 -0
- package/bin/utils/CityLanguageModelResult.d.ts.map +1 -0
- package/bin/utils/CityLanguageModelResult.js +76 -0
- package/bin/utils/CityLanguageModelResult.js.map +1 -0
- package/package.json +4 -3
- package/bin/federation/auth/token-signer.d.ts +0 -27
- package/bin/federation/auth/token-signer.d.ts.map +0 -1
- package/bin/federation/auth/token-signer.js +0 -116
- package/bin/federation/auth/token-signer.js.map +0 -1
- package/bin/service/ai/charge.d.ts +0 -76
- package/bin/service/ai/charge.d.ts.map +0 -1
- package/bin/service/ai/charge.js +0 -10
- package/bin/service/ai/charge.js.map +0 -1
- package/bin/service/ai/job-types.d.ts +0 -69
- package/bin/service/ai/job-types.d.ts.map +0 -1
- package/bin/service/ai/job-types.js +0 -9
- package/bin/service/ai/job-types.js.map +0 -1
- package/bin/service/ai/provider.d.ts +0 -143
- package/bin/service/ai/provider.d.ts.map +0 -1
- package/bin/service/ai/provider.js +0 -221
- package/bin/service/ai/provider.js.map +0 -1
- package/bin/service/ai/types.d.ts +0 -174
- package/bin/service/ai/types.d.ts.map +0 -1
- package/bin/service/ai/types.js +0 -7
- package/bin/service/ai/types.js.map +0 -1
- package/bin/types/AIImageJobClaim.d.ts +0 -14
- package/bin/types/AIImageJobClaim.d.ts.map +0 -1
- package/bin/types/AIImageJobClaim.js +0 -7
- package/bin/types/AIImageJobClaim.js.map +0 -1
- package/bin/types/AIReasoning.d.ts +0 -25
- package/bin/types/AIReasoning.d.ts.map +0 -1
- package/bin/types/AIReasoning.js +0 -7
- package/bin/types/AIReasoning.js.map +0 -1
- package/bin/types/AIRouting.d.ts +0 -37
- package/bin/types/AIRouting.d.ts.map +0 -1
- package/bin/types/AIRouting.js +0 -7
- package/bin/types/AIRouting.js.map +0 -1
- package/bin/types/CityLanguageModelRuntime.d.ts +0 -46
- package/bin/types/CityLanguageModelRuntime.d.ts.map +0 -1
- package/bin/types/CityLanguageModelRuntime.js +0 -8
- package/bin/types/CityLanguageModelRuntime.js.map +0 -1
- package/bin/types/CityLanguageModelTransport.d.ts +0 -49
- package/bin/types/CityLanguageModelTransport.d.ts.map +0 -1
- package/bin/types/CityLanguageModelTransport.js +0 -9
- package/bin/types/CityLanguageModelTransport.js.map +0 -1
- package/bin/types/CityModelRuntime.d.ts +0 -17
- package/bin/types/CityModelRuntime.d.ts.map +0 -1
- package/bin/types/CityModelRuntime.js +0 -8
- package/bin/types/CityModelRuntime.js.map +0 -1
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* City AI 领域类型模块。
|
|
3
|
+
*
|
|
4
|
+
* 本模块集中定义 AIChannel、模型、计费、图片任务以及内部路由类型。
|
|
5
|
+
* 公共入口只导出用户配置和 Channel 实现所需的最小类型集合。
|
|
6
|
+
*/
|
|
7
|
+
import type { LanguageModel, UIMessage } from "ai";
|
|
8
|
+
import type { CityModelEnvRequirement, CityModelReasoning } from "@downcity/type";
|
|
9
|
+
import type { ActionFn } from "../service/action.js";
|
|
10
|
+
import type { Context } from "../service/service.js";
|
|
11
|
+
import type { AsyncJobRecord } from "./AsyncJob.js";
|
|
12
|
+
import type { RuntimeMetering } from "./Metering.js";
|
|
13
|
+
/** AI SDK LanguageModelV3。 */
|
|
14
|
+
export type LanguageModelV3 = Extract<LanguageModel, {
|
|
15
|
+
readonly specificationVersion: "v3";
|
|
16
|
+
}>;
|
|
17
|
+
/** LanguageModelV3 的标准调用参数。 */
|
|
18
|
+
export type LanguageModelV3CallOptions = Parameters<LanguageModelV3["doStream"]>[0];
|
|
19
|
+
/** LanguageModelV3 的标准流结果。 */
|
|
20
|
+
export type LanguageModelV3StreamResult = Awaited<ReturnType<LanguageModelV3["doStream"]>>;
|
|
21
|
+
/** LanguageModelV3 的标准流事件,仅供 City 内部 transport 使用。 */
|
|
22
|
+
export type LanguageModelV3StreamPart = LanguageModelV3StreamResult["stream"] extends ReadableStream<infer Part> ? Part : never;
|
|
23
|
+
/** LanguageModelV3 的标准非流式结果,仅供 City 内部聚合使用。 */
|
|
24
|
+
export type LanguageModelV3GenerateResult = Awaited<ReturnType<LanguageModelV3["doGenerate"]>>;
|
|
25
|
+
/** AI SDK 按 Provider ID 分组的服务端私有调用选项。 */
|
|
26
|
+
export type AISDKProviderOptions = NonNullable<LanguageModelV3CallOptions["providerOptions"]>;
|
|
27
|
+
/** AIService 已校验的推理强度。 */
|
|
28
|
+
export interface AIResolvedReasoning {
|
|
29
|
+
/** 最终模型接受的推理强度档位 ID。 */
|
|
30
|
+
effort: string;
|
|
31
|
+
/** 档位来自调用方请求还是模型默认配置。 */
|
|
32
|
+
source: "request" | "default";
|
|
33
|
+
}
|
|
34
|
+
/** AIChannel 构造参数。 */
|
|
35
|
+
export interface AIChannelOptions {
|
|
36
|
+
/** Federation 中的 Channel 唯一 ID。 */
|
|
37
|
+
id: string;
|
|
38
|
+
/** Channel 所需环境变量及管理员说明。 */
|
|
39
|
+
env?: Record<string, string>;
|
|
40
|
+
/** 上游 API 根地址,由 Channel 子类显式使用。 */
|
|
41
|
+
base_url?: string;
|
|
42
|
+
/** Channel 默认 API Key 对应的 Federation env key。 */
|
|
43
|
+
env_key?: string;
|
|
44
|
+
/** reasoning 映射使用的 AI SDK providerOptions 命名空间。 */
|
|
45
|
+
ai_sdk_provider_id?: string;
|
|
46
|
+
/** Channel 下所有模型共享的 AI SDK providerOptions 默认值。 */
|
|
47
|
+
ai_sdk_provider_options?: AISDKProviderOptions;
|
|
48
|
+
}
|
|
49
|
+
/** AIService 已解析完成、可供 Channel 执行的模型身份。 */
|
|
50
|
+
export interface AIChannelModel {
|
|
51
|
+
/** Federation 对外模型 ID。 */
|
|
52
|
+
readonly id: string;
|
|
53
|
+
/** 真实上游模型 ID。 */
|
|
54
|
+
readonly upstream_model: string;
|
|
55
|
+
}
|
|
56
|
+
/** AIChannel 语言执行时可读取的显式输入。 */
|
|
57
|
+
export interface AIChannelStreamInput {
|
|
58
|
+
/** 已移除客户端私有选项并注入服务端 providerOptions 的标准调用。 */
|
|
59
|
+
readonly call: LanguageModelV3CallOptions;
|
|
60
|
+
/** AIService 已解析完成的最终模型。 */
|
|
61
|
+
readonly model: AIChannelModel;
|
|
62
|
+
/** 读取 Federation 服务端环境变量。 */
|
|
63
|
+
readonly env: (key: string) => string | undefined;
|
|
64
|
+
/** AIService 已校验的可选 reasoning。 */
|
|
65
|
+
readonly reasoning?: AIResolvedReasoning;
|
|
66
|
+
}
|
|
67
|
+
/** AIChannel 非语言 action 可读取的显式输入。 */
|
|
68
|
+
export interface AIChannelActionInput {
|
|
69
|
+
/** 当前 action 的业务输入。 */
|
|
70
|
+
readonly input: Record<string, unknown>;
|
|
71
|
+
/** AIService 已解析完成的最终模型。 */
|
|
72
|
+
readonly model: AIChannelModel;
|
|
73
|
+
/** 读取 Federation 服务端环境变量。 */
|
|
74
|
+
readonly env: (key: string) => string | undefined;
|
|
75
|
+
/** 当前请求的可选用户 ID。 */
|
|
76
|
+
readonly user_id?: string;
|
|
77
|
+
/** 当前请求所属的可选 City ID。 */
|
|
78
|
+
readonly city_id?: string;
|
|
79
|
+
/** 图片抓取 action 可读取的异步任务上下文。 */
|
|
80
|
+
readonly image_job?: AIImageJobContext;
|
|
81
|
+
}
|
|
82
|
+
/** fallback 匹配时使用的媒体信息。 */
|
|
83
|
+
export interface AIModelFallbackMedia {
|
|
84
|
+
/** file part 的 IANA 媒体类型。 */
|
|
85
|
+
media_type: string;
|
|
86
|
+
/** 输入文件名。 */
|
|
87
|
+
filename?: string;
|
|
88
|
+
/** 输入文件 URL 或 Data URL。 */
|
|
89
|
+
url?: string;
|
|
90
|
+
}
|
|
91
|
+
/** 模型级媒体 fallback 规则。 */
|
|
92
|
+
export interface AIModelFallbackRule {
|
|
93
|
+
/** 判断当前媒体是否命中规则。 */
|
|
94
|
+
match: (media: AIModelFallbackMedia) => boolean;
|
|
95
|
+
/** fallback 目标 Federation 模型 ID。 */
|
|
96
|
+
model_id: string;
|
|
97
|
+
}
|
|
98
|
+
/** AIChannel.model() 接收的模型声明。 */
|
|
99
|
+
export interface AIModelSpec {
|
|
100
|
+
/** Federation 模型目录中的唯一 ID。 */
|
|
101
|
+
id: string;
|
|
102
|
+
/** 真实上游模型 ID,不向普通客户端公开。 */
|
|
103
|
+
upstream_model: string;
|
|
104
|
+
/** 面向用户展示的模型名称。 */
|
|
105
|
+
name: string;
|
|
106
|
+
/** 面向用户展示的模型说明。 */
|
|
107
|
+
description?: string;
|
|
108
|
+
/** 模型支持的总上下文窗口,单位为 token。 */
|
|
109
|
+
context_window?: number;
|
|
110
|
+
/** 模型目录标签。 */
|
|
111
|
+
tags?: string[];
|
|
112
|
+
/** 面向用户展示的价格说明列表,不参与实际扣费。 */
|
|
113
|
+
price?: string[];
|
|
114
|
+
/** 不公开给客户端的模型级 AI SDK providerOptions。 */
|
|
115
|
+
ai_sdk_provider_options?: AISDKProviderOptions;
|
|
116
|
+
/** 可公开给客户端的模型扩展信息。 */
|
|
117
|
+
meta?: Record<string, unknown>;
|
|
118
|
+
/** 模型公开的 reasoning 能力。 */
|
|
119
|
+
reasoning?: CityModelReasoning;
|
|
120
|
+
/** 模型级媒体 fallback 规则。 */
|
|
121
|
+
fallback?: AIModelFallbackRule[];
|
|
122
|
+
/** 模型成功执行后的账单草稿生成函数。 */
|
|
123
|
+
bill?: AIBill;
|
|
124
|
+
}
|
|
125
|
+
/** Channel 语言模型执行函数。 */
|
|
126
|
+
export type AIModelStream = (ctx: Context, call: LanguageModelV3CallOptions) => Promise<LanguageModelV3StreamResult>;
|
|
127
|
+
/** 非语言模型 action 映射。 */
|
|
128
|
+
export interface AIModelActions {
|
|
129
|
+
/** 由 AIModelStream 自动派生的 text action。 */
|
|
130
|
+
text?: ActionFn;
|
|
131
|
+
/** 图片任务创建 action。 */
|
|
132
|
+
image_create?: ActionFn;
|
|
133
|
+
/** 图片任务抓取 action。 */
|
|
134
|
+
image_fetch?: ActionFn;
|
|
135
|
+
/** 图片任务查询 action。 */
|
|
136
|
+
image_result?: ActionFn;
|
|
137
|
+
/** 视频生成 action。 */
|
|
138
|
+
video?: ActionFn;
|
|
139
|
+
/** 语音合成 action。 */
|
|
140
|
+
tts?: ActionFn;
|
|
141
|
+
/** 语音识别 action。 */
|
|
142
|
+
asr?: ActionFn;
|
|
143
|
+
/** 扩展 modality action。 */
|
|
144
|
+
[modality: string]: ActionFn | undefined;
|
|
145
|
+
}
|
|
146
|
+
/** AIService 执行模型所需的内部运行时。 */
|
|
147
|
+
export interface AIModelRuntime {
|
|
148
|
+
/** 可选的标准语言模型流入口。 */
|
|
149
|
+
stream?: AIModelStream;
|
|
150
|
+
/** 图片、视频、TTS、ASR 等 action。 */
|
|
151
|
+
actions: AIModelActions;
|
|
152
|
+
}
|
|
153
|
+
/** Federation 内部已注册、可路由、可执行的模型定义。 */
|
|
154
|
+
export interface AIModelDefinition extends Omit<AIModelSpec, "ai_sdk_provider_options"> {
|
|
155
|
+
/** 当前模型所属 AIChannel ID。 */
|
|
156
|
+
channel_id: string;
|
|
157
|
+
/** 当前模型所需的 Federation 环境变量。 */
|
|
158
|
+
env?: Record<string, string>;
|
|
159
|
+
/** 当前模型的服务端执行运行时。 */
|
|
160
|
+
runtime: AIModelRuntime;
|
|
161
|
+
}
|
|
162
|
+
/** AI 模型环境变量需求。 */
|
|
163
|
+
export type AIModelEnvRequirement = CityModelEnvRequirement;
|
|
164
|
+
/** AIService 配置。 */
|
|
165
|
+
export interface AIServiceOptions {
|
|
166
|
+
/** AI 专用余额桥接。 */
|
|
167
|
+
balance?: AIBalanceBridge;
|
|
168
|
+
/** 图片异步任务允许保持 queued/running 的最长时间,单位毫秒。 */
|
|
169
|
+
image_max_pending_duration_ms?: number;
|
|
170
|
+
}
|
|
171
|
+
/** AIChannel 计算出的单次扣费结果。 */
|
|
172
|
+
export interface AICharge {
|
|
173
|
+
/** 可选扣费用户 ID。 */
|
|
174
|
+
user_id?: string;
|
|
175
|
+
/** 扣费额度,单位为 credits。 */
|
|
176
|
+
credits: number;
|
|
177
|
+
/** 账单说明。 */
|
|
178
|
+
note?: string;
|
|
179
|
+
/** 外部引用 ID。 */
|
|
180
|
+
ref?: string;
|
|
181
|
+
/** 内部审计信息。 */
|
|
182
|
+
metadata?: Record<string, unknown>;
|
|
183
|
+
}
|
|
184
|
+
/** AIService 提交给外部 Balance bridge 的扣费输入。 */
|
|
185
|
+
export interface AIBalanceChargeInput extends AICharge {
|
|
186
|
+
/** 当前用户 ID。 */
|
|
187
|
+
user_id: string;
|
|
188
|
+
/** 相同键的重复提交必须只产生一次扣费。 */
|
|
189
|
+
idempotency_key?: string;
|
|
190
|
+
}
|
|
191
|
+
/** AIService 依赖的最小 Balance bridge。 */
|
|
192
|
+
export interface AIBalanceBridge {
|
|
193
|
+
/** 执行余额前置检查。 */
|
|
194
|
+
precheck?(user_id: string, needed_credits?: number): Promise<{
|
|
195
|
+
credits: number;
|
|
196
|
+
}>;
|
|
197
|
+
/** 执行扣费并记录账单。 */
|
|
198
|
+
charge(input: AIBalanceChargeInput): Promise<unknown>;
|
|
199
|
+
}
|
|
200
|
+
/** Channel 或模型生成账单时可读取的显式输入。 */
|
|
201
|
+
export interface AIBillInput {
|
|
202
|
+
/** 本次模型执行的最终输出。 */
|
|
203
|
+
readonly output: unknown;
|
|
204
|
+
/** AIService 已解析完成的最终模型。 */
|
|
205
|
+
readonly model: AIChannelModel;
|
|
206
|
+
/** AIService 已归一化的可选计量信息。 */
|
|
207
|
+
readonly metering?: RuntimeMetering;
|
|
208
|
+
/** 当前请求的可选用户 ID。 */
|
|
209
|
+
readonly user_id?: string;
|
|
210
|
+
/** 当前请求所属的可选 City ID。 */
|
|
211
|
+
readonly city_id?: string;
|
|
212
|
+
}
|
|
213
|
+
/** Channel 或模型生成扣费行的方法。 */
|
|
214
|
+
export type AIBill = (input: AIBillInput) => AICharge | Promise<AICharge | undefined> | undefined;
|
|
215
|
+
/** AIChannel action 返回的统一带计费结果。 */
|
|
216
|
+
export interface AIChargedResult<T = unknown> {
|
|
217
|
+
/** 对外返回的 action 输出。 */
|
|
218
|
+
output: T;
|
|
219
|
+
/** AIChannel 已计算好的可选扣费结果。 */
|
|
220
|
+
charge?: AICharge | Promise<AICharge | undefined>;
|
|
221
|
+
}
|
|
222
|
+
/** 图片任务状态。 */
|
|
223
|
+
export type AIImageStatus = "queued" | "running" | "succeeded" | "failed";
|
|
224
|
+
/** image_create 返回的固定协议。 */
|
|
225
|
+
export interface AIImageCreateResult {
|
|
226
|
+
/** 图片任务 ID。 */
|
|
227
|
+
job_id: string;
|
|
228
|
+
/** 创建后的任务状态。 */
|
|
229
|
+
status: AIImageStatus;
|
|
230
|
+
/** 当前任务状态说明。 */
|
|
231
|
+
message?: string;
|
|
232
|
+
/** 失败时返回的错误消息。 */
|
|
233
|
+
error?: string;
|
|
234
|
+
/** 建议下一次查询结果的间隔毫秒数。 */
|
|
235
|
+
poll_after_ms?: number;
|
|
236
|
+
/** 上游扩展元数据。 */
|
|
237
|
+
metadata?: Record<string, unknown>;
|
|
238
|
+
}
|
|
239
|
+
/** image_fetch 与 image_result 共用的固定协议。 */
|
|
240
|
+
export interface AIImageResult extends AIImageCreateResult {
|
|
241
|
+
/** 成功时返回的 AI SDK UIMessage。 */
|
|
242
|
+
result?: UIMessage;
|
|
243
|
+
}
|
|
244
|
+
/** AIChannel 在 image_fetch 中可读取的图片任务上下文。 */
|
|
245
|
+
export interface AIImageJobContext {
|
|
246
|
+
/** async_jobs 中保存的完整任务记录。 */
|
|
247
|
+
record: AsyncJobRecord;
|
|
248
|
+
/** image_create 时的原始输入。 */
|
|
249
|
+
input: Record<string, unknown>;
|
|
250
|
+
/** image_create 或 image_fetch 返回的上游状态。 */
|
|
251
|
+
state?: Record<string, unknown>;
|
|
252
|
+
}
|
|
253
|
+
/** 已被当前 worker 原子领取的图片任务。 */
|
|
254
|
+
export interface AIImageJobClaim {
|
|
255
|
+
/** 进入 fetching 状态后的完整任务记录。 */
|
|
256
|
+
record: AsyncJobRecord;
|
|
257
|
+
/** 本次领取写入的时间戳,也是后续 CAS 的所有权令牌。 */
|
|
258
|
+
claimed_at: string;
|
|
259
|
+
}
|
|
260
|
+
/** 已解析的模型 action。 */
|
|
261
|
+
export interface AIResolvedAction {
|
|
262
|
+
/** 本次 action 绑定的最终模型定义。 */
|
|
263
|
+
model?: AIModelDefinition;
|
|
264
|
+
/** 本次请求实际执行的 Channel action。 */
|
|
265
|
+
action: ActionFn;
|
|
266
|
+
}
|
|
267
|
+
/** 模型发生 fallback 的标准原因。 */
|
|
268
|
+
export type AIRoutingFallbackReason = "input_requires_media";
|
|
269
|
+
/** 最终模型路由计划。 */
|
|
270
|
+
export interface AIResolvedRoutingPlan {
|
|
271
|
+
/** 最终执行的模型和 action。 */
|
|
272
|
+
resolved: AIResolvedAction;
|
|
273
|
+
/** 发生 fallback 时的原模型 ID。 */
|
|
274
|
+
fallback_from?: string;
|
|
275
|
+
/** 发生 fallback 时的标准原因。 */
|
|
276
|
+
fallback_reason?: AIRoutingFallbackReason;
|
|
277
|
+
/** 触发 fallback 的媒体类型。 */
|
|
278
|
+
fallback_media_type?: string;
|
|
279
|
+
}
|
|
280
|
+
/** 媒体 fallback 路由访问模型注册表所需的能力。 */
|
|
281
|
+
export interface AIModelRoutingAdapter {
|
|
282
|
+
/** 解析 fallback 目标模型 ID。 */
|
|
283
|
+
resolve_model(model_id: string): AIModelDefinition | undefined;
|
|
284
|
+
/** 解析目标模型在指定通路下的 action。 */
|
|
285
|
+
resolve_action(model: AIModelDefinition, mode: string): ActionFn | undefined;
|
|
286
|
+
/** 判断目标模型当前是否满足运行条件。 */
|
|
287
|
+
is_available(model: AIModelDefinition): boolean;
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=AI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AI.d.ts","sourceRoot":"","sources":["../../src/types/AI.ts"],"names":[],"mappings":"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"}
|
package/bin/types/AI.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AI.js","sourceRoot":"","sources":["../../src/types/AI.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* City AI transport 内部类型模块。
|
|
3
|
+
*
|
|
4
|
+
* 本模块只服务于 CityModel transport、text 输入转换和 OpenAI HTTP adapter,
|
|
5
|
+
* 不从 @downcity/city 公共入口导出。
|
|
6
|
+
*/
|
|
7
|
+
import type { ModelMessage, ToolSet, UIMessage } from "ai";
|
|
8
|
+
import type { FetchResponseLike } from "../pact/http.js";
|
|
9
|
+
import type { CityModelDescriptor } from "@downcity/type";
|
|
10
|
+
import type { LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamPart, LanguageModelV3StreamResult } from "./AI.js";
|
|
11
|
+
/** City Language Model transport v1 的固定协议标识。 */
|
|
12
|
+
export declare const CITY_LANGUAGE_MODEL_PROTOCOL_V1: "downcity-language-model-v1";
|
|
13
|
+
/** City transport JSON 原始值。 */
|
|
14
|
+
export type CityTransportJsonPrimitive = string | number | boolean | null;
|
|
15
|
+
/** City transport JSON 对象。 */
|
|
16
|
+
export interface CityTransportJsonObject {
|
|
17
|
+
/** JSON 对象字段。 */
|
|
18
|
+
[key: string]: CityTransportJsonValue;
|
|
19
|
+
}
|
|
20
|
+
/** City transport 支持的完整 JSON 值。 */
|
|
21
|
+
export type CityTransportJsonValue = CityTransportJsonPrimitive | CityTransportJsonObject | CityTransportJsonValue[];
|
|
22
|
+
/** CityModel 发给 Federation 的标准模型调用。 */
|
|
23
|
+
export interface CityLanguageModelStreamRequestV1 {
|
|
24
|
+
/** 固定协议版本。 */
|
|
25
|
+
protocol: typeof CITY_LANGUAGE_MODEL_PROTOCOL_V1;
|
|
26
|
+
/** Federation 模型目录中的模型 ID。 */
|
|
27
|
+
model_id: string;
|
|
28
|
+
/** JSON 编码后的 LanguageModelV3CallOptions。 */
|
|
29
|
+
call: CityTransportJsonObject;
|
|
30
|
+
/** 用户显式选择的 Downcity 推理强度。 */
|
|
31
|
+
reasoning_effort?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Federation 通过 SSE 返回的标准模型流事件。 */
|
|
34
|
+
export interface CityLanguageModelStreamEventV1 {
|
|
35
|
+
/** 固定协议版本。 */
|
|
36
|
+
protocol: typeof CITY_LANGUAGE_MODEL_PROTOCOL_V1;
|
|
37
|
+
/** JSON 编码后的 LanguageModelV3StreamPart。 */
|
|
38
|
+
part: CityTransportJsonObject;
|
|
39
|
+
}
|
|
40
|
+
/** 已校验并解码的 CityModel transport 请求。 */
|
|
41
|
+
export interface DecodedCityLanguageModelRequest {
|
|
42
|
+
/** Federation 模型目录中的模型 ID。 */
|
|
43
|
+
model_id: string;
|
|
44
|
+
/** 解码后的标准 LanguageModelV3 调用参数。 */
|
|
45
|
+
call: LanguageModelV3CallOptions;
|
|
46
|
+
/** 用户显式选择的推理强度。 */
|
|
47
|
+
reasoning_effort?: string;
|
|
48
|
+
}
|
|
49
|
+
/** 供运行时校验的原始 CityModel transport 请求。 */
|
|
50
|
+
export type RawCityLanguageModelRequest = CityLanguageModelStreamRequestV1 | Record<string, unknown>;
|
|
51
|
+
/** 创建 Federation SSE 响应所需的输入。 */
|
|
52
|
+
export interface CreateCityLanguageModelStreamInput {
|
|
53
|
+
/** 最终 AIChannel stream 返回的标准 LanguageModelV3 流结果。 */
|
|
54
|
+
result: LanguageModelV3StreamResult;
|
|
55
|
+
}
|
|
56
|
+
/** Federation SSE 响应及其最终完成事件。 */
|
|
57
|
+
export interface CityLanguageModelStreamExecution {
|
|
58
|
+
/** 返回给 CityModel 客户端的 SSE Response。 */
|
|
59
|
+
response: Response;
|
|
60
|
+
/** 流结束后的 finish 事件;异常或取消时为空。 */
|
|
61
|
+
completion: Promise<LanguageModelV3StreamPart | undefined>;
|
|
62
|
+
}
|
|
63
|
+
/** CityModel 客户端构造参数。 */
|
|
64
|
+
export interface CityModelOptions {
|
|
65
|
+
/** Federation 模型目录返回的公开描述。 */
|
|
66
|
+
descriptor: CityModelDescriptor;
|
|
67
|
+
/** 使用 City 客户端鉴权上下文发送模型请求。 */
|
|
68
|
+
request_stream(request: CityLanguageModelStreamRequestV1, signal?: AbortSignal): Promise<FetchResponseLike>;
|
|
69
|
+
}
|
|
70
|
+
/** 通用 text action 接受的输入。 */
|
|
71
|
+
export interface AITextInput {
|
|
72
|
+
/** 多轮 AI SDK UIMessage;存在时优先于单轮 prompt。 */
|
|
73
|
+
messages?: UIMessage[];
|
|
74
|
+
/** 没有多轮 messages 时使用的单轮文本输入。 */
|
|
75
|
+
prompt?: string;
|
|
76
|
+
/** OpenAI function tool 定义列表。 */
|
|
77
|
+
tools?: Record<string, unknown>[];
|
|
78
|
+
}
|
|
79
|
+
/** 可直接交给 AI SDK generateText 的内部输入。 */
|
|
80
|
+
export type AIResolvedTextInput = {
|
|
81
|
+
/** 转换后的 AI SDK 标准模型消息。 */
|
|
82
|
+
messages: ModelMessage[];
|
|
83
|
+
/** 当前请求携带的可选 AI SDK ToolSet。 */
|
|
84
|
+
tools?: ToolSet;
|
|
85
|
+
} | {
|
|
86
|
+
/** 单轮 prompt 文本。 */
|
|
87
|
+
prompt: string;
|
|
88
|
+
/** 当前请求携带的可选 AI SDK ToolSet。 */
|
|
89
|
+
tools?: ToolSet;
|
|
90
|
+
};
|
|
91
|
+
/** OpenAI Chat Completions 请求。 */
|
|
92
|
+
export interface OpenAIChatCompletionRequest {
|
|
93
|
+
/** Federation 模型目录中的模型 ID。 */
|
|
94
|
+
model: string;
|
|
95
|
+
/** 本次对话消息列表。 */
|
|
96
|
+
messages: OpenAIChatMessage[];
|
|
97
|
+
/** 是否返回 OpenAI SSE 数据流。 */
|
|
98
|
+
stream?: boolean;
|
|
99
|
+
/** 最大输出 token 数;优先级高于 max_tokens。 */
|
|
100
|
+
max_completion_tokens?: number;
|
|
101
|
+
/** 兼容旧客户端的最大输出 token 数。 */
|
|
102
|
+
max_tokens?: number;
|
|
103
|
+
/** 采样温度。 */
|
|
104
|
+
temperature?: number;
|
|
105
|
+
/** nucleus sampling 参数。 */
|
|
106
|
+
top_p?: number;
|
|
107
|
+
/** 停止序列。 */
|
|
108
|
+
stop?: string | string[];
|
|
109
|
+
/** presence penalty。 */
|
|
110
|
+
presence_penalty?: number;
|
|
111
|
+
/** frequency penalty。 */
|
|
112
|
+
frequency_penalty?: number;
|
|
113
|
+
/** 确定性采样种子。 */
|
|
114
|
+
seed?: number;
|
|
115
|
+
/** 可供模型调用的 function tools。 */
|
|
116
|
+
tools?: OpenAIChatTool[];
|
|
117
|
+
/** 工具选择策略。 */
|
|
118
|
+
tool_choice?: OpenAIChatToolChoice;
|
|
119
|
+
/** 文本或 JSON 输出格式。 */
|
|
120
|
+
response_format?: OpenAIChatResponseFormat;
|
|
121
|
+
/** Downcity 对外公开的推理强度。 */
|
|
122
|
+
reasoning_effort?: string;
|
|
123
|
+
/** 其它兼容字段不会直接进入 AIChannel。 */
|
|
124
|
+
[key: string]: unknown;
|
|
125
|
+
}
|
|
126
|
+
/** OpenAI 对话消息。 */
|
|
127
|
+
export interface OpenAIChatMessage {
|
|
128
|
+
/** 消息角色。 */
|
|
129
|
+
role: "system" | "developer" | "user" | "assistant" | "tool";
|
|
130
|
+
/** 文本或多模态消息内容。 */
|
|
131
|
+
content?: string | OpenAIChatContentPart[] | null;
|
|
132
|
+
/** assistant 消息中的历史工具调用。 */
|
|
133
|
+
tool_calls?: OpenAIChatToolCall[];
|
|
134
|
+
/** tool 消息对应的工具调用 ID。 */
|
|
135
|
+
tool_call_id?: string;
|
|
136
|
+
/** tool 消息对应的工具名称。 */
|
|
137
|
+
name?: string;
|
|
138
|
+
}
|
|
139
|
+
/** OpenAI 多模态消息内容。 */
|
|
140
|
+
export type OpenAIChatContentPart = OpenAIChatTextPart | OpenAIChatImagePart | OpenAIChatFilePart;
|
|
141
|
+
/** OpenAI 文本内容。 */
|
|
142
|
+
export interface OpenAIChatTextPart {
|
|
143
|
+
/** 内容类型。 */
|
|
144
|
+
type: "text" | "input_text";
|
|
145
|
+
/** 文本内容。 */
|
|
146
|
+
text: string;
|
|
147
|
+
}
|
|
148
|
+
/** OpenAI 图片内容。 */
|
|
149
|
+
export interface OpenAIChatImagePart {
|
|
150
|
+
/** 内容类型。 */
|
|
151
|
+
type: "image_url" | "input_image";
|
|
152
|
+
/** Chat Completions image_url 对象。 */
|
|
153
|
+
image_url?: {
|
|
154
|
+
url: string;
|
|
155
|
+
};
|
|
156
|
+
/** 部分兼容客户端使用的直接 URL。 */
|
|
157
|
+
url?: string;
|
|
158
|
+
}
|
|
159
|
+
/** OpenAI 文件内容。 */
|
|
160
|
+
export interface OpenAIChatFilePart {
|
|
161
|
+
/** 内容类型。 */
|
|
162
|
+
type: "file";
|
|
163
|
+
/** 文件 URL 或 Data URL。 */
|
|
164
|
+
url: string;
|
|
165
|
+
/** 文件 IANA 媒体类型。 */
|
|
166
|
+
media_type?: string;
|
|
167
|
+
/** 兼容 AI SDK 风格的媒体类型字段。 */
|
|
168
|
+
mediaType?: string;
|
|
169
|
+
/** 可选文件名。 */
|
|
170
|
+
filename?: string;
|
|
171
|
+
}
|
|
172
|
+
/** OpenAI function tool 定义。 */
|
|
173
|
+
export interface OpenAIChatTool {
|
|
174
|
+
/** 工具类型。 */
|
|
175
|
+
type: "function";
|
|
176
|
+
/** function 定义。 */
|
|
177
|
+
function: {
|
|
178
|
+
/** 工具唯一名称。 */
|
|
179
|
+
name: string;
|
|
180
|
+
/** 工具说明。 */
|
|
181
|
+
description?: string;
|
|
182
|
+
/** 工具输入 JSON Schema。 */
|
|
183
|
+
parameters?: Record<string, unknown>;
|
|
184
|
+
/** 是否要求 AI SDK Provider 严格遵循 schema。 */
|
|
185
|
+
strict?: boolean;
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/** OpenAI 工具选择策略。 */
|
|
189
|
+
export type OpenAIChatToolChoice = "auto" | "none" | "required" | {
|
|
190
|
+
type: "function";
|
|
191
|
+
function: {
|
|
192
|
+
name: string;
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
/** OpenAI 输出格式。 */
|
|
196
|
+
export type OpenAIChatResponseFormat = {
|
|
197
|
+
type: "text";
|
|
198
|
+
} | {
|
|
199
|
+
type: "json_object";
|
|
200
|
+
} | {
|
|
201
|
+
type: "json_schema";
|
|
202
|
+
json_schema: {
|
|
203
|
+
/** JSON schema 名称。 */
|
|
204
|
+
name: string;
|
|
205
|
+
/** JSON schema 说明。 */
|
|
206
|
+
description?: string;
|
|
207
|
+
/** 输出必须遵循的 JSON Schema。 */
|
|
208
|
+
schema: Record<string, unknown>;
|
|
209
|
+
};
|
|
210
|
+
};
|
|
211
|
+
/** OpenAI assistant 历史工具调用。 */
|
|
212
|
+
export interface OpenAIChatToolCall {
|
|
213
|
+
/** 工具调用 ID。 */
|
|
214
|
+
id: string;
|
|
215
|
+
/** 工具调用类型。 */
|
|
216
|
+
type: "function";
|
|
217
|
+
/** function 调用内容。 */
|
|
218
|
+
function: {
|
|
219
|
+
/** 工具名称。 */
|
|
220
|
+
name: string;
|
|
221
|
+
/** JSON 字符串形式的工具参数。 */
|
|
222
|
+
arguments: string;
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
/** OpenAI token usage。 */
|
|
226
|
+
export interface OpenAIChatUsage {
|
|
227
|
+
/** 输入 token 总数。 */
|
|
228
|
+
prompt_tokens: number;
|
|
229
|
+
/** 输出 token 总数。 */
|
|
230
|
+
completion_tokens: number;
|
|
231
|
+
/** 输入与输出 token 总数。 */
|
|
232
|
+
total_tokens: number;
|
|
233
|
+
/** 输入 token 明细。 */
|
|
234
|
+
prompt_tokens_details?: {
|
|
235
|
+
/** 命中缓存的输入 token 数。 */
|
|
236
|
+
cached_tokens: number;
|
|
237
|
+
};
|
|
238
|
+
/** 输出 token 明细。 */
|
|
239
|
+
completion_tokens_details?: {
|
|
240
|
+
/** 推理 token 数。 */
|
|
241
|
+
reasoning_tokens: number;
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/** OpenAI adapter 输出与计费聚合状态。 */
|
|
245
|
+
export interface OpenAIChatCompletionExecution {
|
|
246
|
+
/** 返回给 OpenAI-compatible 客户端的响应。 */
|
|
247
|
+
response: Response;
|
|
248
|
+
/** 标准 V3 聚合结果;异常或取消时为空。 */
|
|
249
|
+
completion: Promise<LanguageModelV3GenerateResult | undefined>;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=AITransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AITransport.d.ts","sourceRoot":"","sources":["../../src/types/AITransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* City AI transport 内部类型模块。
|
|
3
|
+
*
|
|
4
|
+
* 本模块只服务于 CityModel transport、text 输入转换和 OpenAI HTTP adapter,
|
|
5
|
+
* 不从 @downcity/city 公共入口导出。
|
|
6
|
+
*/
|
|
7
|
+
// ===========================================================================
|
|
8
|
+
// CityModel transport
|
|
9
|
+
// ===========================================================================
|
|
10
|
+
/** City Language Model transport v1 的固定协议标识。 */
|
|
11
|
+
export const CITY_LANGUAGE_MODEL_PROTOCOL_V1 = "downcity-language-model-v1";
|
|
12
|
+
//# sourceMappingURL=AITransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AITransport.js","sourceRoot":"","sources":["../../src/types/AITransport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,gDAAgD;AAChD,MAAM,CAAC,MAAM,+BAA+B,GAAG,4BAAqC,CAAC"}
|