test-wuying-agentbay-sdk 0.13.1-beta.20251223194518 → 0.13.1-beta.20251224091333
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/dist/{chunk-P2CXYF4T.mjs → chunk-GQ4JBIRO.mjs} +379 -226
- package/dist/chunk-GQ4JBIRO.mjs.map +1 -0
- package/dist/{chunk-WVWGLZDT.cjs → chunk-ODIP5OS3.cjs} +287 -134
- package/dist/chunk-ODIP5OS3.cjs.map +1 -0
- package/dist/index.cjs +555 -360
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +204 -120
- package/dist/index.d.ts +204 -120
- package/dist/index.mjs +493 -298
- package/dist/index.mjs.map +1 -1
- package/dist/model-K7FVXK3C.cjs +222 -0
- package/dist/{model-KJHN3WYY.cjs.map → model-K7FVXK3C.cjs.map} +1 -1
- package/dist/{model-BRLR6F3P.mjs → model-O3ASLZ3Y.mjs} +10 -2
- package/docs/api/common-features/advanced/agent.md +5 -3
- package/docs/api/common-features/advanced/mobile-use-agent.md +161 -0
- package/package.json +1 -1
- package/dist/chunk-P2CXYF4T.mjs.map +0 -1
- package/dist/chunk-WVWGLZDT.cjs.map +0 -1
- package/dist/model-KJHN3WYY.cjs +0 -214
- /package/dist/{model-BRLR6F3P.mjs.map → model-O3ASLZ3Y.mjs.map} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -79,6 +79,10 @@ import {
|
|
|
79
79
|
GetMcpResourceResponseBody,
|
|
80
80
|
GetMcpResourceResponseBodyData,
|
|
81
81
|
GetMcpResourceResponseBodyDataDesktopInfo,
|
|
82
|
+
GetSessionDetailRequest,
|
|
83
|
+
GetSessionDetailResponse,
|
|
84
|
+
GetSessionDetailResponseBody,
|
|
85
|
+
GetSessionDetailResponseBodyData,
|
|
82
86
|
GetSessionRequest,
|
|
83
87
|
GetSessionResponse,
|
|
84
88
|
GetSessionResponseBody,
|
|
@@ -116,7 +120,7 @@ import {
|
|
|
116
120
|
SyncContextRequest,
|
|
117
121
|
SyncContextResponse,
|
|
118
122
|
SyncContextResponseBody
|
|
119
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-GQ4JBIRO.mjs";
|
|
120
124
|
import {
|
|
121
125
|
__commonJS,
|
|
122
126
|
__dirname,
|
|
@@ -1118,6 +1122,53 @@ var _Client = class _Client extends (OpenApi.default || OpenApi) {
|
|
|
1118
1122
|
const runtime = new $dara.RuntimeOptions({});
|
|
1119
1123
|
return await this.getSessionWithOptions(request, runtime);
|
|
1120
1124
|
}
|
|
1125
|
+
/**
|
|
1126
|
+
* Get basic session information by session ID
|
|
1127
|
+
*
|
|
1128
|
+
* @param request - GetSessionDetailRequest
|
|
1129
|
+
* @param runtime - runtime options for this request RuntimeOptions
|
|
1130
|
+
* @returns GetSessionDetailResponse
|
|
1131
|
+
*/
|
|
1132
|
+
async getSessionDetailWithOptions(request, runtime) {
|
|
1133
|
+
request.validate();
|
|
1134
|
+
const query = {};
|
|
1135
|
+
if (!$dara.isNull(request.sessionId)) {
|
|
1136
|
+
query["SessionId"] = request.sessionId;
|
|
1137
|
+
}
|
|
1138
|
+
const body = {};
|
|
1139
|
+
if (!$dara.isNull(request.authorization)) {
|
|
1140
|
+
body["Authorization"] = request.authorization;
|
|
1141
|
+
}
|
|
1142
|
+
const req = new $OpenApiUtil.OpenApiRequest({
|
|
1143
|
+
query: OpenApiUtil.query(query),
|
|
1144
|
+
body: OpenApiUtil.parseToMap(body)
|
|
1145
|
+
});
|
|
1146
|
+
const params = new $OpenApiUtil.Params({
|
|
1147
|
+
action: "GetSessionDetail",
|
|
1148
|
+
version: "2025-05-06",
|
|
1149
|
+
protocol: "HTTPS",
|
|
1150
|
+
pathname: "/",
|
|
1151
|
+
method: "POST",
|
|
1152
|
+
authType: "Anonymous",
|
|
1153
|
+
style: "RPC",
|
|
1154
|
+
reqBodyType: "formData",
|
|
1155
|
+
bodyType: "json"
|
|
1156
|
+
});
|
|
1157
|
+
return $dara.cast(
|
|
1158
|
+
await this.callApi(params, req, runtime),
|
|
1159
|
+
new GetSessionDetailResponse({})
|
|
1160
|
+
);
|
|
1161
|
+
}
|
|
1162
|
+
/**
|
|
1163
|
+
* Get basic session information by session ID
|
|
1164
|
+
*
|
|
1165
|
+
* @param request - GetSessionDetailRequest
|
|
1166
|
+
* @returns GetSessionDetailResponse
|
|
1167
|
+
*/
|
|
1168
|
+
async getSessionDetail(request) {
|
|
1169
|
+
const runtime = new $dara.RuntimeOptions({});
|
|
1170
|
+
return await this.getSessionDetailWithOptions(request, runtime);
|
|
1171
|
+
}
|
|
1121
1172
|
/**
|
|
1122
1173
|
* Pause session async
|
|
1123
1174
|
*
|
|
@@ -3835,41 +3886,35 @@ init_esm_shims();
|
|
|
3835
3886
|
|
|
3836
3887
|
// src/agent/agent.ts
|
|
3837
3888
|
init_esm_shims();
|
|
3838
|
-
var
|
|
3839
|
-
/**
|
|
3840
|
-
* Initialize an Computer Agent object.
|
|
3841
|
-
*
|
|
3842
|
-
* @param session - The Session instance that this Agent belongs to.
|
|
3843
|
-
*/
|
|
3889
|
+
var _BaseTaskAgent = class _BaseTaskAgent {
|
|
3844
3890
|
constructor(session) {
|
|
3845
3891
|
this.session = session;
|
|
3846
3892
|
}
|
|
3893
|
+
/**
|
|
3894
|
+
* Get the full MCP tool name based on prefix and action.
|
|
3895
|
+
*/
|
|
3896
|
+
getToolName(action) {
|
|
3897
|
+
const toolMap = {
|
|
3898
|
+
execute: "execute_task",
|
|
3899
|
+
get_status: "get_task_status",
|
|
3900
|
+
terminate: "terminate_task"
|
|
3901
|
+
};
|
|
3902
|
+
const baseName = toolMap[action] || action;
|
|
3903
|
+
if (this.toolPrefix) {
|
|
3904
|
+
return `${this.toolPrefix}_${baseName}`;
|
|
3905
|
+
}
|
|
3906
|
+
return baseName;
|
|
3907
|
+
}
|
|
3847
3908
|
/**
|
|
3848
3909
|
* Execute a specific task described in human language.
|
|
3849
|
-
*
|
|
3850
|
-
* @param task - Task description in human language.
|
|
3851
|
-
* @param maxTryTimes - Maximum number of retry attempts.
|
|
3852
|
-
* @returns ExecutionResult containing success status, task output, and error
|
|
3853
|
-
* message if any.
|
|
3854
|
-
*
|
|
3855
|
-
* @example
|
|
3856
|
-
* ```typescript
|
|
3857
|
-
* const agentBay = new AgentBay({ apiKey: 'your_api_key' });
|
|
3858
|
-
* const result = await agentBay.create({ imageId: 'windows_latest' });
|
|
3859
|
-
* if (result.success) {
|
|
3860
|
-
* const taskResult = await result.session.agent.computer.executeTask(
|
|
3861
|
-
* 'Open notepad',
|
|
3862
|
-
* 10
|
|
3863
|
-
* );
|
|
3864
|
-
* console.log(`Task status: ${taskResult.taskStatus}`);
|
|
3865
|
-
* await result.session.delete();
|
|
3866
|
-
* }
|
|
3867
|
-
* ```
|
|
3868
3910
|
*/
|
|
3869
3911
|
async executeTask(task, maxTryTimes) {
|
|
3870
3912
|
try {
|
|
3871
3913
|
const args = { task, max_try_times: maxTryTimes };
|
|
3872
|
-
const result = await this.session.callMcpTool(
|
|
3914
|
+
const result = await this.session.callMcpTool(
|
|
3915
|
+
this.getToolName("execute"),
|
|
3916
|
+
args
|
|
3917
|
+
);
|
|
3873
3918
|
if (!result.success) {
|
|
3874
3919
|
return {
|
|
3875
3920
|
requestId: result.requestId,
|
|
@@ -3893,7 +3938,7 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
3893
3938
|
taskResult: "Invalid execution response."
|
|
3894
3939
|
};
|
|
3895
3940
|
}
|
|
3896
|
-
const taskId = content.task_id;
|
|
3941
|
+
const taskId = content.taskId || content.task_id;
|
|
3897
3942
|
if (!taskId) {
|
|
3898
3943
|
return {
|
|
3899
3944
|
requestId: result.requestId,
|
|
@@ -3918,13 +3963,13 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
3918
3963
|
};
|
|
3919
3964
|
}
|
|
3920
3965
|
switch (query.taskStatus) {
|
|
3921
|
-
case "
|
|
3966
|
+
case "completed":
|
|
3922
3967
|
return {
|
|
3923
3968
|
requestId: query.requestId,
|
|
3924
3969
|
success: true,
|
|
3925
3970
|
errorMessage: "",
|
|
3926
3971
|
taskId,
|
|
3927
|
-
taskStatus: "
|
|
3972
|
+
taskStatus: "completed",
|
|
3928
3973
|
taskResult: query.taskProduct
|
|
3929
3974
|
};
|
|
3930
3975
|
case "failed":
|
|
@@ -3936,6 +3981,15 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
3936
3981
|
taskStatus: "failed",
|
|
3937
3982
|
taskResult: ""
|
|
3938
3983
|
};
|
|
3984
|
+
case "cancelled":
|
|
3985
|
+
return {
|
|
3986
|
+
requestId: query.requestId,
|
|
3987
|
+
success: false,
|
|
3988
|
+
errorMessage: query.errorMessage || "Task was cancelled.",
|
|
3989
|
+
taskId,
|
|
3990
|
+
taskStatus: "cancelled",
|
|
3991
|
+
taskResult: ""
|
|
3992
|
+
};
|
|
3939
3993
|
case "unsupported":
|
|
3940
3994
|
return {
|
|
3941
3995
|
requestId: query.requestId,
|
|
@@ -3971,32 +4025,20 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
3971
4025
|
}
|
|
3972
4026
|
/**
|
|
3973
4027
|
* Get the status of the task with the given task ID.
|
|
3974
|
-
*
|
|
3975
|
-
* @param taskId - Task ID
|
|
3976
|
-
* @returns QueryResult containing the task status
|
|
3977
|
-
*
|
|
3978
|
-
* @example
|
|
3979
|
-
* ```typescript
|
|
3980
|
-
* const agentBay = new AgentBay({ apiKey: 'your_api_key' });
|
|
3981
|
-
* const result = await agentBay.create({ imageId: 'windows_latest' });
|
|
3982
|
-
* if (result.success) {
|
|
3983
|
-
* const taskResult = await result.session.agent.computer.executeTask('Open
|
|
3984
|
-
* calculator', 10); const statusResult = await
|
|
3985
|
-
* result.session.agent.computer.getTaskStatus(taskResult.taskId);
|
|
3986
|
-
* console.log(`Status:
|
|
3987
|
-
* ${JSON.parse(statusResult.output).status}`); await result.session.delete();
|
|
3988
|
-
* }
|
|
3989
|
-
* ```
|
|
3990
4028
|
*/
|
|
3991
4029
|
async getTaskStatus(taskId) {
|
|
3992
4030
|
try {
|
|
3993
4031
|
const args = { task_id: taskId };
|
|
3994
|
-
const result = await this.session.callMcpTool(
|
|
4032
|
+
const result = await this.session.callMcpTool(
|
|
4033
|
+
this.getToolName("get_status"),
|
|
4034
|
+
args
|
|
4035
|
+
);
|
|
3995
4036
|
if (!result.success) {
|
|
3996
4037
|
return {
|
|
3997
4038
|
requestId: result.requestId,
|
|
3998
4039
|
success: false,
|
|
3999
4040
|
errorMessage: result.errorMessage,
|
|
4041
|
+
taskId,
|
|
4000
4042
|
taskAction: "",
|
|
4001
4043
|
taskProduct: "",
|
|
4002
4044
|
taskStatus: "failed"
|
|
@@ -4005,19 +4047,27 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
4005
4047
|
let queryResult;
|
|
4006
4048
|
try {
|
|
4007
4049
|
queryResult = JSON.parse(result.data);
|
|
4050
|
+
const contentTaskId = queryResult.taskId || queryResult.task_id || taskId;
|
|
4051
|
+
const taskProduct = queryResult.result || queryResult.product || "";
|
|
4052
|
+
const stream = Array.isArray(queryResult.stream) ? queryResult.stream : void 0;
|
|
4053
|
+
const error = queryResult.error || void 0;
|
|
4008
4054
|
return {
|
|
4009
4055
|
requestId: result.requestId,
|
|
4010
4056
|
success: true,
|
|
4011
4057
|
errorMessage: "",
|
|
4058
|
+
taskId: contentTaskId,
|
|
4012
4059
|
taskAction: queryResult.action || "",
|
|
4013
|
-
taskProduct
|
|
4014
|
-
taskStatus: queryResult.status || "
|
|
4060
|
+
taskProduct,
|
|
4061
|
+
taskStatus: queryResult.status || "completed",
|
|
4062
|
+
stream,
|
|
4063
|
+
error
|
|
4015
4064
|
};
|
|
4016
4065
|
} catch (error) {
|
|
4017
4066
|
return {
|
|
4018
4067
|
requestId: result.requestId,
|
|
4019
4068
|
success: false,
|
|
4020
4069
|
errorMessage: `Failed to get task status: ${error}`,
|
|
4070
|
+
taskId,
|
|
4021
4071
|
taskAction: "",
|
|
4022
4072
|
taskProduct: "",
|
|
4023
4073
|
taskStatus: "failed"
|
|
@@ -4028,6 +4078,7 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
4028
4078
|
requestId: "",
|
|
4029
4079
|
success: false,
|
|
4030
4080
|
errorMessage: `Failed to get task status: ${error}`,
|
|
4081
|
+
taskId,
|
|
4031
4082
|
taskAction: "",
|
|
4032
4083
|
taskProduct: "",
|
|
4033
4084
|
taskStatus: "failed"
|
|
@@ -4036,33 +4087,15 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
4036
4087
|
}
|
|
4037
4088
|
/**
|
|
4038
4089
|
* Terminate a task with a specified task ID.
|
|
4039
|
-
*
|
|
4040
|
-
* @param taskId - The ID of the running task.
|
|
4041
|
-
* @returns ExecutionResult containing success status, task output, and
|
|
4042
|
-
* error message if any.
|
|
4043
|
-
*
|
|
4044
|
-
* @example
|
|
4045
|
-
* ```typescript
|
|
4046
|
-
* const agentBay = new AgentBay({ apiKey: 'your_api_key' });
|
|
4047
|
-
* const result = await agentBay.create({ imageId: 'windows_latest' });
|
|
4048
|
-
* if (result.success) {
|
|
4049
|
-
* const taskResult = await result.session.agent.computer.executeTask(
|
|
4050
|
-
* 'Open notepad',
|
|
4051
|
-
* 5
|
|
4052
|
-
* );
|
|
4053
|
-
* const terminateResult = await result.session.agent.computer.terminateTask(
|
|
4054
|
-
* taskResult.taskId
|
|
4055
|
-
* );
|
|
4056
|
-
* console.log(`Terminated: ${terminateResult.taskStatus}`);
|
|
4057
|
-
* await result.session.delete();
|
|
4058
|
-
* }
|
|
4059
|
-
* ```
|
|
4060
4090
|
*/
|
|
4061
4091
|
async terminateTask(taskId) {
|
|
4062
4092
|
logDebug("Terminating task");
|
|
4063
4093
|
try {
|
|
4064
4094
|
const args = { task_id: taskId };
|
|
4065
|
-
const result = await this.session.callMcpTool(
|
|
4095
|
+
const result = await this.session.callMcpTool(
|
|
4096
|
+
this.getToolName("terminate"),
|
|
4097
|
+
args
|
|
4098
|
+
);
|
|
4066
4099
|
let content;
|
|
4067
4100
|
try {
|
|
4068
4101
|
content = JSON.parse(result.data);
|
|
@@ -4076,8 +4109,8 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
4076
4109
|
taskResult: ""
|
|
4077
4110
|
};
|
|
4078
4111
|
}
|
|
4079
|
-
const terminatedTaskId = content.task_id || taskId;
|
|
4080
|
-
const status = content.status || "
|
|
4112
|
+
const terminatedTaskId = content.taskId || content.task_id || taskId;
|
|
4113
|
+
const status = content.status || "cancelling";
|
|
4081
4114
|
if (result.success) {
|
|
4082
4115
|
return {
|
|
4083
4116
|
requestId: result.requestId,
|
|
@@ -4108,17 +4141,20 @@ var _ComputerUseAgent = class _ComputerUseAgent {
|
|
|
4108
4141
|
}
|
|
4109
4142
|
}
|
|
4110
4143
|
};
|
|
4144
|
+
__name(_BaseTaskAgent, "BaseTaskAgent");
|
|
4145
|
+
var BaseTaskAgent = _BaseTaskAgent;
|
|
4146
|
+
var _ComputerUseAgent = class _ComputerUseAgent extends (BaseTaskAgent.default || BaseTaskAgent) {
|
|
4147
|
+
constructor() {
|
|
4148
|
+
super(...arguments);
|
|
4149
|
+
this.toolPrefix = "flux";
|
|
4150
|
+
}
|
|
4151
|
+
};
|
|
4111
4152
|
__name(_ComputerUseAgent, "ComputerUseAgent");
|
|
4112
4153
|
var ComputerUseAgent = _ComputerUseAgent;
|
|
4113
|
-
var _BrowserUseAgent = class _BrowserUseAgent {
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
*
|
|
4118
|
-
* @param session - The Session instance that this Agent belongs to.
|
|
4119
|
-
*/
|
|
4120
|
-
constructor(session) {
|
|
4121
|
-
this.session = session;
|
|
4154
|
+
var _BrowserUseAgent = class _BrowserUseAgent extends (BaseTaskAgent.default || BaseTaskAgent) {
|
|
4155
|
+
constructor() {
|
|
4156
|
+
super(...arguments);
|
|
4157
|
+
this.toolPrefix = "browser_use";
|
|
4122
4158
|
}
|
|
4123
4159
|
/**
|
|
4124
4160
|
* Initialize the browser agent with specific options.
|
|
@@ -4163,276 +4199,345 @@ var _BrowserUseAgent = class _BrowserUseAgent {
|
|
|
4163
4199
|
};
|
|
4164
4200
|
}
|
|
4165
4201
|
}
|
|
4202
|
+
};
|
|
4203
|
+
__name(_BrowserUseAgent, "BrowserUseAgent");
|
|
4204
|
+
var BrowserUseAgent = _BrowserUseAgent;
|
|
4205
|
+
var _MobileUseAgent = class _MobileUseAgent extends (BaseTaskAgent.default || BaseTaskAgent) {
|
|
4206
|
+
constructor() {
|
|
4207
|
+
super(...arguments);
|
|
4208
|
+
this.toolPrefix = "";
|
|
4209
|
+
}
|
|
4166
4210
|
/**
|
|
4167
|
-
* Execute a
|
|
4211
|
+
* Execute a task in human language without waiting for completion
|
|
4212
|
+
* (non-blocking). This is a fire-and-return interface that immediately
|
|
4213
|
+
* provides a task ID. Call getTaskStatus to check the task status.
|
|
4168
4214
|
*
|
|
4169
4215
|
* @param task - Task description in human language.
|
|
4170
|
-
* @param
|
|
4171
|
-
*
|
|
4172
|
-
*
|
|
4216
|
+
* @param maxSteps - Maximum number of steps (clicks/swipes/etc.) allowed.
|
|
4217
|
+
* Used to prevent infinite loops or excessive resource
|
|
4218
|
+
* consumption. Default is 50.
|
|
4219
|
+
* @param maxStepRetries - Maximum retry times for MCP tool call failures
|
|
4220
|
+
* at SDK level. Used to retry when callMcpTool fails
|
|
4221
|
+
* (e.g., network errors, timeouts). Default is 3.
|
|
4222
|
+
* @returns ExecutionResult containing success status, task ID, task status,
|
|
4223
|
+
* and error message if any.
|
|
4173
4224
|
*
|
|
4174
4225
|
* @example
|
|
4175
4226
|
* ```typescript
|
|
4176
4227
|
* const agentBay = new AgentBay({ apiKey: 'your_api_key' });
|
|
4177
|
-
* const result = await agentBay.create({ imageId: '
|
|
4228
|
+
* const result = await agentBay.create({ imageId: 'mobile_latest' });
|
|
4178
4229
|
* if (result.success) {
|
|
4179
|
-
* const
|
|
4180
|
-
* '
|
|
4181
|
-
* 10
|
|
4230
|
+
* const execResult = await result.session.agent.mobile.executeTask(
|
|
4231
|
+
* 'Open WeChat app', 100, 5
|
|
4182
4232
|
* );
|
|
4183
|
-
* console.log(`Task
|
|
4233
|
+
* console.log(`Task ID: ${execResult.taskId}`);
|
|
4184
4234
|
* await result.session.delete();
|
|
4185
4235
|
* }
|
|
4186
4236
|
* ```
|
|
4187
4237
|
*/
|
|
4188
|
-
async executeTask(task,
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
errorMessage: result.errorMessage,
|
|
4197
|
-
taskStatus: "failed",
|
|
4198
|
-
taskId: "",
|
|
4199
|
-
taskResult: "Task Failed"
|
|
4200
|
-
};
|
|
4201
|
-
}
|
|
4202
|
-
let content;
|
|
4238
|
+
async executeTask(task, maxSteps = 50, maxStepRetries = 3) {
|
|
4239
|
+
const args = {
|
|
4240
|
+
task,
|
|
4241
|
+
max_steps: maxSteps
|
|
4242
|
+
};
|
|
4243
|
+
let lastError;
|
|
4244
|
+
let lastRequestId = "";
|
|
4245
|
+
for (let attempt = 0; attempt < maxStepRetries; attempt++) {
|
|
4203
4246
|
try {
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
}
|
|
4215
|
-
const taskId = content.task_id;
|
|
4216
|
-
if (!taskId) {
|
|
4217
|
-
return {
|
|
4218
|
-
requestId: result.requestId,
|
|
4219
|
-
success: false,
|
|
4220
|
-
errorMessage: "Task ID not found in response",
|
|
4221
|
-
taskStatus: "failed",
|
|
4222
|
-
taskId: "",
|
|
4223
|
-
taskResult: "Invalid task ID."
|
|
4224
|
-
};
|
|
4225
|
-
}
|
|
4226
|
-
let triedTime = 0;
|
|
4227
|
-
while (triedTime < maxTryTimes) {
|
|
4228
|
-
const query = await this.getTaskStatus(taskId);
|
|
4229
|
-
if (!query.success) {
|
|
4230
|
-
return {
|
|
4231
|
-
requestId: query.requestId,
|
|
4232
|
-
success: false,
|
|
4233
|
-
errorMessage: query.errorMessage,
|
|
4234
|
-
taskStatus: "failed",
|
|
4235
|
-
taskId,
|
|
4236
|
-
taskResult: ""
|
|
4237
|
-
};
|
|
4238
|
-
}
|
|
4239
|
-
switch (query.taskStatus) {
|
|
4240
|
-
case "finished":
|
|
4247
|
+
const result = await this.session.callMcpTool(
|
|
4248
|
+
this.getToolName("execute"),
|
|
4249
|
+
args
|
|
4250
|
+
);
|
|
4251
|
+
lastRequestId = result.requestId;
|
|
4252
|
+
if (result.success) {
|
|
4253
|
+
let content;
|
|
4254
|
+
try {
|
|
4255
|
+
content = JSON.parse(result.data);
|
|
4256
|
+
} catch (err) {
|
|
4241
4257
|
return {
|
|
4242
|
-
requestId:
|
|
4243
|
-
success:
|
|
4244
|
-
errorMessage:
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
taskResult:
|
|
4258
|
+
requestId: result.requestId,
|
|
4259
|
+
success: false,
|
|
4260
|
+
errorMessage: `Failed to parse response: ${err}`,
|
|
4261
|
+
taskStatus: "failed",
|
|
4262
|
+
taskId: "",
|
|
4263
|
+
taskResult: "Invalid execution response."
|
|
4248
4264
|
};
|
|
4249
|
-
|
|
4265
|
+
}
|
|
4266
|
+
const taskId = content.taskId || content.task_id;
|
|
4267
|
+
if (!taskId) {
|
|
4250
4268
|
return {
|
|
4251
|
-
requestId:
|
|
4269
|
+
requestId: result.requestId,
|
|
4252
4270
|
success: false,
|
|
4253
|
-
errorMessage:
|
|
4254
|
-
taskId,
|
|
4271
|
+
errorMessage: "Task ID not found in response",
|
|
4255
4272
|
taskStatus: "failed",
|
|
4256
|
-
|
|
4273
|
+
taskId: "",
|
|
4274
|
+
taskResult: "Invalid task ID."
|
|
4257
4275
|
};
|
|
4258
|
-
|
|
4276
|
+
}
|
|
4277
|
+
return {
|
|
4278
|
+
requestId: result.requestId,
|
|
4279
|
+
success: true,
|
|
4280
|
+
errorMessage: "",
|
|
4281
|
+
taskId,
|
|
4282
|
+
taskStatus: "running",
|
|
4283
|
+
taskResult: ""
|
|
4284
|
+
};
|
|
4285
|
+
} else {
|
|
4286
|
+
lastError = result.errorMessage || "Failed to execute task";
|
|
4287
|
+
if (attempt < maxStepRetries - 1) {
|
|
4288
|
+
logDebug(
|
|
4289
|
+
`Attempt ${attempt + 1}/${maxStepRetries} failed, retrying...`
|
|
4290
|
+
);
|
|
4291
|
+
await new Promise((resolve2) => setTimeout(resolve2, 1e3));
|
|
4292
|
+
continue;
|
|
4293
|
+
} else {
|
|
4259
4294
|
return {
|
|
4260
|
-
requestId:
|
|
4295
|
+
requestId: result.requestId,
|
|
4261
4296
|
success: false,
|
|
4262
|
-
errorMessage:
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
taskResult: ""
|
|
4297
|
+
errorMessage: lastError,
|
|
4298
|
+
taskStatus: "failed",
|
|
4299
|
+
taskId: "",
|
|
4300
|
+
taskResult: "Task Failed"
|
|
4266
4301
|
};
|
|
4302
|
+
}
|
|
4303
|
+
}
|
|
4304
|
+
} catch (error) {
|
|
4305
|
+
lastError = `Failed to execute: ${error}`;
|
|
4306
|
+
if (attempt < maxStepRetries - 1) {
|
|
4307
|
+
logDebug(
|
|
4308
|
+
`Attempt ${attempt + 1}/${maxStepRetries} raised exception, retrying...`
|
|
4309
|
+
);
|
|
4310
|
+
await new Promise((resolve2) => setTimeout(resolve2, 1e3));
|
|
4311
|
+
continue;
|
|
4312
|
+
} else {
|
|
4313
|
+
return {
|
|
4314
|
+
requestId: lastRequestId,
|
|
4315
|
+
success: false,
|
|
4316
|
+
errorMessage: lastError,
|
|
4317
|
+
taskStatus: "failed",
|
|
4318
|
+
taskId: "",
|
|
4319
|
+
taskResult: "Task Failed"
|
|
4320
|
+
};
|
|
4267
4321
|
}
|
|
4268
|
-
logDebug(`Task ${taskId} is still running, please wait for a while.`);
|
|
4269
|
-
await new Promise((resolve2) => setTimeout(resolve2, 3e3));
|
|
4270
|
-
triedTime++;
|
|
4271
4322
|
}
|
|
4272
|
-
return {
|
|
4273
|
-
requestId: result.requestId,
|
|
4274
|
-
success: false,
|
|
4275
|
-
errorMessage: "Task execution timed out",
|
|
4276
|
-
taskStatus: "timeout",
|
|
4277
|
-
taskId,
|
|
4278
|
-
taskResult: "Task Timed Out"
|
|
4279
|
-
};
|
|
4280
|
-
} catch (error) {
|
|
4281
|
-
return {
|
|
4282
|
-
requestId: "",
|
|
4283
|
-
success: false,
|
|
4284
|
-
errorMessage: `Failed to execute: ${error}`,
|
|
4285
|
-
taskStatus: "failed",
|
|
4286
|
-
taskId: "",
|
|
4287
|
-
taskResult: "Task Failed"
|
|
4288
|
-
};
|
|
4289
4323
|
}
|
|
4324
|
+
return {
|
|
4325
|
+
requestId: lastRequestId,
|
|
4326
|
+
success: false,
|
|
4327
|
+
errorMessage: `Failed after ${maxStepRetries} attempts: ${lastError || "Unknown error"}`,
|
|
4328
|
+
taskStatus: "failed",
|
|
4329
|
+
taskId: "",
|
|
4330
|
+
taskResult: "Task Failed"
|
|
4331
|
+
};
|
|
4290
4332
|
}
|
|
4291
4333
|
/**
|
|
4292
|
-
*
|
|
4334
|
+
* Execute a specific task described in human language synchronously.
|
|
4335
|
+
* This is a synchronous interface that blocks until the task is completed or
|
|
4336
|
+
* an error occurs, or timeout happens. The default polling interval is
|
|
4337
|
+
* 3 seconds.
|
|
4293
4338
|
*
|
|
4294
|
-
* @param
|
|
4295
|
-
* @
|
|
4339
|
+
* @param task - Task description in human language.
|
|
4340
|
+
* @param maxSteps - Maximum number of steps (clicks/swipes/etc.) allowed.
|
|
4341
|
+
* Used to prevent infinite loops or excessive resource
|
|
4342
|
+
* consumption. Default is 50.
|
|
4343
|
+
* @param maxStepRetries - Maximum retry times for MCP tool call failures
|
|
4344
|
+
* at SDK level. Used to retry when callMcpTool fails
|
|
4345
|
+
* (e.g., network errors, timeouts). Default is 3.
|
|
4346
|
+
* @param maxTryTimes - Maximum number of polling attempts (each 3 seconds).
|
|
4347
|
+
* Used to control how long to wait for task completion.
|
|
4348
|
+
* Default is 300 (about 15 minutes).
|
|
4349
|
+
* @returns ExecutionResult containing success status, task ID, task status,
|
|
4350
|
+
* and error message if any.
|
|
4296
4351
|
*
|
|
4297
4352
|
* @example
|
|
4298
4353
|
* ```typescript
|
|
4299
4354
|
* const agentBay = new AgentBay({ apiKey: 'your_api_key' });
|
|
4300
|
-
* const result = await agentBay.create({ imageId: '
|
|
4355
|
+
* const result = await agentBay.create({ imageId: 'mobile_latest' });
|
|
4301
4356
|
* if (result.success) {
|
|
4302
|
-
* const
|
|
4303
|
-
* '
|
|
4304
|
-
* 10
|
|
4357
|
+
* const execResult = await result.session.agent.mobile.executeTaskAndWait(
|
|
4358
|
+
* 'Open WeChat app', 100, 3, 200
|
|
4305
4359
|
* );
|
|
4306
|
-
*
|
|
4307
|
-
* taskResult.taskId
|
|
4308
|
-
* );
|
|
4309
|
-
* console.log(`Status: ${statusResult.taskStatus}`);
|
|
4360
|
+
* console.log(`Task result: ${execResult.taskResult}`);
|
|
4310
4361
|
* await result.session.delete();
|
|
4311
4362
|
* }
|
|
4312
4363
|
* ```
|
|
4313
4364
|
*/
|
|
4314
|
-
async
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
taskAction: "",
|
|
4324
|
-
taskProduct: "",
|
|
4325
|
-
taskStatus: "failed"
|
|
4326
|
-
};
|
|
4327
|
-
}
|
|
4328
|
-
let queryResult;
|
|
4365
|
+
async executeTaskAndWait(task, maxSteps = 50, maxStepRetries = 3, maxTryTimes = 300) {
|
|
4366
|
+
const args = {
|
|
4367
|
+
task,
|
|
4368
|
+
max_steps: maxSteps
|
|
4369
|
+
};
|
|
4370
|
+
let taskId;
|
|
4371
|
+
let lastError;
|
|
4372
|
+
let lastRequestId = "";
|
|
4373
|
+
for (let attempt = 0; attempt < maxStepRetries; attempt++) {
|
|
4329
4374
|
try {
|
|
4330
|
-
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
|
|
4334
|
-
|
|
4335
|
-
|
|
4336
|
-
|
|
4337
|
-
|
|
4338
|
-
|
|
4375
|
+
const result = await this.session.callMcpTool(
|
|
4376
|
+
this.getToolName("execute"),
|
|
4377
|
+
args
|
|
4378
|
+
);
|
|
4379
|
+
lastRequestId = result.requestId;
|
|
4380
|
+
if (result.success) {
|
|
4381
|
+
let content;
|
|
4382
|
+
try {
|
|
4383
|
+
content = JSON.parse(result.data);
|
|
4384
|
+
} catch (err) {
|
|
4385
|
+
return {
|
|
4386
|
+
requestId: result.requestId,
|
|
4387
|
+
success: false,
|
|
4388
|
+
errorMessage: `Failed to parse response: ${err}`,
|
|
4389
|
+
taskStatus: "failed",
|
|
4390
|
+
taskId: "",
|
|
4391
|
+
taskResult: "Invalid execution response."
|
|
4392
|
+
};
|
|
4393
|
+
}
|
|
4394
|
+
taskId = content.taskId || content.task_id;
|
|
4395
|
+
if (!taskId) {
|
|
4396
|
+
return {
|
|
4397
|
+
requestId: result.requestId,
|
|
4398
|
+
success: false,
|
|
4399
|
+
errorMessage: "Task ID not found in response",
|
|
4400
|
+
taskStatus: "failed",
|
|
4401
|
+
taskId: "",
|
|
4402
|
+
taskResult: "Invalid task ID."
|
|
4403
|
+
};
|
|
4404
|
+
}
|
|
4405
|
+
break;
|
|
4406
|
+
} else {
|
|
4407
|
+
lastError = result.errorMessage || "Failed to execute task";
|
|
4408
|
+
if (attempt < maxStepRetries - 1) {
|
|
4409
|
+
logDebug(
|
|
4410
|
+
`Attempt ${attempt + 1}/${maxStepRetries} failed, retrying...`
|
|
4411
|
+
);
|
|
4412
|
+
await new Promise((resolve2) => setTimeout(resolve2, 1e3));
|
|
4413
|
+
continue;
|
|
4414
|
+
} else {
|
|
4415
|
+
return {
|
|
4416
|
+
requestId: result.requestId,
|
|
4417
|
+
success: false,
|
|
4418
|
+
errorMessage: lastError,
|
|
4419
|
+
taskStatus: "failed",
|
|
4420
|
+
taskId: "",
|
|
4421
|
+
taskResult: "Task Failed"
|
|
4422
|
+
};
|
|
4423
|
+
}
|
|
4424
|
+
}
|
|
4339
4425
|
} catch (error) {
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
}
|
|
4426
|
+
lastError = `Failed to execute: ${error}`;
|
|
4427
|
+
if (attempt < maxStepRetries - 1) {
|
|
4428
|
+
logDebug(
|
|
4429
|
+
`Attempt ${attempt + 1}/${maxStepRetries} raised exception, retrying...`
|
|
4430
|
+
);
|
|
4431
|
+
await new Promise((resolve2) => setTimeout(resolve2, 1e3));
|
|
4432
|
+
continue;
|
|
4433
|
+
} else {
|
|
4434
|
+
return {
|
|
4435
|
+
requestId: lastRequestId,
|
|
4436
|
+
success: false,
|
|
4437
|
+
errorMessage: lastError,
|
|
4438
|
+
taskStatus: "failed",
|
|
4439
|
+
taskId: "",
|
|
4440
|
+
taskResult: "Task Failed"
|
|
4441
|
+
};
|
|
4442
|
+
}
|
|
4348
4443
|
}
|
|
4349
|
-
}
|
|
4444
|
+
}
|
|
4445
|
+
if (!taskId) {
|
|
4350
4446
|
return {
|
|
4351
|
-
requestId:
|
|
4447
|
+
requestId: lastRequestId,
|
|
4352
4448
|
success: false,
|
|
4353
|
-
errorMessage: `Failed to get
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4449
|
+
errorMessage: `Failed to get task_id after ${maxStepRetries} attempts: ${lastError || "Unknown error"}`,
|
|
4450
|
+
taskStatus: "failed",
|
|
4451
|
+
taskId: "",
|
|
4452
|
+
taskResult: "Task Failed"
|
|
4357
4453
|
};
|
|
4358
4454
|
}
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
* @returns ExecutionResult containing success status, task output, and
|
|
4365
|
-
* error message if any.
|
|
4366
|
-
*
|
|
4367
|
-
* @example
|
|
4368
|
-
* ```typescript
|
|
4369
|
-
* const agentBay = new AgentBay({ apiKey: 'your_api_key' });
|
|
4370
|
-
* const result = await agentBay.create({ imageId: 'linux_latest' });
|
|
4371
|
-
* if (result.success) {
|
|
4372
|
-
* const taskResult = await result.session.agent.browser.executeTask(
|
|
4373
|
-
* 'Navigate to baidu and query the weather of Shanghai',
|
|
4374
|
-
* 10
|
|
4375
|
-
* );
|
|
4376
|
-
* const terminateResult = await result.session.agent.browser.terminateTask(
|
|
4377
|
-
* taskResult.taskId
|
|
4378
|
-
* );
|
|
4379
|
-
* console.log(`Terminated: ${terminateResult.taskStatus}`);
|
|
4380
|
-
* await result.session.delete();
|
|
4381
|
-
* }
|
|
4382
|
-
* ```
|
|
4383
|
-
*/
|
|
4384
|
-
async terminateTask(taskId) {
|
|
4385
|
-
logDebug("Terminating task");
|
|
4386
|
-
try {
|
|
4387
|
-
const args = { task_id: taskId };
|
|
4388
|
-
const result = await this.session.callMcpTool("browser_use_terminate_task", args);
|
|
4389
|
-
let content;
|
|
4390
|
-
try {
|
|
4391
|
-
content = JSON.parse(result.data);
|
|
4392
|
-
} catch (err) {
|
|
4455
|
+
let triedTime = 0;
|
|
4456
|
+
const processedTimestamps = /* @__PURE__ */ new Set();
|
|
4457
|
+
while (triedTime < maxTryTimes) {
|
|
4458
|
+
const query = await this.getTaskStatus(taskId);
|
|
4459
|
+
if (!query.success) {
|
|
4393
4460
|
return {
|
|
4394
|
-
requestId:
|
|
4461
|
+
requestId: query.requestId,
|
|
4395
4462
|
success: false,
|
|
4396
|
-
errorMessage:
|
|
4397
|
-
taskId,
|
|
4463
|
+
errorMessage: query.errorMessage,
|
|
4398
4464
|
taskStatus: "failed",
|
|
4465
|
+
taskId,
|
|
4399
4466
|
taskResult: ""
|
|
4400
4467
|
};
|
|
4401
4468
|
}
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4469
|
+
if (query.stream) {
|
|
4470
|
+
for (const streamItem of query.stream) {
|
|
4471
|
+
const timestamp = streamItem.timestamp_ms;
|
|
4472
|
+
if (timestamp !== void 0 && !processedTimestamps.has(timestamp)) {
|
|
4473
|
+
processedTimestamps.add(timestamp);
|
|
4474
|
+
const content = streamItem.content || "";
|
|
4475
|
+
const reasoning = streamItem.reasoning || "";
|
|
4476
|
+
if (content) {
|
|
4477
|
+
process.stdout.write(content);
|
|
4478
|
+
}
|
|
4479
|
+
if (reasoning) {
|
|
4480
|
+
}
|
|
4481
|
+
}
|
|
4482
|
+
}
|
|
4413
4483
|
}
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4484
|
+
if (query.error) {
|
|
4485
|
+
}
|
|
4486
|
+
switch (query.taskStatus) {
|
|
4487
|
+
case "completed":
|
|
4488
|
+
return {
|
|
4489
|
+
requestId: query.requestId,
|
|
4490
|
+
success: true,
|
|
4491
|
+
errorMessage: "",
|
|
4492
|
+
taskId,
|
|
4493
|
+
taskStatus: "completed",
|
|
4494
|
+
taskResult: query.taskProduct
|
|
4495
|
+
};
|
|
4496
|
+
case "failed":
|
|
4497
|
+
return {
|
|
4498
|
+
requestId: query.requestId,
|
|
4499
|
+
success: false,
|
|
4500
|
+
errorMessage: query.errorMessage || "Failed to execute task.",
|
|
4501
|
+
taskId,
|
|
4502
|
+
taskStatus: "failed",
|
|
4503
|
+
taskResult: ""
|
|
4504
|
+
};
|
|
4505
|
+
case "cancelled":
|
|
4506
|
+
return {
|
|
4507
|
+
requestId: query.requestId,
|
|
4508
|
+
success: false,
|
|
4509
|
+
errorMessage: query.errorMessage || "Task was cancelled.",
|
|
4510
|
+
taskId,
|
|
4511
|
+
taskStatus: "cancelled",
|
|
4512
|
+
taskResult: ""
|
|
4513
|
+
};
|
|
4514
|
+
case "unsupported":
|
|
4515
|
+
return {
|
|
4516
|
+
requestId: query.requestId,
|
|
4517
|
+
success: false,
|
|
4518
|
+
errorMessage: query.errorMessage || "Unsupported task.",
|
|
4519
|
+
taskId,
|
|
4520
|
+
taskStatus: "unsupported",
|
|
4521
|
+
taskResult: ""
|
|
4522
|
+
};
|
|
4523
|
+
}
|
|
4524
|
+
logDebug(`\u23F3 Task ${taskId} running \u{1F680}: ${query.taskAction}.`);
|
|
4525
|
+
await new Promise((resolve2) => setTimeout(resolve2, 3e3));
|
|
4526
|
+
triedTime++;
|
|
4431
4527
|
}
|
|
4528
|
+
logDebug("\u26A0\uFE0F task execution timeout!");
|
|
4529
|
+
return {
|
|
4530
|
+
requestId: lastRequestId,
|
|
4531
|
+
success: false,
|
|
4532
|
+
errorMessage: "Task timeout.",
|
|
4533
|
+
taskStatus: "failed",
|
|
4534
|
+
taskId,
|
|
4535
|
+
taskResult: "Task timeout."
|
|
4536
|
+
};
|
|
4432
4537
|
}
|
|
4433
4538
|
};
|
|
4434
|
-
__name(
|
|
4435
|
-
var
|
|
4539
|
+
__name(_MobileUseAgent, "MobileUseAgent");
|
|
4540
|
+
var MobileUseAgent = _MobileUseAgent;
|
|
4436
4541
|
var _Agent = class _Agent {
|
|
4437
4542
|
/**
|
|
4438
4543
|
* Initialize an Agent object.
|
|
@@ -4442,6 +4547,7 @@ var _Agent = class _Agent {
|
|
|
4442
4547
|
constructor(session) {
|
|
4443
4548
|
this.computer = new ComputerUseAgent(session);
|
|
4444
4549
|
this.browser = new BrowserUseAgent(session);
|
|
4550
|
+
this.mobile = new MobileUseAgent(session);
|
|
4445
4551
|
}
|
|
4446
4552
|
};
|
|
4447
4553
|
__name(_Agent, "Agent");
|
|
@@ -10974,7 +11080,7 @@ var _Browser = class _Browser {
|
|
|
10974
11080
|
logDebug(`VPC mode, endpoint_router_port: ${this.session.httpPort}`);
|
|
10975
11081
|
this._endpointUrl = `ws://${this.session.networkInterfaceIp}:${this.session.httpPort}`;
|
|
10976
11082
|
} else {
|
|
10977
|
-
const { GetCdpLinkRequest: GetCdpLinkRequest2 } = await import("./model-
|
|
11083
|
+
const { GetCdpLinkRequest: GetCdpLinkRequest2 } = await import("./model-O3ASLZ3Y.mjs");
|
|
10978
11084
|
const request = new GetCdpLinkRequest2({
|
|
10979
11085
|
authorization: `Bearer ${this.session.getAPIKey()}`,
|
|
10980
11086
|
sessionId: this.session.sessionId
|
|
@@ -15295,7 +15401,7 @@ var _Mobile = class _Mobile {
|
|
|
15295
15401
|
async getAdbUrl(adbkeyPub) {
|
|
15296
15402
|
try {
|
|
15297
15403
|
const optionsJson = JSON.stringify({ adbkey_pub: adbkeyPub });
|
|
15298
|
-
const { GetAdbLinkRequest: GetAdbLinkRequest2 } = await import("./model-
|
|
15404
|
+
const { GetAdbLinkRequest: GetAdbLinkRequest2 } = await import("./model-O3ASLZ3Y.mjs");
|
|
15299
15405
|
const request = new GetAdbLinkRequest2({
|
|
15300
15406
|
authorization: `Bearer ${this.session.getAPIKey()}`,
|
|
15301
15407
|
sessionId: this.session.sessionId,
|
|
@@ -17925,6 +18031,91 @@ var _AgentBay = class _AgentBay {
|
|
|
17925
18031
|
}
|
|
17926
18032
|
}
|
|
17927
18033
|
}
|
|
18034
|
+
/**
|
|
18035
|
+
* Get basic session information by session ID.
|
|
18036
|
+
*
|
|
18037
|
+
* @param sessionId - The ID of the session to retrieve.
|
|
18038
|
+
* @returns GetSessionDetailResult containing basic session information
|
|
18039
|
+
*/
|
|
18040
|
+
async getSessionDetail(sessionId) {
|
|
18041
|
+
try {
|
|
18042
|
+
logAPICall("GetSessionDetail", { sessionId });
|
|
18043
|
+
const request = new GetSessionDetailRequest({
|
|
18044
|
+
authorization: `Bearer ${this.apiKey}`,
|
|
18045
|
+
sessionId
|
|
18046
|
+
});
|
|
18047
|
+
const response = await this.client.getSessionDetail(request);
|
|
18048
|
+
const body = response.body;
|
|
18049
|
+
const requestId = extractRequestId(response) || body?.requestId || "";
|
|
18050
|
+
setRequestId(requestId);
|
|
18051
|
+
if (body?.success === false && body.code) {
|
|
18052
|
+
logAPIResponseWithDetails(
|
|
18053
|
+
"GetSessionDetail",
|
|
18054
|
+
requestId,
|
|
18055
|
+
false,
|
|
18056
|
+
{},
|
|
18057
|
+
`[${body.code}] ${body.message || "Unknown error"}`
|
|
18058
|
+
);
|
|
18059
|
+
logDebug(
|
|
18060
|
+
"Full GetSessionDetail response:",
|
|
18061
|
+
JSON.stringify(body, null, 2)
|
|
18062
|
+
);
|
|
18063
|
+
return {
|
|
18064
|
+
requestId,
|
|
18065
|
+
httpStatusCode: body.httpStatusCode || 0,
|
|
18066
|
+
code: body.code,
|
|
18067
|
+
success: false,
|
|
18068
|
+
errorMessage: `[${body.code}] ${body.message || "Unknown error"}`
|
|
18069
|
+
};
|
|
18070
|
+
}
|
|
18071
|
+
const result = {
|
|
18072
|
+
requestId,
|
|
18073
|
+
httpStatusCode: body?.httpStatusCode || 0,
|
|
18074
|
+
code: body?.code || "",
|
|
18075
|
+
success: body?.success || false,
|
|
18076
|
+
errorMessage: ""
|
|
18077
|
+
};
|
|
18078
|
+
if (body?.data) {
|
|
18079
|
+
result.data = {
|
|
18080
|
+
aliuid: body.data.aliuid || "",
|
|
18081
|
+
apikeyId: body.data.apikeyId || "",
|
|
18082
|
+
appInstanceGroupId: body.data.appInstanceGroupId || "",
|
|
18083
|
+
appInstanceId: body.data.appInstanceId || "",
|
|
18084
|
+
appUserId: body.data.appUserId || "",
|
|
18085
|
+
bizType: body.data.bizType || 0,
|
|
18086
|
+
endReason: body.data.endReason || "",
|
|
18087
|
+
id: body.data.id || 0,
|
|
18088
|
+
imageId: body.data.imageId || "",
|
|
18089
|
+
imageType: body.data.imageType || "",
|
|
18090
|
+
isDeleted: body.data.isDeleted || 0,
|
|
18091
|
+
policyId: body.data.policyId || "",
|
|
18092
|
+
regionId: body.data.regionId || "",
|
|
18093
|
+
resourceConfigId: body.data.resourceConfigId || "",
|
|
18094
|
+
status: body.data.status || ""
|
|
18095
|
+
};
|
|
18096
|
+
logAPIResponseWithDetails(
|
|
18097
|
+
"GetSessionDetail",
|
|
18098
|
+
requestId,
|
|
18099
|
+
true,
|
|
18100
|
+
{
|
|
18101
|
+
appInstanceId: result.data.appInstanceId,
|
|
18102
|
+
regionId: result.data.regionId,
|
|
18103
|
+
status: result.data.status
|
|
18104
|
+
}
|
|
18105
|
+
);
|
|
18106
|
+
}
|
|
18107
|
+
return result;
|
|
18108
|
+
} catch (error) {
|
|
18109
|
+
logError("Error calling GetSessionDetail:", error);
|
|
18110
|
+
return {
|
|
18111
|
+
requestId: "",
|
|
18112
|
+
httpStatusCode: 0,
|
|
18113
|
+
code: "",
|
|
18114
|
+
success: false,
|
|
18115
|
+
errorMessage: `Failed to get session detail ${sessionId}: ${error}`
|
|
18116
|
+
};
|
|
18117
|
+
}
|
|
18118
|
+
}
|
|
17928
18119
|
/**
|
|
17929
18120
|
* Get a session by its ID.
|
|
17930
18121
|
*
|
|
@@ -19408,6 +19599,10 @@ export {
|
|
|
19408
19599
|
GetMcpResourceResponseBody,
|
|
19409
19600
|
GetMcpResourceResponseBodyData,
|
|
19410
19601
|
GetMcpResourceResponseBodyDataDesktopInfo,
|
|
19602
|
+
GetSessionDetailRequest,
|
|
19603
|
+
GetSessionDetailResponse,
|
|
19604
|
+
GetSessionDetailResponseBody,
|
|
19605
|
+
GetSessionDetailResponseBodyData,
|
|
19411
19606
|
GetSessionRequest,
|
|
19412
19607
|
GetSessionResponse,
|
|
19413
19608
|
GetSessionResponseBody,
|