@visiblebase/client 0.1.1 → 0.1.3

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 (74) hide show
  1. package/README.md +29 -1
  2. package/bin/admin/index.d.ts +19 -0
  3. package/bin/admin/index.d.ts.map +1 -0
  4. package/bin/admin/index.js +47 -0
  5. package/bin/admin/index.js.map +1 -0
  6. package/bin/admin/types.d.ts +14 -0
  7. package/bin/admin/types.d.ts.map +1 -0
  8. package/bin/admin/types.js +5 -0
  9. package/bin/admin/types.js.map +1 -0
  10. package/bin/http.d.ts +31 -35
  11. package/bin/http.d.ts.map +1 -1
  12. package/bin/http.js +33 -20
  13. package/bin/http.js.map +1 -1
  14. package/bin/index.d.ts +12 -5
  15. package/bin/index.d.ts.map +1 -1
  16. package/bin/index.js +12 -4
  17. package/bin/index.js.map +1 -1
  18. package/bin/invoker/ai/index.d.ts +139 -0
  19. package/bin/invoker/ai/index.d.ts.map +1 -0
  20. package/bin/invoker/ai/index.js +247 -0
  21. package/bin/invoker/ai/index.js.map +1 -0
  22. package/bin/invoker/ai/stream.d.ts +8 -0
  23. package/bin/invoker/ai/stream.d.ts.map +1 -0
  24. package/bin/invoker/ai/stream.js +17 -0
  25. package/bin/invoker/ai/stream.js.map +1 -0
  26. package/bin/invoker/ai/types.d.ts +37 -0
  27. package/bin/invoker/ai/types.d.ts.map +1 -0
  28. package/bin/invoker/ai/types.js +5 -0
  29. package/bin/invoker/ai/types.js.map +1 -0
  30. package/bin/invoker/env/index.d.ts +31 -0
  31. package/bin/invoker/env/index.d.ts.map +1 -0
  32. package/bin/invoker/env/index.js +48 -0
  33. package/bin/invoker/env/index.js.map +1 -0
  34. package/bin/invoker/env/types.d.ts +15 -0
  35. package/bin/invoker/env/types.d.ts.map +1 -0
  36. package/bin/invoker/env/types.js +5 -0
  37. package/bin/invoker/env/types.js.map +1 -0
  38. package/bin/invoker/invoker.d.ts +43 -0
  39. package/bin/invoker/invoker.d.ts.map +1 -0
  40. package/bin/invoker/invoker.js +67 -0
  41. package/bin/invoker/invoker.js.map +1 -0
  42. package/bin/invoker/products/index.d.ts +46 -0
  43. package/bin/invoker/products/index.d.ts.map +1 -0
  44. package/bin/invoker/products/index.js +73 -0
  45. package/bin/invoker/products/index.js.map +1 -0
  46. package/bin/invoker/products/types.d.ts +28 -0
  47. package/bin/invoker/products/types.d.ts.map +1 -0
  48. package/bin/invoker/products/types.js +5 -0
  49. package/bin/invoker/products/types.js.map +1 -0
  50. package/bin/user/index.d.ts +25 -0
  51. package/bin/user/index.d.ts.map +1 -0
  52. package/bin/user/index.js +93 -0
  53. package/bin/user/index.js.map +1 -0
  54. package/bin/user/types.d.ts +25 -0
  55. package/bin/user/types.d.ts.map +1 -0
  56. package/bin/user/types.js +5 -0
  57. package/bin/user/types.js.map +1 -0
  58. package/package.json +10 -10
  59. package/bin/AdminClient.d.ts +0 -53
  60. package/bin/AdminClient.d.ts.map +0 -1
  61. package/bin/AdminClient.js +0 -134
  62. package/bin/AdminClient.js.map +0 -1
  63. package/bin/UserClient.d.ts +0 -60
  64. package/bin/UserClient.d.ts.map +0 -1
  65. package/bin/UserClient.js +0 -152
  66. package/bin/UserClient.js.map +0 -1
  67. package/bin/ai-stream.d.ts +0 -13
  68. package/bin/ai-stream.d.ts.map +0 -1
  69. package/bin/ai-stream.js +0 -30
  70. package/bin/ai-stream.js.map +0 -1
  71. package/bin/types.d.ts +0 -305
  72. package/bin/types.d.ts.map +0 -1
  73. package/bin/types.js +0 -7
  74. package/bin/types.js.map +0 -1
package/bin/UserClient.js DELETED
@@ -1,152 +0,0 @@
1
- /**
2
- * 终端用户 SDK。
3
- *
4
- * UserClient 面向具体产品侧代码:它绑定 `base_url + product_id + user_token`,
5
- * 再通过 `text()/stream()/image()/video()/tts()/asr()` 或 `invoke()` 调 Base。
6
- */
7
- import { parseUserStreamBody } from "./ai-stream.js";
8
- import { defaultFetch, normalizeBaseURL, requestJSON, requestRaw, requiredString } from "./http.js";
9
- /**
10
- * VisibleBase 终端用户客户端。
11
- */
12
- export class UserClient {
13
- base_url;
14
- product_id;
15
- user_token;
16
- fetchImpl;
17
- constructor(options) {
18
- if (!options || typeof options !== "object") {
19
- throw new TypeError("UserClient options are required");
20
- }
21
- this.base_url = normalizeBaseURL(options.base_url, "base_url");
22
- this.product_id = requiredString(options.product_id, "product_id");
23
- this.user_token = requiredString(options.user_token, "user_token");
24
- this.fetchImpl = options.fetch ?? defaultFetch();
25
- }
26
- /**
27
- * 调用 text service。
28
- */
29
- text(input) {
30
- return this.post("/v1/text", input);
31
- }
32
- /**
33
- * 调用 stream service。
34
- */
35
- async stream(input) {
36
- const response = await this.request("/v1/stream", {
37
- method: "POST",
38
- body: JSON.stringify(this.serializeInput(input)),
39
- });
40
- return parseUserStreamBody(response.body);
41
- }
42
- /**
43
- * 调用 image service。
44
- */
45
- image(input) {
46
- return this.post("/v1/image", input);
47
- }
48
- /**
49
- * 调用 video service。
50
- */
51
- video(input) {
52
- return this.post("/v1/video", input);
53
- }
54
- /**
55
- * 调用 TTS service。
56
- */
57
- tts(input) {
58
- return this.post("/v1/tts", input);
59
- }
60
- /**
61
- * 调用 ASR service。
62
- */
63
- asr(input) {
64
- return this.post("/v1/asr", input);
65
- }
66
- /**
67
- * 调用任意 service。
68
- */
69
- invoke(service, input) {
70
- return this.requestJSON("/v1/invoke", {
71
- method: "POST",
72
- body: JSON.stringify({
73
- service,
74
- ...this.serializeInput(input),
75
- }),
76
- });
77
- }
78
- /**
79
- * 读取当前可用模型目录。
80
- */
81
- async models() {
82
- const items = await this.requestJSON("/v1/models", {
83
- method: "GET",
84
- });
85
- return createModelCatalog(items);
86
- }
87
- service(name) {
88
- if (typeof name === "string" && name.trim()) {
89
- return {
90
- invoke: (input) => this.invoke(name, input),
91
- };
92
- }
93
- return this.requestJSON("/v1/services", {
94
- method: "GET",
95
- }).then((body) => body.items);
96
- }
97
- post(path, input) {
98
- return this.requestJSON(path, {
99
- method: "POST",
100
- body: JSON.stringify(this.serializeInput(input)),
101
- });
102
- }
103
- requestJSON(path, init) {
104
- return requestJSON({
105
- fetch: this.fetchImpl,
106
- url: `${this.base_url}${path}`,
107
- init: this.withAuthHeaders(init),
108
- });
109
- }
110
- request(path, init) {
111
- return requestRaw({
112
- fetch: this.fetchImpl,
113
- url: `${this.base_url}${path}`,
114
- init: this.withAuthHeaders(init),
115
- });
116
- }
117
- withAuthHeaders(init) {
118
- return {
119
- ...init,
120
- headers: {
121
- "content-type": "application/json",
122
- authorization: `Bearer ${this.user_token}`,
123
- ...init.headers,
124
- },
125
- };
126
- }
127
- serializeInput(input) {
128
- return {
129
- ...input,
130
- model: serializeModel(input.model),
131
- product_id: this.product_id,
132
- };
133
- }
134
- }
135
- function serializeModel(model) {
136
- if (!model) {
137
- return undefined;
138
- }
139
- if (typeof model === "string") {
140
- return model;
141
- }
142
- return model.id;
143
- }
144
- function createModelCatalog(items) {
145
- const byId = new Map(items.map((item) => [item.id, Object.freeze({ ...item })]));
146
- const primary = items.find((item) => item.primary) ?? items[0];
147
- const catalog = ((id) => byId.get(String(id ?? "").trim()));
148
- catalog.primary = () => (primary ? byId.get(primary.id) : undefined);
149
- catalog.all = () => [...byId.values()];
150
- return catalog;
151
- }
152
- //# sourceMappingURL=UserClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserClient.js","sourceRoot":"","sources":["../src/UserClient.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * AI SDK UIMessage stream 适配模块。
3
- *
4
- * Base 侧可以返回 AI SDK 的 `createUIMessageStreamResponse()` 或
5
- * `streamText().toUIMessageStreamResponse()`;客户端在这里把 HTTP SSE body
6
- * 还原为产品侧直接消费的 `UIMessageChunk` stream。
7
- */
8
- import type { UserRawStreamBody, UserStreamResult } from "./types.js";
9
- /**
10
- * 解析 VisibleBase stream service 返回的 AI SDK UIMessage SSE body。
11
- */
12
- export declare function parseUserStreamBody(body: UserRawStreamBody): UserStreamResult;
13
- //# sourceMappingURL=ai-stream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-stream.d.ts","sourceRoot":"","sources":["../src/ai-stream.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CAM7E"}
package/bin/ai-stream.js DELETED
@@ -1,30 +0,0 @@
1
- /**
2
- * AI SDK UIMessage stream 适配模块。
3
- *
4
- * Base 侧可以返回 AI SDK 的 `createUIMessageStreamResponse()` 或
5
- * `streamText().toUIMessageStreamResponse()`;客户端在这里把 HTTP SSE body
6
- * 还原为产品侧直接消费的 `UIMessageChunk` stream。
7
- */
8
- import { DefaultChatTransport } from "ai";
9
- /**
10
- * 解析 VisibleBase stream service 返回的 AI SDK UIMessage SSE body。
11
- */
12
- export function parseUserStreamBody(body) {
13
- if (!body) {
14
- throw new Error("VisibleBase stream response body is empty");
15
- }
16
- return parser.parse(body);
17
- }
18
- /**
19
- * 暴露 AI SDK 默认 UIMessage stream 解析器。
20
- */
21
- class VisibleBaseUIMessageStreamParser extends DefaultChatTransport {
22
- /**
23
- * 将字节流转成 AI SDK UIMessage chunk 流。
24
- */
25
- parse(stream) {
26
- return this.processResponseStream(stream);
27
- }
28
- }
29
- const parser = new VisibleBaseUIMessageStreamParser();
30
- //# sourceMappingURL=ai-stream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-stream.js","sourceRoot":"","sources":["../src/ai-stream.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAI1C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,gCAAiC,SAAQ,oBAA+B;IAC5E;;OAEG;IACH,KAAK,CAAC,MAAkC;QACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAqD,CAAC,CAAC;IAC3F,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,gCAAgC,EAAE,CAAC"}
package/bin/types.d.ts DELETED
@@ -1,305 +0,0 @@
1
- /**
2
- * @visiblebase/client 公共类型。
3
- *
4
- * 这里描述终端用户 SDK、管理端 SDK 和模型选择器的对外契约,不包含具体请求逻辑。
5
- */
6
- import type { UIMessage, UIMessageChunk } from "ai";
7
- /**
8
- * fetch 返回对象的最小接口。
9
- */
10
- export interface FetchResponseLike {
11
- /**
12
- * HTTP 状态是否为 2xx。
13
- */
14
- ok: boolean;
15
- /**
16
- * HTTP 状态码。
17
- */
18
- status: number;
19
- /**
20
- * 原始流式响应体。
21
- */
22
- body: UserRawStreamBody;
23
- /**
24
- * 读取 JSON。
25
- */
26
- json(): Promise<unknown>;
27
- /**
28
- * 读取文本。
29
- */
30
- text(): Promise<string>;
31
- }
32
- /**
33
- * `client.text()` 返回的 AI SDK UI message。
34
- */
35
- export type UserTextResult = UIMessage;
36
- /**
37
- * `client.stream()` 读出的 AI SDK UI message chunk。
38
- */
39
- export type UserStreamChunk = UIMessageChunk;
40
- /**
41
- * `client.stream()` 返回给产品侧消费的 AI SDK UI message chunk 流。
42
- */
43
- export type UserStreamResult = ReadableStream<UserStreamChunk>;
44
- /**
45
- * `client.image()` 返回的 AI SDK UI message。
46
- */
47
- export type UserImageResult = UIMessage;
48
- /**
49
- * `client.video()` 返回的 AI SDK UI message。
50
- */
51
- export type UserVideoResult = UIMessage;
52
- /**
53
- * fetch 层收到的原始字节流 body。
54
- */
55
- export type UserRawStreamBody = ReadableStream<Uint8Array> | null;
56
- /**
57
- * SDK 使用的 fetch 函数签名。
58
- */
59
- export interface FetchLike {
60
- /**
61
- * 发起 HTTP 请求。
62
- */
63
- (url: string, init: RequestInitLike): Promise<FetchResponseLike>;
64
- }
65
- /**
66
- * SDK 内部传给 fetch 的请求配置。
67
- */
68
- export interface RequestInitLike {
69
- /**
70
- * HTTP 方法。
71
- */
72
- method?: string;
73
- /**
74
- * HTTP 请求头。
75
- */
76
- headers?: Record<string, string>;
77
- /**
78
- * 请求体。
79
- */
80
- body?: string;
81
- }
82
- /**
83
- * UserClient 构造参数。
84
- */
85
- export interface UserClientOptions {
86
- /**
87
- * VisibleBase 对终端用户开放的 base URL。
88
- */
89
- base_url: string;
90
- /**
91
- * 当前客户端绑定的 Product ID。
92
- */
93
- product_id: string;
94
- /**
95
- * 开发者后端签发给终端用户的 user_token。
96
- */
97
- user_token: string;
98
- /**
99
- * 自定义 fetch 实现。
100
- */
101
- fetch?: FetchLike;
102
- }
103
- /**
104
- * 客户端可见的 Model 引用。
105
- */
106
- export interface UserModelRef {
107
- /**
108
- * 模型唯一 ID。
109
- */
110
- id: string;
111
- /**
112
- * 模型展示名称。
113
- */
114
- name: string;
115
- /**
116
- * Provider 名称。
117
- */
118
- provider: string;
119
- /**
120
- * 模型说明。
121
- */
122
- description: string;
123
- /**
124
- * 是否为全局主模型。
125
- */
126
- primary: boolean;
127
- }
128
- /**
129
- * 客户端传入的模型标识。
130
- */
131
- export type UserModelInput = UserModelRef | string;
132
- /**
133
- * 发给任意 service 的标准输入。
134
- */
135
- export interface UserServiceInput {
136
- /**
137
- * 希望使用的模型。
138
- *
139
- * 推荐传 `client.models()` 返回的 `ModelRef`,也允许直接传模型 ID。
140
- */
141
- model?: UserModelInput;
142
- /**
143
- * 其他 service 自己定义的字段。
144
- */
145
- [key: string]: unknown;
146
- }
147
- /**
148
- * `client.models()` 返回的模型目录。
149
- */
150
- export interface UserModelCatalog {
151
- /**
152
- * 按模型 ID 读取单个模型。
153
- */
154
- (id: string): UserModelRef | undefined;
155
- /**
156
- * 读取全局主模型。
157
- */
158
- primary(): UserModelRef | undefined;
159
- /**
160
- * 列出所有模型。
161
- */
162
- all(): UserModelRef[];
163
- }
164
- /**
165
- * `client.service(name)` 返回的调用器。
166
- */
167
- export interface UserNamedService {
168
- /**
169
- * 调用当前 service。
170
- */
171
- invoke<T = unknown>(input: UserServiceInput): Promise<T>;
172
- }
173
- /**
174
- * 管理端 SDK 构造参数。
175
- */
176
- export interface AdminClientOptions {
177
- /**
178
- * Base 管理端 base URL。
179
- */
180
- base_url: string;
181
- /**
182
- * 管理密钥。
183
- */
184
- admin_secret_key?: string;
185
- /**
186
- * 自定义 fetch 实现。
187
- */
188
- fetch?: FetchLike;
189
- }
190
- /**
191
- * 管理端 env 记录。
192
- */
193
- export interface AdminEnvEntry {
194
- /**
195
- * 环境变量名。
196
- */
197
- key: string;
198
- /**
199
- * 环境变量值。
200
- */
201
- value: string;
202
- /**
203
- * env 值来源。
204
- */
205
- source: "dotenv";
206
- }
207
- /**
208
- * 管理端签发 token 的输入。
209
- */
210
- export interface AdminTokenApplyInput {
211
- /**
212
- * token 所属 Product ID。
213
- */
214
- product_id: string;
215
- /**
216
- * token 所属用户 ID。
217
- */
218
- user_id: string;
219
- /**
220
- * 写入 token 的业务元数据。
221
- */
222
- metadata?: Record<string, unknown>;
223
- /**
224
- * token 有效期。
225
- */
226
- ttl?: string | number;
227
- }
228
- /**
229
- * Product 记录。
230
- */
231
- export interface AdminProduct {
232
- /**
233
- * Product ID。
234
- */
235
- product_id: string;
236
- /**
237
- * Product 名称。
238
- */
239
- name: string;
240
- /**
241
- * Product 状态。
242
- */
243
- status: "active" | "paused";
244
- /**
245
- * 创建时间。
246
- */
247
- created_at: string;
248
- /**
249
- * 更新时间。
250
- */
251
- updated_at: string;
252
- }
253
- /**
254
- * 创建 Product 的输入。
255
- */
256
- export interface AdminProductCreateInput {
257
- /**
258
- * Product 名称。
259
- */
260
- name: string;
261
- }
262
- /**
263
- * Product ID 输入。
264
- */
265
- export interface AdminProductIdInput {
266
- /**
267
- * Product ID。
268
- */
269
- product_id: string;
270
- }
271
- /**
272
- * token 签发结果。
273
- */
274
- export interface AdminTokenApplyResult {
275
- /**
276
- * user_token。
277
- */
278
- user_token: string;
279
- /**
280
- * token 所属 Product ID。
281
- */
282
- product_id: string;
283
- /**
284
- * token 所属用户 ID。
285
- */
286
- user_id: string;
287
- /**
288
- * token 过期时间。
289
- */
290
- expires_at?: string;
291
- }
292
- /**
293
- * 写入 env 的输入。
294
- */
295
- export interface AdminEnvUpsertInput {
296
- /**
297
- * 环境变量名。
298
- */
299
- key: string;
300
- /**
301
- * 环境变量值。
302
- */
303
- value: string;
304
- }
305
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/bin/types.js DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- * @visiblebase/client 公共类型。
3
- *
4
- * 这里描述终端用户 SDK、管理端 SDK 和模型选择器的对外契约,不包含具体请求逻辑。
5
- */
6
- export {};
7
- //# sourceMappingURL=types.js.map
package/bin/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}