@visiblebase/client 0.1.0 → 0.1.1
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 +27 -11
- package/bin/AdminClient.d.ts +9 -9
- package/bin/AdminClient.d.ts.map +1 -1
- package/bin/AdminClient.js +10 -10
- package/bin/AdminClient.js.map +1 -1
- package/bin/UserClient.d.ts +42 -8
- package/bin/UserClient.d.ts.map +1 -1
- package/bin/UserClient.js +88 -11
- package/bin/UserClient.js.map +1 -1
- package/bin/ai-stream.d.ts +13 -0
- package/bin/ai-stream.d.ts.map +1 -0
- package/bin/ai-stream.js +30 -0
- package/bin/ai-stream.js.map +1 -0
- package/bin/index.d.ts +2 -2
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +1 -1
- package/bin/index.js.map +1 -1
- package/bin/types.d.ts +129 -32
- package/bin/types.d.ts.map +1 -1
- package/bin/types.js +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
它提供两类客户端:
|
|
6
6
|
|
|
7
|
-
- `UserClient
|
|
8
|
-
- `AdminClient
|
|
7
|
+
- `UserClient`:给终端用户产品调用 Base
|
|
8
|
+
- `AdminClient`:给可信后端管理 product、签发 `user_token`、维护 Runtime env
|
|
9
9
|
|
|
10
10
|
## 安装
|
|
11
11
|
|
|
@@ -17,36 +17,52 @@ pnpm add @visiblebase/client
|
|
|
17
17
|
|
|
18
18
|
```ts
|
|
19
19
|
import { UserClient } from "@visiblebase/client";
|
|
20
|
+
import type { UIMessageChunk } from "ai";
|
|
20
21
|
|
|
21
22
|
const client = new UserClient({
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
base_url: "http://127.0.0.1:3001",
|
|
24
|
+
product_id: "prod_xxx",
|
|
25
|
+
user_token: "ub_xxx",
|
|
24
26
|
});
|
|
25
27
|
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
+
const models = await client.models();
|
|
29
|
+
|
|
30
|
+
const message = await client.text({
|
|
31
|
+
model: models.primary(),
|
|
28
32
|
prompt: "你好",
|
|
29
33
|
});
|
|
34
|
+
|
|
35
|
+
const stream = await client.stream({
|
|
36
|
+
model: models.primary(),
|
|
37
|
+
prompt: "流式输出一段文案",
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const reader = stream.getReader();
|
|
41
|
+
const firstChunk: UIMessageChunk | undefined = (await reader.read()).value;
|
|
30
42
|
```
|
|
31
43
|
|
|
44
|
+
`text()` 固定返回 AI SDK `UIMessage`。`stream()` 固定返回 `ReadableStream<UIMessageChunk>`,适配 Base 侧的 `createUIMessageStreamResponse()` 或 `streamText().toUIMessageStreamResponse()`。
|
|
45
|
+
|
|
46
|
+
`image()` 和 `video()` 也固定返回 AI SDK `UIMessage`,建议用 message 的 file part 表达图片或视频文件。
|
|
47
|
+
|
|
32
48
|
## AdminClient
|
|
33
49
|
|
|
34
50
|
```ts
|
|
35
51
|
import { AdminClient } from "@visiblebase/client";
|
|
36
52
|
|
|
37
53
|
const admin = new AdminClient({
|
|
38
|
-
|
|
39
|
-
|
|
54
|
+
base_url: "http://127.0.0.1:3001",
|
|
55
|
+
admin_secret_key: "admin_xxx",
|
|
40
56
|
});
|
|
41
57
|
|
|
42
58
|
const product = await admin.products.create({
|
|
43
|
-
code: "demo",
|
|
44
59
|
name: "Demo Product",
|
|
45
60
|
});
|
|
46
61
|
|
|
47
|
-
const token = await admin.
|
|
48
|
-
product_id: product.
|
|
62
|
+
const token = await admin.tokens.apply({
|
|
63
|
+
product_id: product.product_id,
|
|
49
64
|
user_id: "user_123",
|
|
65
|
+
ttl: "30m",
|
|
50
66
|
});
|
|
51
67
|
```
|
|
52
68
|
|
package/bin/AdminClient.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 管理端 SDK。
|
|
3
3
|
*
|
|
4
|
-
* AdminClient 只应该在开发者后端、Console
|
|
5
|
-
*
|
|
4
|
+
* AdminClient 只应该在开发者后端、Console 或其他可信服务端使用。当前它负责
|
|
5
|
+
* env、products 和 token 签发;模型配置先交给数据库层,不走单独 SDK。
|
|
6
6
|
*/
|
|
7
|
-
import type { AdminClientOptions, AdminEnvEntry, AdminEnvUpsertInput, AdminProduct, AdminProductCreateInput, AdminProductIdInput,
|
|
7
|
+
import type { AdminClientOptions, AdminEnvEntry, AdminEnvUpsertInput, AdminProduct, AdminProductCreateInput, AdminProductIdInput, AdminTokenApplyInput, AdminTokenApplyResult, RequestInitLike } from "./types.js";
|
|
8
8
|
/**
|
|
9
9
|
* VisibleBase 管理端客户端。
|
|
10
10
|
*/
|
|
11
11
|
export declare class AdminClient {
|
|
12
12
|
readonly env: AdminEnvClient;
|
|
13
13
|
readonly products: AdminProductsClient;
|
|
14
|
-
readonly
|
|
14
|
+
readonly tokens: AdminTokensClient;
|
|
15
15
|
private readonly base_url;
|
|
16
16
|
private readonly admin_secret_key;
|
|
17
17
|
private readonly fetchImpl;
|
|
@@ -20,7 +20,7 @@ export declare class AdminClient {
|
|
|
20
20
|
private withAuthHeaders;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Product 管理客户端。
|
|
24
24
|
*/
|
|
25
25
|
export declare class AdminProductsClient {
|
|
26
26
|
private readonly admin;
|
|
@@ -32,15 +32,15 @@ export declare class AdminProductsClient {
|
|
|
32
32
|
remove(input: AdminProductIdInput): Promise<unknown>;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* token 管理客户端。
|
|
36
36
|
*/
|
|
37
|
-
export declare class
|
|
37
|
+
export declare class AdminTokensClient {
|
|
38
38
|
private readonly admin;
|
|
39
39
|
constructor(admin: AdminClient);
|
|
40
|
-
|
|
40
|
+
apply(input: AdminTokenApplyInput): Promise<AdminTokenApplyResult>;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
43
|
+
* Runtime env 管理客户端。
|
|
44
44
|
*/
|
|
45
45
|
export declare class AdminEnvClient {
|
|
46
46
|
private readonly admin;
|
package/bin/AdminClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminClient.d.ts","sourceRoot":"","sources":["../src/AdminClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"AdminClient.d.ts","sourceRoot":"","sources":["../src/AdminClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EAErB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,OAAO,EAAE,kBAAkB;IAgBvC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ/D,OAAO,CAAC,eAAe;CAUxB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,KAAK,EAAE,WAAW;IAIxB,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAOrC,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IAO7D,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAOxD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAO3D,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAMrD;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,KAAK,EAAE,WAAW;IAI9B,KAAK,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAMnE;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,KAAK,EAAE,WAAW;IAIxB,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAOtC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOrC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAMtC"}
|
package/bin/AdminClient.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 管理端 SDK。
|
|
3
3
|
*
|
|
4
|
-
* AdminClient 只应该在开发者后端、Console
|
|
5
|
-
*
|
|
4
|
+
* AdminClient 只应该在开发者后端、Console 或其他可信服务端使用。当前它负责
|
|
5
|
+
* env、products 和 token 签发;模型配置先交给数据库层,不走单独 SDK。
|
|
6
6
|
*/
|
|
7
7
|
import { defaultFetch, normalizeBaseURL, requestJSON, requiredString } from "./http.js";
|
|
8
8
|
/**
|
|
@@ -11,7 +11,7 @@ import { defaultFetch, normalizeBaseURL, requestJSON, requiredString } from "./h
|
|
|
11
11
|
export class AdminClient {
|
|
12
12
|
env;
|
|
13
13
|
products;
|
|
14
|
-
|
|
14
|
+
tokens;
|
|
15
15
|
base_url;
|
|
16
16
|
admin_secret_key;
|
|
17
17
|
fetchImpl;
|
|
@@ -24,7 +24,7 @@ export class AdminClient {
|
|
|
24
24
|
this.fetchImpl = options.fetch ?? defaultFetch();
|
|
25
25
|
this.env = new AdminEnvClient(this);
|
|
26
26
|
this.products = new AdminProductsClient(this);
|
|
27
|
-
this.
|
|
27
|
+
this.tokens = new AdminTokensClient(this);
|
|
28
28
|
}
|
|
29
29
|
requestJSON(path, init) {
|
|
30
30
|
return requestJSON({
|
|
@@ -45,7 +45,7 @@ export class AdminClient {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
48
|
+
* Product 管理客户端。
|
|
49
49
|
*/
|
|
50
50
|
export class AdminProductsClient {
|
|
51
51
|
admin;
|
|
@@ -84,22 +84,22 @@ export class AdminProductsClient {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
|
-
*
|
|
87
|
+
* token 管理客户端。
|
|
88
88
|
*/
|
|
89
|
-
export class
|
|
89
|
+
export class AdminTokensClient {
|
|
90
90
|
admin;
|
|
91
91
|
constructor(admin) {
|
|
92
92
|
this.admin = admin;
|
|
93
93
|
}
|
|
94
|
-
|
|
95
|
-
return this.admin.requestJSON("/api/admin/
|
|
94
|
+
apply(input) {
|
|
95
|
+
return this.admin.requestJSON("/api/admin/tokens/apply", {
|
|
96
96
|
method: "POST",
|
|
97
97
|
body: JSON.stringify(input),
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
|
-
*
|
|
102
|
+
* Runtime env 管理客户端。
|
|
103
103
|
*/
|
|
104
104
|
export class AdminEnvClient {
|
|
105
105
|
admin;
|
package/bin/AdminClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminClient.js","sourceRoot":"","sources":["../src/AdminClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAcxF;;GAEG;AACH,MAAM,OAAO,WAAW;IACb,GAAG,CAAiB;IACpB,QAAQ,CAAsB;IAC9B,
|
|
1
|
+
{"version":3,"file":"AdminClient.js","sourceRoot":"","sources":["../src/AdminClient.ts"],"names":[],"mappings":"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"}
|
package/bin/UserClient.d.ts
CHANGED
|
@@ -1,26 +1,60 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 终端用户 SDK。
|
|
3
3
|
*
|
|
4
|
-
* UserClient
|
|
5
|
-
*
|
|
4
|
+
* UserClient 面向具体产品侧代码:它绑定 `base_url + product_id + user_token`,
|
|
5
|
+
* 再通过 `text()/stream()/image()/video()/tts()/asr()` 或 `invoke()` 调 Base。
|
|
6
6
|
*/
|
|
7
|
-
import type { UserClientOptions } from "./types.js";
|
|
7
|
+
import type { UserClientOptions, UserImageResult, UserModelCatalog, UserNamedService, UserServiceInput, UserStreamResult, UserTextResult, UserVideoResult } from "./types.js";
|
|
8
8
|
/**
|
|
9
9
|
* VisibleBase 终端用户客户端。
|
|
10
10
|
*/
|
|
11
11
|
export declare class UserClient {
|
|
12
12
|
private readonly base_url;
|
|
13
|
+
private readonly product_id;
|
|
13
14
|
private readonly user_token;
|
|
14
15
|
private readonly fetchImpl;
|
|
15
16
|
constructor(options: UserClientOptions);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
/**
|
|
18
|
+
* 调用 text service。
|
|
19
|
+
*/
|
|
20
|
+
text(input: UserServiceInput): Promise<UserTextResult>;
|
|
21
|
+
/**
|
|
22
|
+
* 调用 stream service。
|
|
23
|
+
*/
|
|
24
|
+
stream(input: UserServiceInput): Promise<UserStreamResult>;
|
|
25
|
+
/**
|
|
26
|
+
* 调用 image service。
|
|
27
|
+
*/
|
|
28
|
+
image(input: UserServiceInput): Promise<UserImageResult>;
|
|
29
|
+
/**
|
|
30
|
+
* 调用 video service。
|
|
31
|
+
*/
|
|
32
|
+
video(input: UserServiceInput): Promise<UserVideoResult>;
|
|
33
|
+
/**
|
|
34
|
+
* 调用 TTS service。
|
|
35
|
+
*/
|
|
36
|
+
tts<T = unknown>(input: UserServiceInput): Promise<T>;
|
|
37
|
+
/**
|
|
38
|
+
* 调用 ASR service。
|
|
39
|
+
*/
|
|
40
|
+
asr<T = unknown>(input: UserServiceInput): Promise<T>;
|
|
41
|
+
/**
|
|
42
|
+
* 调用任意 service。
|
|
43
|
+
*/
|
|
44
|
+
invoke<T = unknown>(service: string, input: UserServiceInput): Promise<T>;
|
|
45
|
+
/**
|
|
46
|
+
* 读取当前可用模型目录。
|
|
47
|
+
*/
|
|
48
|
+
models(): Promise<UserModelCatalog>;
|
|
49
|
+
/**
|
|
50
|
+
* 读取当前已注册的 service 列表,或创建指定 service 的调用器。
|
|
51
|
+
*/
|
|
52
|
+
service(): Promise<string[]>;
|
|
53
|
+
service(name: string): UserNamedService;
|
|
21
54
|
private post;
|
|
22
55
|
private requestJSON;
|
|
23
56
|
private request;
|
|
24
57
|
private withAuthHeaders;
|
|
58
|
+
private serializeInput;
|
|
25
59
|
}
|
|
26
60
|
//# sourceMappingURL=UserClient.d.ts.map
|
package/bin/UserClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserClient.d.ts","sourceRoot":"","sources":["../src/UserClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"UserClient.d.ts","sourceRoot":"","sources":["../src/UserClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAGV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAGhB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,OAAO,EAAE,iBAAiB;IAWtC;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAItD;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQhE;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxD;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxD;;OAEG;IACH,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrD;;OAEG;IACH,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrD;;OAEG;IACH,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAUzE;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAOzC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAavC,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;CAOvB"}
|
package/bin/UserClient.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 终端用户 SDK。
|
|
3
3
|
*
|
|
4
|
-
* UserClient
|
|
5
|
-
*
|
|
4
|
+
* UserClient 面向具体产品侧代码:它绑定 `base_url + product_id + user_token`,
|
|
5
|
+
* 再通过 `text()/stream()/image()/video()/tts()/asr()` 或 `invoke()` 调 Base。
|
|
6
6
|
*/
|
|
7
|
+
import { parseUserStreamBody } from "./ai-stream.js";
|
|
7
8
|
import { defaultFetch, normalizeBaseURL, requestJSON, requestRaw, requiredString } from "./http.js";
|
|
8
9
|
/**
|
|
9
10
|
* VisibleBase 终端用户客户端。
|
|
10
11
|
*/
|
|
11
12
|
export class UserClient {
|
|
12
13
|
base_url;
|
|
14
|
+
product_id;
|
|
13
15
|
user_token;
|
|
14
16
|
fetchImpl;
|
|
15
17
|
constructor(options) {
|
|
@@ -17,34 +19,85 @@ export class UserClient {
|
|
|
17
19
|
throw new TypeError("UserClient options are required");
|
|
18
20
|
}
|
|
19
21
|
this.base_url = normalizeBaseURL(options.base_url, "base_url");
|
|
22
|
+
this.product_id = requiredString(options.product_id, "product_id");
|
|
20
23
|
this.user_token = requiredString(options.user_token, "user_token");
|
|
21
24
|
this.fetchImpl = options.fetch ?? defaultFetch();
|
|
22
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* 调用 text service。
|
|
28
|
+
*/
|
|
23
29
|
text(input) {
|
|
24
30
|
return this.post("/v1/text", input);
|
|
25
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
|
+
*/
|
|
26
45
|
image(input) {
|
|
27
46
|
return this.post("/v1/image", input);
|
|
28
47
|
}
|
|
29
|
-
|
|
30
|
-
|
|
48
|
+
/**
|
|
49
|
+
* 调用 video service。
|
|
50
|
+
*/
|
|
51
|
+
video(input) {
|
|
52
|
+
return this.post("/v1/video", input);
|
|
31
53
|
}
|
|
32
|
-
|
|
33
|
-
|
|
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", {
|
|
34
71
|
method: "POST",
|
|
35
|
-
body: JSON.stringify(
|
|
72
|
+
body: JSON.stringify({
|
|
73
|
+
service,
|
|
74
|
+
...this.serializeInput(input),
|
|
75
|
+
}),
|
|
36
76
|
});
|
|
37
|
-
return response.body;
|
|
38
77
|
}
|
|
39
|
-
|
|
40
|
-
|
|
78
|
+
/**
|
|
79
|
+
* 读取当前可用模型目录。
|
|
80
|
+
*/
|
|
81
|
+
async models() {
|
|
82
|
+
const items = await this.requestJSON("/v1/models", {
|
|
41
83
|
method: "GET",
|
|
42
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);
|
|
43
96
|
}
|
|
44
97
|
post(path, input) {
|
|
45
98
|
return this.requestJSON(path, {
|
|
46
99
|
method: "POST",
|
|
47
|
-
body: JSON.stringify(input),
|
|
100
|
+
body: JSON.stringify(this.serializeInput(input)),
|
|
48
101
|
});
|
|
49
102
|
}
|
|
50
103
|
requestJSON(path, init) {
|
|
@@ -71,5 +124,29 @@ export class UserClient {
|
|
|
71
124
|
},
|
|
72
125
|
};
|
|
73
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;
|
|
74
151
|
}
|
|
75
152
|
//# sourceMappingURL=UserClient.js.map
|
package/bin/UserClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserClient.js","sourceRoot":"","sources":["../src/UserClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"UserClient.js","sourceRoot":"","sources":["../src/UserClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 导出终端用户客户端、管理端客户端和 SDK 公共类型。
|
|
5
5
|
*/
|
|
6
|
-
export { AdminClient, AdminEnvClient, AdminProductsClient,
|
|
6
|
+
export { AdminClient, AdminEnvClient, AdminProductsClient, AdminTokensClient } from "./AdminClient.js";
|
|
7
7
|
export { UserClient } from "./UserClient.js";
|
|
8
|
-
export type { AdminClientOptions, AdminEnvEntry, AdminEnvUpsertInput, AdminProduct, AdminProductCreateInput, AdminProductIdInput,
|
|
8
|
+
export type { AdminClientOptions, AdminEnvEntry, AdminEnvUpsertInput, AdminProduct, AdminProductCreateInput, AdminProductIdInput, AdminTokenApplyInput, AdminTokenApplyResult, FetchLike, FetchResponseLike, RequestInitLike, UserClientOptions, UserImageResult, UserModelCatalog, UserModelInput, UserModelRef, UserNamedService, UserRawStreamBody, UserServiceInput, UserStreamChunk, UserStreamResult, UserTextResult, UserVideoResult, } from "./types.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/bin/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
package/bin/index.js
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 导出终端用户客户端、管理端客户端和 SDK 公共类型。
|
|
5
5
|
*/
|
|
6
|
-
export { AdminClient, AdminEnvClient, AdminProductsClient,
|
|
6
|
+
export { AdminClient, AdminEnvClient, AdminProductsClient, AdminTokensClient } from "./AdminClient.js";
|
|
7
7
|
export { UserClient } from "./UserClient.js";
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
package/bin/types.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @visiblebase/client 公共类型。
|
|
3
3
|
*
|
|
4
|
-
* 这里描述终端用户 SDK
|
|
4
|
+
* 这里描述终端用户 SDK、管理端 SDK 和模型选择器的对外契约,不包含具体请求逻辑。
|
|
5
5
|
*/
|
|
6
|
+
import type { UIMessage, UIMessageChunk } from "ai";
|
|
6
7
|
/**
|
|
7
8
|
* fetch 返回对象的最小接口。
|
|
8
9
|
*/
|
|
@@ -16,18 +17,42 @@ export interface FetchResponseLike {
|
|
|
16
17
|
*/
|
|
17
18
|
status: number;
|
|
18
19
|
/**
|
|
19
|
-
*
|
|
20
|
+
* 原始流式响应体。
|
|
20
21
|
*/
|
|
21
|
-
body
|
|
22
|
+
body: UserRawStreamBody;
|
|
22
23
|
/**
|
|
23
|
-
* 读取 JSON
|
|
24
|
+
* 读取 JSON。
|
|
24
25
|
*/
|
|
25
26
|
json(): Promise<unknown>;
|
|
26
27
|
/**
|
|
27
|
-
*
|
|
28
|
+
* 读取文本。
|
|
28
29
|
*/
|
|
29
30
|
text(): Promise<string>;
|
|
30
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;
|
|
31
56
|
/**
|
|
32
57
|
* SDK 使用的 fetch 函数签名。
|
|
33
58
|
*/
|
|
@@ -50,7 +75,7 @@ export interface RequestInitLike {
|
|
|
50
75
|
*/
|
|
51
76
|
headers?: Record<string, string>;
|
|
52
77
|
/**
|
|
53
|
-
*
|
|
78
|
+
* 请求体。
|
|
54
79
|
*/
|
|
55
80
|
body?: string;
|
|
56
81
|
}
|
|
@@ -59,34 +84,106 @@ export interface RequestInitLike {
|
|
|
59
84
|
*/
|
|
60
85
|
export interface UserClientOptions {
|
|
61
86
|
/**
|
|
62
|
-
* VisibleBase
|
|
87
|
+
* VisibleBase 对终端用户开放的 base URL。
|
|
63
88
|
*/
|
|
64
89
|
base_url: string;
|
|
90
|
+
/**
|
|
91
|
+
* 当前客户端绑定的 Product ID。
|
|
92
|
+
*/
|
|
93
|
+
product_id: string;
|
|
65
94
|
/**
|
|
66
95
|
* 开发者后端签发给终端用户的 user_token。
|
|
67
96
|
*/
|
|
68
97
|
user_token: string;
|
|
69
98
|
/**
|
|
70
|
-
* 自定义 fetch
|
|
99
|
+
* 自定义 fetch 实现。
|
|
71
100
|
*/
|
|
72
101
|
fetch?: FetchLike;
|
|
73
102
|
}
|
|
74
103
|
/**
|
|
75
|
-
*
|
|
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 构造参数。
|
|
76
175
|
*/
|
|
77
176
|
export interface AdminClientOptions {
|
|
78
177
|
/**
|
|
79
|
-
*
|
|
178
|
+
* Base 管理端 base URL。
|
|
80
179
|
*/
|
|
81
180
|
base_url: string;
|
|
82
181
|
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* 未传入时会读取 `process.env.VISIBLEBASE_ADMIN_SECRET_KEY`。
|
|
182
|
+
* 管理密钥。
|
|
86
183
|
*/
|
|
87
184
|
admin_secret_key?: string;
|
|
88
185
|
/**
|
|
89
|
-
* 自定义 fetch
|
|
186
|
+
* 自定义 fetch 实现。
|
|
90
187
|
*/
|
|
91
188
|
fetch?: FetchLike;
|
|
92
189
|
}
|
|
@@ -99,7 +196,7 @@ export interface AdminEnvEntry {
|
|
|
99
196
|
*/
|
|
100
197
|
key: string;
|
|
101
198
|
/**
|
|
102
|
-
*
|
|
199
|
+
* 环境变量值。
|
|
103
200
|
*/
|
|
104
201
|
value: string;
|
|
105
202
|
/**
|
|
@@ -108,23 +205,23 @@ export interface AdminEnvEntry {
|
|
|
108
205
|
source: "dotenv";
|
|
109
206
|
}
|
|
110
207
|
/**
|
|
111
|
-
* 管理端签发
|
|
208
|
+
* 管理端签发 token 的输入。
|
|
112
209
|
*/
|
|
113
|
-
export interface
|
|
210
|
+
export interface AdminTokenApplyInput {
|
|
114
211
|
/**
|
|
115
|
-
*
|
|
212
|
+
* token 所属 Product ID。
|
|
116
213
|
*/
|
|
117
214
|
product_id: string;
|
|
118
215
|
/**
|
|
119
|
-
*
|
|
216
|
+
* token 所属用户 ID。
|
|
120
217
|
*/
|
|
121
218
|
user_id: string;
|
|
122
219
|
/**
|
|
123
|
-
* 写入
|
|
220
|
+
* 写入 token 的业务元数据。
|
|
124
221
|
*/
|
|
125
222
|
metadata?: Record<string, unknown>;
|
|
126
223
|
/**
|
|
127
|
-
*
|
|
224
|
+
* token 有效期。
|
|
128
225
|
*/
|
|
129
226
|
ttl?: string | number;
|
|
130
227
|
}
|
|
@@ -137,11 +234,11 @@ export interface AdminProduct {
|
|
|
137
234
|
*/
|
|
138
235
|
product_id: string;
|
|
139
236
|
/**
|
|
140
|
-
* Product
|
|
237
|
+
* Product 名称。
|
|
141
238
|
*/
|
|
142
239
|
name: string;
|
|
143
240
|
/**
|
|
144
|
-
* Product
|
|
241
|
+
* Product 状态。
|
|
145
242
|
*/
|
|
146
243
|
status: "active" | "paused";
|
|
147
244
|
/**
|
|
@@ -154,11 +251,11 @@ export interface AdminProduct {
|
|
|
154
251
|
updated_at: string;
|
|
155
252
|
}
|
|
156
253
|
/**
|
|
157
|
-
* 创建
|
|
254
|
+
* 创建 Product 的输入。
|
|
158
255
|
*/
|
|
159
256
|
export interface AdminProductCreateInput {
|
|
160
257
|
/**
|
|
161
|
-
* Product
|
|
258
|
+
* Product 名称。
|
|
162
259
|
*/
|
|
163
260
|
name: string;
|
|
164
261
|
}
|
|
@@ -172,23 +269,23 @@ export interface AdminProductIdInput {
|
|
|
172
269
|
product_id: string;
|
|
173
270
|
}
|
|
174
271
|
/**
|
|
175
|
-
*
|
|
272
|
+
* token 签发结果。
|
|
176
273
|
*/
|
|
177
|
-
export interface
|
|
274
|
+
export interface AdminTokenApplyResult {
|
|
178
275
|
/**
|
|
179
|
-
*
|
|
276
|
+
* user_token。
|
|
180
277
|
*/
|
|
181
278
|
user_token: string;
|
|
182
279
|
/**
|
|
183
|
-
*
|
|
280
|
+
* token 所属 Product ID。
|
|
184
281
|
*/
|
|
185
282
|
product_id: string;
|
|
186
283
|
/**
|
|
187
|
-
*
|
|
284
|
+
* token 所属用户 ID。
|
|
188
285
|
*/
|
|
189
286
|
user_id: string;
|
|
190
287
|
/**
|
|
191
|
-
*
|
|
288
|
+
* token 过期时间。
|
|
192
289
|
*/
|
|
193
290
|
expires_at?: string;
|
|
194
291
|
}
|
|
@@ -201,7 +298,7 @@ export interface AdminEnvUpsertInput {
|
|
|
201
298
|
*/
|
|
202
299
|
key: string;
|
|
203
300
|
/**
|
|
204
|
-
*
|
|
301
|
+
* 环境变量值。
|
|
205
302
|
*/
|
|
206
303
|
value: string;
|
|
207
304
|
}
|
package/bin/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,EAAE,EAAE,OAAO,CAAC;IAEZ;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/bin/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visiblebase/client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "VisibleBase user and admin client SDK.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./bin/index.js",
|
|
@@ -37,12 +37,15 @@
|
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsc",
|
|
39
39
|
"dev": "tsc --watch",
|
|
40
|
-
"typecheck": "tsc --noEmit",
|
|
41
|
-
"test": "tsc && node --test test/*.test.mjs",
|
|
40
|
+
"typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
|
|
41
|
+
"test": "tsc && tsc -p tsconfig.test.json && node --test test/*.test.mjs",
|
|
42
42
|
"prepack": "npm run build"
|
|
43
43
|
},
|
|
44
44
|
"license": "MIT",
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.7.0"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"ai": "^6.0.168"
|
|
47
50
|
}
|
|
48
51
|
}
|