@vectorx/ai-sdk 0.0.0-beta-20251112071234

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 (52) hide show
  1. package/README.md +1 -0
  2. package/lib/agent/index.d.ts +17 -0
  3. package/lib/agent/index.js +69 -0
  4. package/lib/ai.d.ts +16 -0
  5. package/lib/ai.js +90 -0
  6. package/lib/eventsource_parser/index.d.ts +2 -0
  7. package/lib/eventsource_parser/index.js +5 -0
  8. package/lib/eventsource_parser/parse.d.ts +2 -0
  9. package/lib/eventsource_parser/parse.js +124 -0
  10. package/lib/eventsource_parser/stream.d.ts +5 -0
  11. package/lib/eventsource_parser/stream.js +22 -0
  12. package/lib/eventsource_parser/types.d.ts +16 -0
  13. package/lib/eventsource_parser/types.js +2 -0
  14. package/lib/index.d.ts +14 -0
  15. package/lib/index.js +56 -0
  16. package/lib/model-type.d.ts +207 -0
  17. package/lib/model-type.js +24 -0
  18. package/lib/models/Chat.d.ts +14 -0
  19. package/lib/models/Chat.js +36 -0
  20. package/lib/models/Default/index.d.ts +11 -0
  21. package/lib/models/Default/index.js +68 -0
  22. package/lib/models/Qwen25T2iPreview/index.d.ts +76 -0
  23. package/lib/models/Qwen25T2iPreview/index.js +211 -0
  24. package/lib/models/QwenDocTurbo/adapters/DashScope.d.ts +25 -0
  25. package/lib/models/QwenDocTurbo/adapters/DashScope.js +179 -0
  26. package/lib/models/QwenDocTurbo/adapters/OpenAICompat.d.ts +24 -0
  27. package/lib/models/QwenDocTurbo/adapters/OpenAICompat.js +143 -0
  28. package/lib/models/QwenDocTurbo/index.d.ts +16 -0
  29. package/lib/models/QwenDocTurbo/index.js +86 -0
  30. package/lib/models/QwenDocTurbo/types.d.ts +124 -0
  31. package/lib/models/QwenDocTurbo/types.js +2 -0
  32. package/lib/models/QwenImage/index.d.ts +81 -0
  33. package/lib/models/QwenImage/index.js +208 -0
  34. package/lib/models/QwenImageEdit/index.d.ts +77 -0
  35. package/lib/models/QwenImageEdit/index.js +205 -0
  36. package/lib/models/QwenSketchToImage/index.d.ts +35 -0
  37. package/lib/models/QwenSketchToImage/index.js +155 -0
  38. package/lib/models/QwenStyleRepaintV1/index.d.ts +114 -0
  39. package/lib/models/QwenStyleRepaintV1/index.js +213 -0
  40. package/lib/models/QwenVlMax/index.d.ts +78 -0
  41. package/lib/models/QwenVlMax/index.js +121 -0
  42. package/lib/models/index.d.ts +56 -0
  43. package/lib/models/index.js +77 -0
  44. package/lib/models/react.d.ts +8 -0
  45. package/lib/models/react.js +28 -0
  46. package/lib/stream.d.ts +47 -0
  47. package/lib/stream.js +138 -0
  48. package/lib/tokenManager.d.ts +36 -0
  49. package/lib/tokenManager.js +89 -0
  50. package/lib/utils.d.ts +1 -0
  51. package/lib/utils.js +54 -0
  52. package/package.json +49 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ ### 小程序/智能体 ai sdk
@@ -0,0 +1,17 @@
1
+ import type { GetAgentInfoResponse, GetConversationsResponse, GetHistoryMessagesParams, GetHistoryMessagesResponse, SendMessageInput } from "@vectorx/ai-types";
2
+ import type { IAbstractRequest } from "@vectorx/ai-types";
3
+ import type { IAgent, IAgentOptions } from "../model-type";
4
+ export declare enum AiSdkEnv {
5
+ Cloud = "cloud",
6
+ MiniProgram = "miniprogram"
7
+ }
8
+ export declare class Agent implements IAgent {
9
+ private readonly req;
10
+ private readonly baseUrl;
11
+ private readonly options;
12
+ constructor(req: IAbstractRequest, baseUrl: string, options: IAgentOptions);
13
+ sendMessage(props: SendMessageInput): Promise<any>;
14
+ getHistoryMessages(props: GetHistoryMessagesParams): Promise<GetHistoryMessagesResponse>;
15
+ getAgentInfo(): Promise<GetAgentInfoResponse>;
16
+ getConversations(): Promise<GetConversationsResponse>;
17
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Agent = exports.AiSdkEnv = void 0;
13
+ var AiSdkEnv;
14
+ (function (AiSdkEnv) {
15
+ AiSdkEnv["Cloud"] = "cloud";
16
+ AiSdkEnv["MiniProgram"] = "miniprogram";
17
+ })(AiSdkEnv || (exports.AiSdkEnv = AiSdkEnv = {}));
18
+ class Agent {
19
+ constructor(req, baseUrl, options) {
20
+ this.req = req;
21
+ this.baseUrl = baseUrl;
22
+ this.options = options;
23
+ }
24
+ sendMessage(props) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const fetchHeaders = {
27
+ "Content-Type": "application/json",
28
+ Accept: "text/event-stream",
29
+ };
30
+ const response = yield this.req.fetch({
31
+ method: "post",
32
+ headers: Object.assign({}, fetchHeaders),
33
+ body: props,
34
+ url: `${this.baseUrl}/v1/aiagent/agents/${this.options.agentId}/send-message`,
35
+ stream: true,
36
+ });
37
+ return response;
38
+ });
39
+ }
40
+ getHistoryMessages(props) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const response = yield this.req.get({
43
+ method: "GET",
44
+ url: `${this.baseUrl}/v1/aiagent/agents/${this.options.agentId}/messages`,
45
+ data: props,
46
+ });
47
+ return response.data;
48
+ });
49
+ }
50
+ getAgentInfo() {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ const response = yield this.req.get({
53
+ method: "GET",
54
+ url: `${this.baseUrl}/v1/aiagent/agents/${this.options.agentId}/info`,
55
+ });
56
+ return response.data;
57
+ });
58
+ }
59
+ getConversations() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const response = yield this.req.get({
62
+ method: "GET",
63
+ url: `${this.baseUrl}/v1/aiagent/agents/${this.options.agentId}/conversations`,
64
+ });
65
+ return response.data;
66
+ });
67
+ }
68
+ }
69
+ exports.Agent = Agent;
package/lib/ai.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import type { IAbstractRequest } from "@vectorx/ai-types";
2
+ import { Agent } from "./agent";
3
+ import { AiSdkEnv } from "./index";
4
+ import type * as types from "./model-type";
5
+ import * as models from "./models";
6
+ import { TokenManager } from "./tokenManager";
7
+ export declare class AI {
8
+ env: AiSdkEnv;
9
+ protected baseUrl: string;
10
+ protected request: IAbstractRequest;
11
+ tokenManager: TokenManager;
12
+ constructor(request: IAbstractRequest, baseUrl: string, env: AiSdkEnv);
13
+ createModel(model: models.ModelName | models.MultiModalModelName): models.ReActModel;
14
+ createAgent(options: types.IAgentOptions): Agent;
15
+ registerFunctionTool(functionTool: types.FunctionTool): void;
16
+ }
package/lib/ai.js ADDED
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AI = void 0;
37
+ const agent_1 = require("./agent");
38
+ const index_1 = require("./index");
39
+ const models = __importStar(require("./models"));
40
+ const tokenManager_1 = require("./tokenManager");
41
+ class AI {
42
+ constructor(request, baseUrl, env) {
43
+ this.env = index_1.AiSdkEnv.Cloud;
44
+ this.baseUrl = baseUrl;
45
+ this.request = request;
46
+ this.env = env;
47
+ this.tokenManager = new tokenManager_1.TokenManager(this.request, this.baseUrl);
48
+ }
49
+ createModel(model) {
50
+ if (this.env === index_1.AiSdkEnv.MiniProgram) {
51
+ console.warn(`[${index_1.AiSdkEnv.MiniProgram}] is not supported for model creation`);
52
+ return null;
53
+ }
54
+ if (!models.isValidModel(model)) {
55
+ throw new Error(`[${model}] is not supported, please check the model name`);
56
+ }
57
+ switch (model) {
58
+ case models.MultiModalModelName.QwenImage:
59
+ return new models.ReActModel(new models.QwenImageModel(this.request, models.QwenImageModel.BASE_URL, this.tokenManager));
60
+ case models.MultiModalModelName.QwenImageEdit:
61
+ return new models.ReActModel(new models.QwenImageEditModel(this.request, models.QwenImageEditModel.BASE_URL, this.tokenManager));
62
+ case models.MultiModalModelName.WanxSketchToImageLite:
63
+ return new models.ReActModel(new models.WanxSketchToImageLiteModel(this.request, models.WanxSketchToImageLiteModel.BASE_URL, this.tokenManager));
64
+ case models.MultiModalModelName.QwenStyleRepaintV1:
65
+ return new models.ReActModel(new models.QwenStyleRepaintV1Model(this.request, models.QwenStyleRepaintV1Model.BASE_URL, this.tokenManager));
66
+ case models.MultiModalModelName.Qwen25T2iPreview:
67
+ return new models.ReActModel(new models.Qwen25T2iPreviewModel(this.request, models.Qwen25T2iPreviewModel.BASE_URL, this.tokenManager));
68
+ case models.MultiModalModelName.QwenVlMax:
69
+ return new models.ReActModel(new models.QwenVlMax(this.request, models.QwenVlMax.BASE_URL, model, this.tokenManager));
70
+ case models.MultiModalModelName.QwenDocTurbo:
71
+ return new models.ReActModel(new models.QwenDocTurbo(this.request, models.QwenDocTurbo.BASE_URL, model, this.tokenManager));
72
+ default:
73
+ return new models.ReActModel(new models.DefaultSimpleModel(this.request, this.baseUrl, model));
74
+ }
75
+ }
76
+ createAgent(options) {
77
+ if (this.env === index_1.AiSdkEnv.Cloud) {
78
+ console.warn(`[${index_1.AiSdkEnv.Cloud}] is not supported for \`Agent\` creation !`);
79
+ return null;
80
+ }
81
+ return new agent_1.Agent(this.request, this.baseUrl, options);
82
+ }
83
+ registerFunctionTool(functionTool) {
84
+ if (models.toolMap.has(functionTool.name)) {
85
+ console.warn(`AI function tool ${functionTool.name} already exists and will be overwritten!`);
86
+ }
87
+ models.toolMap.set(functionTool.name, functionTool.fn);
88
+ }
89
+ }
90
+ exports.AI = AI;
@@ -0,0 +1,2 @@
1
+ export type { EventSourceParser, ParsedEvent, ReconnectInterval, ParseEvent, EventSourceParseCallback, } from "./types";
2
+ export { createParser } from "./parse";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createParser = void 0;
4
+ var parse_1 = require("./parse");
5
+ Object.defineProperty(exports, "createParser", { enumerable: true, get: function () { return parse_1.createParser; } });
@@ -0,0 +1,2 @@
1
+ import type { EventSourceParseCallback, EventSourceParser } from "./types";
2
+ export declare function createParser(onParse: EventSourceParseCallback): EventSourceParser;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createParser = createParser;
4
+ function createParser(onParse) {
5
+ let isFirstChunk;
6
+ let buffer;
7
+ let startingPosition;
8
+ let startingFieldLength;
9
+ let eventId;
10
+ let eventName;
11
+ let data;
12
+ reset();
13
+ return { feed, reset };
14
+ function reset() {
15
+ isFirstChunk = true;
16
+ buffer = "";
17
+ startingPosition = 0;
18
+ startingFieldLength = -1;
19
+ eventId = undefined;
20
+ eventName = undefined;
21
+ data = "";
22
+ }
23
+ function feed(chunk) {
24
+ buffer = buffer ? buffer + chunk : chunk;
25
+ if (isFirstChunk && hasBom(buffer)) {
26
+ buffer = buffer.slice(BOM.length);
27
+ }
28
+ isFirstChunk = false;
29
+ const { length } = buffer;
30
+ let position = 0;
31
+ let discardTrailingNewline = false;
32
+ while (position < length) {
33
+ if (discardTrailingNewline) {
34
+ if (buffer[position] === "\n") {
35
+ position += 1;
36
+ }
37
+ discardTrailingNewline = false;
38
+ }
39
+ let lineLength = -1;
40
+ let fieldLength = startingFieldLength;
41
+ let character;
42
+ for (let index = startingPosition; lineLength < 0 && index < length; index++) {
43
+ character = buffer[index];
44
+ if (character === ":" && fieldLength < 0) {
45
+ fieldLength = index - position;
46
+ }
47
+ else if (character === "\r") {
48
+ discardTrailingNewline = true;
49
+ lineLength = index - position;
50
+ }
51
+ else if (character === "\n") {
52
+ lineLength = index - position;
53
+ }
54
+ }
55
+ if (lineLength < 0) {
56
+ startingPosition = length - position;
57
+ startingFieldLength = fieldLength;
58
+ break;
59
+ }
60
+ else {
61
+ startingPosition = 0;
62
+ startingFieldLength = -1;
63
+ }
64
+ parseEventStreamLine(buffer, position, fieldLength, lineLength);
65
+ position += lineLength + 1;
66
+ }
67
+ if (position === length) {
68
+ buffer = "";
69
+ }
70
+ else if (position > 0) {
71
+ buffer = buffer.slice(position);
72
+ }
73
+ }
74
+ function parseEventStreamLine(lineBuffer, index, fieldLength, lineLength) {
75
+ if (lineLength === 0) {
76
+ if (data.length > 0) {
77
+ onParse({
78
+ type: "event",
79
+ id: eventId,
80
+ event: eventName || undefined,
81
+ data: data.slice(0, -1),
82
+ });
83
+ data = "";
84
+ eventId = undefined;
85
+ }
86
+ eventName = undefined;
87
+ return;
88
+ }
89
+ const noValue = fieldLength < 0;
90
+ const field = lineBuffer.slice(index, index + (noValue ? lineLength : fieldLength));
91
+ let step = 0;
92
+ if (noValue) {
93
+ step = lineLength;
94
+ }
95
+ else if (lineBuffer[index + fieldLength + 1] === " ") {
96
+ step = fieldLength + 2;
97
+ }
98
+ else {
99
+ step = fieldLength + 1;
100
+ }
101
+ const position = index + step;
102
+ const valueLength = lineLength - step;
103
+ const value = lineBuffer.slice(position, position + valueLength).toString();
104
+ if (field === "data") {
105
+ data += value ? `${value}\n` : "\n";
106
+ }
107
+ else if (field === "event") {
108
+ eventName = value;
109
+ }
110
+ else if (field === "id" && !value.includes("\u0000")) {
111
+ eventId = value;
112
+ }
113
+ else if (field === "retry") {
114
+ const retry = Number.parseInt(value, 10);
115
+ if (!Number.isNaN(retry)) {
116
+ onParse({ type: "reconnect-interval", value: retry });
117
+ }
118
+ }
119
+ }
120
+ }
121
+ const BOM = [239, 187, 191];
122
+ function hasBom(buffer) {
123
+ return BOM.every((charCode, index) => buffer.charCodeAt(index) === charCode);
124
+ }
@@ -0,0 +1,5 @@
1
+ import type { ParsedEvent } from "./types";
2
+ export declare class EventSourceParserStream extends TransformStream<string, ParsedEvent> {
3
+ constructor();
4
+ }
5
+ export type { ParsedEvent } from "./types";
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventSourceParserStream = void 0;
4
+ const parse_1 = require("./parse");
5
+ class EventSourceParserStream extends TransformStream {
6
+ constructor() {
7
+ let parser;
8
+ super({
9
+ start(controller) {
10
+ parser = (0, parse_1.createParser)((event) => {
11
+ if (event.type === "event") {
12
+ controller.enqueue(event);
13
+ }
14
+ });
15
+ },
16
+ transform(chunk) {
17
+ parser.feed(chunk);
18
+ },
19
+ });
20
+ }
21
+ }
22
+ exports.EventSourceParserStream = EventSourceParserStream;
@@ -0,0 +1,16 @@
1
+ export interface EventSourceParser {
2
+ feed(chunk: string): void;
3
+ reset(): void;
4
+ }
5
+ export interface ParsedEvent {
6
+ type: "event";
7
+ event?: string;
8
+ id?: string;
9
+ data: string;
10
+ }
11
+ export interface ReconnectInterval {
12
+ type: "reconnect-interval";
13
+ value: number;
14
+ }
15
+ export type ParseEvent = ParsedEvent | ReconnectInterval;
16
+ export type EventSourceParseCallback = (event: ParseEvent) => void;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/lib/index.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import type { IAbstractRequest } from "@vectorx/ai-types";
2
+ import { AiSdkEnv } from "./agent";
3
+ import { AI } from "./ai";
4
+ import { IAgentEnv } from "./model-type";
5
+ import * as models from "./models";
6
+ interface ICreateAi {
7
+ getBaseUrl: () => string;
8
+ request: IAbstractRequest;
9
+ env?: AiSdkEnv;
10
+ }
11
+ declare function createAi({ getBaseUrl, request, env }: ICreateAi): AI;
12
+ export * from "./model-type";
13
+ export * from "./tokenManager";
14
+ export { createAi, models, AI, AiSdkEnv, IAgentEnv };
package/lib/index.js ADDED
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.IAgentEnv = exports.AiSdkEnv = exports.AI = exports.models = void 0;
40
+ exports.createAi = createAi;
41
+ const agent_1 = require("./agent");
42
+ Object.defineProperty(exports, "AiSdkEnv", { enumerable: true, get: function () { return agent_1.AiSdkEnv; } });
43
+ const ai_1 = require("./ai");
44
+ Object.defineProperty(exports, "AI", { enumerable: true, get: function () { return ai_1.AI; } });
45
+ const model_type_1 = require("./model-type");
46
+ Object.defineProperty(exports, "IAgentEnv", { enumerable: true, get: function () { return model_type_1.IAgentEnv; } });
47
+ const models = __importStar(require("./models"));
48
+ exports.models = models;
49
+ function createAi({ getBaseUrl, request, env = agent_1.AiSdkEnv.Cloud }) {
50
+ if (getBaseUrl == null || typeof getBaseUrl !== "function") {
51
+ throw new Error("`getBaseUrl` is required!");
52
+ }
53
+ return new ai_1.AI(request, getBaseUrl(), env);
54
+ }
55
+ __exportStar(require("./model-type"), exports);
56
+ __exportStar(require("./tokenManager"), exports);
@@ -0,0 +1,207 @@
1
+ import type { GetAgentInfoResponse, GetConversationsResponse, GetHistoryMessagesParams, GetHistoryMessagesResponse, QueryTasksResponse, SendMessageInput, UploadFileInput, UploadFileResponse } from "@vectorx/ai-types";
2
+ import type { ModelName } from "./models";
3
+ export type { GetAgentInfoResponse, GetConversationsResponse, GetHistoryMessagesParams, GetHistoryMessagesResponse, SendMessageInput, QueryTasksResponse, UploadFileInput, UploadFileResponse, };
4
+ export type DoGenerateOutput = BaseDoGenerateOutput;
5
+ export type DoStreamOutput = AsyncIterableReadableStream<BaseDoStreamOutputChunk>;
6
+ export type AsyncIterableReadableStream<T> = ReadableStream<T> & {
7
+ [Symbol.asyncIterator]: () => {
8
+ next(): Promise<IteratorResult<T>>;
9
+ };
10
+ };
11
+ export interface TextContent {
12
+ type: "text";
13
+ text: string;
14
+ }
15
+ export interface ImageUrlContent {
16
+ type: "image_url";
17
+ image_url: {
18
+ url: string;
19
+ detail?: "auto" | "low" | "high";
20
+ };
21
+ }
22
+ export interface DocUrlContent {
23
+ type: "doc_url";
24
+ doc_url: string[];
25
+ file_parsing_strategy?: "auto" | "text_only";
26
+ }
27
+ export interface VideoUrlContent {
28
+ type: "video_url";
29
+ video_url: {
30
+ url: string;
31
+ };
32
+ }
33
+ export interface AudioUrlContent {
34
+ type: "audio_url";
35
+ audio_url: {
36
+ url: string;
37
+ };
38
+ }
39
+ export interface VideoContent {
40
+ type: "video";
41
+ video: string[];
42
+ }
43
+ export interface AudioContent {
44
+ type: "audio";
45
+ audio: string[];
46
+ }
47
+ export type MultiModalContent = TextContent | ImageUrlContent | DocUrlContent | VideoUrlContent | AudioUrlContent | VideoContent | AudioContent;
48
+ export type SupportedContentType = MultiModalContent["type"];
49
+ export declare function filterContentByTypes<T extends SupportedContentType>(content: MultiModalContent[], supportedTypes: T[]): Extract<MultiModalContent, {
50
+ type: T;
51
+ }>[];
52
+ export declare function hasContentType(content: string | MultiModalContent[], type: SupportedContentType): boolean;
53
+ export declare function extractContentByType<T extends SupportedContentType>(content: string | MultiModalContent[], type: T): Extract<MultiModalContent, {
54
+ type: T;
55
+ }>[];
56
+ export interface ModelRequestOptions {
57
+ async?: boolean;
58
+ model: ModelName | string;
59
+ max_tokens?: number;
60
+ temperature?: number;
61
+ top_p?: number;
62
+ n?: number;
63
+ conversation_id?: string;
64
+ frequency_penalty?: number;
65
+ presence_penalty?: number;
66
+ stream?: boolean;
67
+ platform_tools?: Array<{
68
+ plantform_tool_id: string;
69
+ payload: any;
70
+ }>;
71
+ messages?: Array<{
72
+ role: string;
73
+ content: string | MultiModalContent[];
74
+ }>;
75
+ knowledge_base?: Array<{
76
+ knowledge_base_id: string;
77
+ search_mode?: "vector" | "full_text" | "hybrid";
78
+ limit?: number;
79
+ score_threshold?: number;
80
+ }>;
81
+ db_base?: any[];
82
+ enable_thinking?: boolean;
83
+ enable_search?: boolean;
84
+ parameters?: any;
85
+ }
86
+ export type ModelReq = <T extends ModelRequestOptions>(props: T) => T["stream"] extends true ? Promise<ReadableStream<Uint8Array>> : Promise<Object>;
87
+ export interface IAgentReqInput {
88
+ url: string;
89
+ method: string;
90
+ headers?: Record<string, string>;
91
+ data?: Object;
92
+ stream?: boolean;
93
+ timeout?: number;
94
+ }
95
+ export interface ReqOptions {
96
+ timeout?: number;
97
+ headers?: Record<string, string>;
98
+ method?: string;
99
+ }
100
+ export type AgentReq = <T extends IAgentReqInput>(props: T) => T["stream"] extends true ? Promise<ReadableStream<Uint8Array>> : Promise<Object>;
101
+ export type UserMessage = {
102
+ role: "user";
103
+ content: string;
104
+ };
105
+ export type SystemMessage = {
106
+ role: "system";
107
+ content: string;
108
+ };
109
+ export type AssistantMessage = PlainAssistantMessage | ToolCallAssistantMessage;
110
+ export type PlainAssistantMessage = {
111
+ role: "assistant";
112
+ content: string;
113
+ };
114
+ export type ToolCallAssistantMessage = {
115
+ role: "assistant";
116
+ tool_calls: Array<ToolCall>;
117
+ content?: string;
118
+ };
119
+ export type ToolMessage = {
120
+ role: "tool";
121
+ tool_call_id: string;
122
+ content: string;
123
+ };
124
+ export type ChatModelMessage = UserMessage | SystemMessage | AssistantMessage | ToolMessage;
125
+ export type FunctionTool = {
126
+ name: string;
127
+ description: string;
128
+ fn: CallableFunction;
129
+ parameters: object;
130
+ };
131
+ export type ModelTool = {
132
+ type: string;
133
+ function: ModelToolFunction;
134
+ };
135
+ export type ModelToolFunction = {
136
+ name: string;
137
+ description: string;
138
+ parameters: object;
139
+ };
140
+ export type ToolCall = {
141
+ id: string;
142
+ type: string;
143
+ function: {
144
+ name: string;
145
+ arguments: string;
146
+ };
147
+ };
148
+ export interface BaseDoGenerateOutput extends ChatCompletion {
149
+ }
150
+ export interface BaseDoStreamOutputChunk extends ChatCompletion {
151
+ }
152
+ export interface ChatCompletion {
153
+ id: string;
154
+ log_id: string;
155
+ object: string;
156
+ error: string;
157
+ message?: string;
158
+ code: number;
159
+ created: number;
160
+ model: string;
161
+ choices: Choice[];
162
+ usage: Usage;
163
+ }
164
+ export type MessageType = "answer" | "image" | "video" | "async_task" | "function_call" | "function_call_response" | "knowledge_base_search" | "knowledge_base_search_response" | "error";
165
+ export interface Choice {
166
+ index: number;
167
+ message: {
168
+ id: string;
169
+ role: string;
170
+ type: MessageType;
171
+ reasoning_content?: string;
172
+ content?: string;
173
+ knowledge_retrieval?: any[];
174
+ db_operations?: any[];
175
+ search_results?: any[];
176
+ };
177
+ finish_reason: string;
178
+ delta?: {
179
+ content?: string;
180
+ reasoning_content?: string;
181
+ };
182
+ }
183
+ interface Usage {
184
+ prompt_tokens: number;
185
+ completion_tokens: number;
186
+ knowledge_tokens: number;
187
+ reasoning_tokens: number;
188
+ total_tokens: number;
189
+ }
190
+ export interface IAgent {
191
+ sendMessage(input: SendMessageInput): Promise<any>;
192
+ getHistoryMessages?(input: GetHistoryMessagesParams): Promise<GetHistoryMessagesResponse>;
193
+ getAgentInfo?(): Promise<GetAgentInfoResponse>;
194
+ getConversations?(): Promise<GetConversationsResponse>;
195
+ queryTasks?(task_id?: string): Promise<QueryTasksResponse>;
196
+ uploadFile?(input: UploadFileInput): Promise<UploadFileResponse>;
197
+ }
198
+ export declare enum IAgentEnv {
199
+ Production = "production",
200
+ Development = "development"
201
+ }
202
+ export interface IAgentOptions {
203
+ agentId: string;
204
+ accessToken: string;
205
+ version?: string;
206
+ env: IAgentEnv;
207
+ }