wuying-agentbay-sdk 0.4.0 → 0.4.2

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/index.cjs CHANGED
@@ -6011,10 +6011,62 @@ var _Session = class _Session {
6011
6011
  /**
6012
6012
  * Delete this session.
6013
6013
  *
6014
+ * @param syncContext - Whether to sync context data (trigger file uploads) before deleting the session. Defaults to false.
6014
6015
  * @returns DeleteResult indicating success or failure and request ID
6015
6016
  */
6016
- async delete() {
6017
+ async delete(syncContext = false) {
6017
6018
  try {
6019
+ if (syncContext) {
6020
+ log("Triggering context synchronization before session deletion...");
6021
+ try {
6022
+ const syncResult = await this.context.sync();
6023
+ if (!syncResult.success) {
6024
+ log("Warning: Context sync operation returned failure status");
6025
+ }
6026
+ } catch (error) {
6027
+ logError("Warning: Failed to trigger context sync:", error);
6028
+ }
6029
+ const maxRetries = 150;
6030
+ const retryInterval = 2e3;
6031
+ for (let retry = 0; retry < maxRetries; retry++) {
6032
+ try {
6033
+ const infoResult = await this.context.info();
6034
+ let allCompleted = true;
6035
+ let hasFailure = false;
6036
+ let hasUploads = false;
6037
+ for (const item of infoResult.contextStatusData) {
6038
+ if (item.taskType !== "upload") {
6039
+ continue;
6040
+ }
6041
+ hasUploads = true;
6042
+ log(`Upload context ${item.contextId} status: ${item.status}, path: ${item.path}`);
6043
+ if (item.status !== "Success" && item.status !== "Failed") {
6044
+ allCompleted = false;
6045
+ break;
6046
+ }
6047
+ if (item.status === "Failed") {
6048
+ hasFailure = true;
6049
+ logError(`Upload failed for context ${item.contextId}: ${item.errorMessage}`);
6050
+ }
6051
+ }
6052
+ if (allCompleted || !hasUploads) {
6053
+ if (hasFailure) {
6054
+ log("Context upload completed with failures");
6055
+ } else if (hasUploads) {
6056
+ log("Context upload completed successfully");
6057
+ } else {
6058
+ log("No upload tasks found");
6059
+ }
6060
+ break;
6061
+ }
6062
+ log(`Waiting for context upload to complete, attempt ${retry + 1}/${maxRetries}`);
6063
+ await new Promise((resolve2) => setTimeout(resolve2, retryInterval));
6064
+ } catch (error) {
6065
+ logError(`Error checking context status on attempt ${retry + 1}:`, error);
6066
+ await new Promise((resolve2) => setTimeout(resolve2, retryInterval));
6067
+ }
6068
+ }
6069
+ }
6018
6070
  const request = new ReleaseMcpSessionRequest({
6019
6071
  authorization: `Bearer ${this.getAPIKey()}`,
6020
6072
  sessionId: this.sessionId
@@ -6318,19 +6370,21 @@ var _AgentBay = class _AgentBay {
6318
6370
  if (params.imageId) {
6319
6371
  request.imageId = params.imageId;
6320
6372
  }
6373
+ let hasPersistenceData = false;
6321
6374
  if (params.contextSync && params.contextSync.length > 0) {
6322
6375
  const persistenceDataList = [];
6323
6376
  for (const contextSync of params.contextSync) {
6324
- const persistenceItem = {
6377
+ const persistenceItem = new CreateMcpSessionRequestPersistenceDataList({
6325
6378
  contextId: contextSync.contextId,
6326
6379
  path: contextSync.path
6327
- };
6380
+ });
6328
6381
  if (contextSync.policy) {
6329
6382
  persistenceItem.policy = JSON.stringify(contextSync.policy);
6330
6383
  }
6331
6384
  persistenceDataList.push(persistenceItem);
6332
6385
  }
6333
6386
  request.persistenceDataList = persistenceDataList;
6387
+ hasPersistenceData = persistenceDataList.length > 0;
6334
6388
  }
6335
6389
  log("API Call: CreateMcpSession");
6336
6390
  let requestLog = "Request: ";
@@ -6389,6 +6443,42 @@ var _AgentBay = class _AgentBay {
6389
6443
  session.resourceUrl = resourceUrl;
6390
6444
  }
6391
6445
  this.sessions.set(session.sessionId, session);
6446
+ if (hasPersistenceData) {
6447
+ log("Waiting for context synchronization to complete...");
6448
+ const maxRetries = 150;
6449
+ const retryInterval = 2e3;
6450
+ for (let retry = 0; retry < maxRetries; retry++) {
6451
+ try {
6452
+ const infoResult = await session.context.info();
6453
+ let allCompleted = true;
6454
+ let hasFailure = false;
6455
+ for (const item of infoResult.contextStatusData) {
6456
+ log(`Context ${item.contextId} status: ${item.status}, path: ${item.path}`);
6457
+ if (item.status !== "Success" && item.status !== "Failed") {
6458
+ allCompleted = false;
6459
+ break;
6460
+ }
6461
+ if (item.status === "Failed") {
6462
+ hasFailure = true;
6463
+ logError(`Context synchronization failed for ${item.contextId}: ${item.errorMessage}`);
6464
+ }
6465
+ }
6466
+ if (allCompleted || infoResult.contextStatusData.length === 0) {
6467
+ if (hasFailure) {
6468
+ log("Context synchronization completed with failures");
6469
+ } else {
6470
+ log("Context synchronization completed successfully");
6471
+ }
6472
+ break;
6473
+ }
6474
+ log(`Waiting for context synchronization, attempt ${retry + 1}/${maxRetries}`);
6475
+ await new Promise((resolve2) => setTimeout(resolve2, retryInterval));
6476
+ } catch (error) {
6477
+ logError(`Error checking context status on attempt ${retry + 1}: ${error}`);
6478
+ await new Promise((resolve2) => setTimeout(resolve2, retryInterval));
6479
+ }
6480
+ }
6481
+ }
6392
6482
  return {
6393
6483
  requestId,
6394
6484
  success: true,
@@ -6501,11 +6591,12 @@ var _AgentBay = class _AgentBay {
6501
6591
  * Delete a session by session object.
6502
6592
  *
6503
6593
  * @param session - The session to delete.
6594
+ * @param syncContext - Whether to sync context data (trigger file uploads) before deleting the session. Defaults to false.
6504
6595
  * @returns DeleteResult indicating success or failure and request ID
6505
6596
  */
6506
- async delete(session) {
6597
+ async delete(session, syncContext = false) {
6507
6598
  try {
6508
- const deleteResult = await session.delete();
6599
+ const deleteResult = await session.delete(syncContext);
6509
6600
  this.sessions.delete(session.sessionId);
6510
6601
  return deleteResult;
6511
6602
  } catch (error) {
@@ -6535,6 +6626,183 @@ var _AgentBay = class _AgentBay {
6535
6626
  __name(_AgentBay, "AgentBay");
6536
6627
  var AgentBay = _AgentBay;
6537
6628
 
6629
+ // src/context-sync.ts
6630
+ init_cjs_shims();
6631
+ var UploadStrategy = /* @__PURE__ */ ((UploadStrategy2) => {
6632
+ UploadStrategy2["UploadBeforeResourceRelease"] = "UploadBeforeResourceRelease";
6633
+ return UploadStrategy2;
6634
+ })(UploadStrategy || {});
6635
+ var DownloadStrategy = /* @__PURE__ */ ((DownloadStrategy2) => {
6636
+ DownloadStrategy2["DownloadAsync"] = "DownloadAsync";
6637
+ return DownloadStrategy2;
6638
+ })(DownloadStrategy || {});
6639
+ var _ContextSync = class _ContextSync {
6640
+ constructor(contextId, path2, policy) {
6641
+ this.contextId = contextId;
6642
+ this.path = path2;
6643
+ this.policy = policy;
6644
+ }
6645
+ // WithPolicy sets the policy and returns the context sync for chaining
6646
+ withPolicy(policy) {
6647
+ this.policy = policy;
6648
+ return this;
6649
+ }
6650
+ };
6651
+ __name(_ContextSync, "ContextSync");
6652
+ var ContextSync = _ContextSync;
6653
+ function newUploadPolicy() {
6654
+ return {
6655
+ autoUpload: true,
6656
+ uploadStrategy: "UploadBeforeResourceRelease" /* UploadBeforeResourceRelease */,
6657
+ period: 30
6658
+ // Default to 30 minutes
6659
+ };
6660
+ }
6661
+ __name(newUploadPolicy, "newUploadPolicy");
6662
+ function newDownloadPolicy() {
6663
+ return {
6664
+ autoDownload: true,
6665
+ downloadStrategy: "DownloadAsync" /* DownloadAsync */
6666
+ };
6667
+ }
6668
+ __name(newDownloadPolicy, "newDownloadPolicy");
6669
+ function newDeletePolicy() {
6670
+ return {
6671
+ syncLocalFile: true
6672
+ };
6673
+ }
6674
+ __name(newDeletePolicy, "newDeletePolicy");
6675
+ function newSyncPolicy() {
6676
+ return {
6677
+ uploadPolicy: newUploadPolicy(),
6678
+ downloadPolicy: newDownloadPolicy(),
6679
+ deletePolicy: newDeletePolicy(),
6680
+ bwList: {
6681
+ whiteLists: [
6682
+ {
6683
+ path: "",
6684
+ excludePaths: []
6685
+ }
6686
+ ]
6687
+ }
6688
+ };
6689
+ }
6690
+ __name(newSyncPolicy, "newSyncPolicy");
6691
+ function newContextSync(contextId, path2, policy) {
6692
+ return new ContextSync(contextId, path2, policy);
6693
+ }
6694
+ __name(newContextSync, "newContextSync");
6695
+
6696
+ // src/session-params.ts
6697
+ init_cjs_shims();
6698
+ var _CreateSessionParams = class _CreateSessionParams {
6699
+ constructor() {
6700
+ this.labels = {};
6701
+ this.contextSync = [];
6702
+ }
6703
+ /**
6704
+ * WithLabels sets the labels for the session parameters and returns the updated parameters.
6705
+ */
6706
+ withLabels(labels) {
6707
+ this.labels = labels;
6708
+ return this;
6709
+ }
6710
+ /**
6711
+ * WithContextID sets the context ID for the session parameters and returns the updated parameters.
6712
+ */
6713
+ withContextID(contextId) {
6714
+ this.contextId = contextId;
6715
+ return this;
6716
+ }
6717
+ /**
6718
+ * WithImageId sets the image ID for the session parameters and returns the updated parameters.
6719
+ */
6720
+ withImageId(imageId) {
6721
+ this.imageId = imageId;
6722
+ return this;
6723
+ }
6724
+ /**
6725
+ * GetLabelsJSON returns the labels as a JSON string.
6726
+ * Returns an object with success status and result/error message to match Go version behavior.
6727
+ */
6728
+ getLabelsJSON() {
6729
+ if (Object.keys(this.labels).length === 0) {
6730
+ return { result: "" };
6731
+ }
6732
+ try {
6733
+ const labelsJSON = JSON.stringify(this.labels);
6734
+ return { result: labelsJSON };
6735
+ } catch (error) {
6736
+ return {
6737
+ result: "",
6738
+ error: `Failed to marshal labels to JSON: ${error}`
6739
+ };
6740
+ }
6741
+ }
6742
+ /**
6743
+ * AddContextSync adds a context sync configuration to the session parameters.
6744
+ */
6745
+ addContextSync(contextId, path2, policy) {
6746
+ const contextSync = new ContextSync(contextId, path2, policy);
6747
+ this.contextSync.push(contextSync);
6748
+ return this;
6749
+ }
6750
+ /**
6751
+ * AddContextSyncConfig adds a pre-configured context sync to the session parameters.
6752
+ */
6753
+ addContextSyncConfig(contextSync) {
6754
+ this.contextSync.push(contextSync);
6755
+ return this;
6756
+ }
6757
+ /**
6758
+ * WithContextSync sets the context sync configurations for the session parameters.
6759
+ */
6760
+ withContextSync(contextSyncs) {
6761
+ this.contextSync = contextSyncs;
6762
+ return this;
6763
+ }
6764
+ /**
6765
+ * Convert to plain object for JSON serialization
6766
+ */
6767
+ toJSON() {
6768
+ return {
6769
+ labels: this.labels,
6770
+ contextId: this.contextId,
6771
+ imageId: this.imageId,
6772
+ contextSync: this.contextSync
6773
+ };
6774
+ }
6775
+ /**
6776
+ * Create from plain object
6777
+ */
6778
+ static fromJSON(config) {
6779
+ const params = new _CreateSessionParams();
6780
+ params.labels = config.labels || {};
6781
+ params.contextId = config.contextId;
6782
+ params.imageId = config.imageId;
6783
+ params.contextSync = config.contextSync || [];
6784
+ return params;
6785
+ }
6786
+ };
6787
+ __name(_CreateSessionParams, "CreateSessionParams");
6788
+ var CreateSessionParams = _CreateSessionParams;
6789
+ function newCreateSessionParams() {
6790
+ return new CreateSessionParams();
6791
+ }
6792
+ __name(newCreateSessionParams, "newCreateSessionParams");
6793
+
6794
+
6795
+
6796
+
6797
+
6798
+
6799
+
6800
+
6801
+
6802
+
6803
+
6804
+
6805
+
6538
6806
 
6539
6807
 
6540
6808
 
@@ -6617,5 +6885,5 @@ var AgentBay = _AgentBay;
6617
6885
 
6618
6886
 
6619
6887
 
6620
- exports.APIError = APIError; exports.AgentBay = AgentBay; exports.AgentBayError = AgentBayError; exports.Application = Application; exports.ApplicationError = ApplicationError; exports.ApplyMqttTokenRequest = ApplyMqttTokenRequest; exports.ApplyMqttTokenResponse = ApplyMqttTokenResponse; exports.ApplyMqttTokenResponseBody = ApplyMqttTokenResponseBody; exports.ApplyMqttTokenResponseBodyData = ApplyMqttTokenResponseBodyData; exports.AuthenticationError = AuthenticationError; exports.CallMcpToolRequest = CallMcpToolRequest; exports.CallMcpToolResponse = CallMcpToolResponse; exports.CallMcpToolResponseBody = CallMcpToolResponseBody; exports.Client = Client; exports.Command = Command; exports.CommandError = CommandError; exports.Context = Context; exports.ContextService = ContextService; exports.CreateMcpSessionRequest = CreateMcpSessionRequest; exports.CreateMcpSessionRequestPersistenceDataList = CreateMcpSessionRequestPersistenceDataList; exports.CreateMcpSessionResponse = CreateMcpSessionResponse; exports.CreateMcpSessionResponseBody = CreateMcpSessionResponseBody; exports.CreateMcpSessionResponseBodyData = CreateMcpSessionResponseBodyData; exports.CreateMcpSessionShrinkRequest = CreateMcpSessionShrinkRequest; exports.DeleteContextRequest = DeleteContextRequest; exports.DeleteContextResponse = DeleteContextResponse; exports.DeleteContextResponseBody = DeleteContextResponseBody; exports.FileError = FileError; exports.FileSystem = FileSystem; exports.GetContextInfoRequest = GetContextInfoRequest; exports.GetContextInfoResponse = GetContextInfoResponse; exports.GetContextInfoResponseBody = GetContextInfoResponseBody; exports.GetContextInfoResponseBodyData = GetContextInfoResponseBodyData; exports.GetContextRequest = GetContextRequest; exports.GetContextResponse = GetContextResponse; exports.GetContextResponseBody = GetContextResponseBody; exports.GetContextResponseBodyData = GetContextResponseBodyData; exports.GetLabelRequest = GetLabelRequest; exports.GetLabelResponse = GetLabelResponse; exports.GetLabelResponseBody = GetLabelResponseBody; exports.GetLabelResponseBodyData = GetLabelResponseBodyData; exports.GetLinkRequest = GetLinkRequest; exports.GetLinkResponse = GetLinkResponse; exports.GetLinkResponseBody = GetLinkResponseBody; exports.GetLinkResponseBodyData = GetLinkResponseBodyData; exports.GetMcpResourceRequest = GetMcpResourceRequest; exports.GetMcpResourceResponse = GetMcpResourceResponse; exports.GetMcpResourceResponseBody = GetMcpResourceResponseBody; exports.GetMcpResourceResponseBodyData = GetMcpResourceResponseBodyData; exports.GetMcpResourceResponseBodyDataDesktopInfo = GetMcpResourceResponseBodyDataDesktopInfo; exports.KeyCode = KeyCode; exports.ListContextsRequest = ListContextsRequest; exports.ListContextsResponse = ListContextsResponse; exports.ListContextsResponseBody = ListContextsResponseBody; exports.ListContextsResponseBodyData = ListContextsResponseBodyData; exports.ListMcpToolsRequest = ListMcpToolsRequest; exports.ListMcpToolsResponse = ListMcpToolsResponse; exports.ListMcpToolsResponseBody = ListMcpToolsResponseBody; exports.ListSessionRequest = ListSessionRequest; exports.ListSessionResponse = ListSessionResponse; exports.ListSessionResponseBody = ListSessionResponseBody; exports.ListSessionResponseBodyData = ListSessionResponseBodyData; exports.ModifyContextRequest = ModifyContextRequest; exports.ModifyContextResponse = ModifyContextResponse; exports.ModifyContextResponseBody = ModifyContextResponseBody; exports.Oss = Oss; exports.OssError = OssError; exports.ReleaseMcpSessionRequest = ReleaseMcpSessionRequest; exports.ReleaseMcpSessionResponse = ReleaseMcpSessionResponse; exports.ReleaseMcpSessionResponseBody = ReleaseMcpSessionResponseBody; exports.Session = Session; exports.SessionError = SessionError; exports.SetLabelRequest = SetLabelRequest; exports.SetLabelResponse = SetLabelResponse; exports.SetLabelResponseBody = SetLabelResponseBody; exports.SyncContextRequest = SyncContextRequest; exports.SyncContextResponse = SyncContextResponse; exports.SyncContextResponseBody = SyncContextResponseBody; exports.UI = UI; exports.UIError = UIError; exports.log = log; exports.logError = logError;
6888
+ exports.APIError = APIError; exports.AgentBay = AgentBay; exports.AgentBayError = AgentBayError; exports.Application = Application; exports.ApplicationError = ApplicationError; exports.ApplyMqttTokenRequest = ApplyMqttTokenRequest; exports.ApplyMqttTokenResponse = ApplyMqttTokenResponse; exports.ApplyMqttTokenResponseBody = ApplyMqttTokenResponseBody; exports.ApplyMqttTokenResponseBodyData = ApplyMqttTokenResponseBodyData; exports.AuthenticationError = AuthenticationError; exports.CallMcpToolRequest = CallMcpToolRequest; exports.CallMcpToolResponse = CallMcpToolResponse; exports.CallMcpToolResponseBody = CallMcpToolResponseBody; exports.Client = Client; exports.Command = Command; exports.CommandError = CommandError; exports.Context = Context; exports.ContextManager = ContextManager; exports.ContextService = ContextService; exports.ContextSync = ContextSync; exports.CreateMcpSessionRequest = CreateMcpSessionRequest; exports.CreateMcpSessionRequestPersistenceDataList = CreateMcpSessionRequestPersistenceDataList; exports.CreateMcpSessionResponse = CreateMcpSessionResponse; exports.CreateMcpSessionResponseBody = CreateMcpSessionResponseBody; exports.CreateMcpSessionResponseBodyData = CreateMcpSessionResponseBodyData; exports.CreateMcpSessionShrinkRequest = CreateMcpSessionShrinkRequest; exports.CreateSessionParams = CreateSessionParams; exports.DeleteContextRequest = DeleteContextRequest; exports.DeleteContextResponse = DeleteContextResponse; exports.DeleteContextResponseBody = DeleteContextResponseBody; exports.DownloadStrategy = DownloadStrategy; exports.FileError = FileError; exports.FileSystem = FileSystem; exports.GetContextInfoRequest = GetContextInfoRequest; exports.GetContextInfoResponse = GetContextInfoResponse; exports.GetContextInfoResponseBody = GetContextInfoResponseBody; exports.GetContextInfoResponseBodyData = GetContextInfoResponseBodyData; exports.GetContextRequest = GetContextRequest; exports.GetContextResponse = GetContextResponse; exports.GetContextResponseBody = GetContextResponseBody; exports.GetContextResponseBodyData = GetContextResponseBodyData; exports.GetLabelRequest = GetLabelRequest; exports.GetLabelResponse = GetLabelResponse; exports.GetLabelResponseBody = GetLabelResponseBody; exports.GetLabelResponseBodyData = GetLabelResponseBodyData; exports.GetLinkRequest = GetLinkRequest; exports.GetLinkResponse = GetLinkResponse; exports.GetLinkResponseBody = GetLinkResponseBody; exports.GetLinkResponseBodyData = GetLinkResponseBodyData; exports.GetMcpResourceRequest = GetMcpResourceRequest; exports.GetMcpResourceResponse = GetMcpResourceResponse; exports.GetMcpResourceResponseBody = GetMcpResourceResponseBody; exports.GetMcpResourceResponseBodyData = GetMcpResourceResponseBodyData; exports.GetMcpResourceResponseBodyDataDesktopInfo = GetMcpResourceResponseBodyDataDesktopInfo; exports.KeyCode = KeyCode; exports.ListContextsRequest = ListContextsRequest; exports.ListContextsResponse = ListContextsResponse; exports.ListContextsResponseBody = ListContextsResponseBody; exports.ListContextsResponseBodyData = ListContextsResponseBodyData; exports.ListMcpToolsRequest = ListMcpToolsRequest; exports.ListMcpToolsResponse = ListMcpToolsResponse; exports.ListMcpToolsResponseBody = ListMcpToolsResponseBody; exports.ListSessionRequest = ListSessionRequest; exports.ListSessionResponse = ListSessionResponse; exports.ListSessionResponseBody = ListSessionResponseBody; exports.ListSessionResponseBodyData = ListSessionResponseBodyData; exports.ModifyContextRequest = ModifyContextRequest; exports.ModifyContextResponse = ModifyContextResponse; exports.ModifyContextResponseBody = ModifyContextResponseBody; exports.Oss = Oss; exports.OssError = OssError; exports.ReleaseMcpSessionRequest = ReleaseMcpSessionRequest; exports.ReleaseMcpSessionResponse = ReleaseMcpSessionResponse; exports.ReleaseMcpSessionResponseBody = ReleaseMcpSessionResponseBody; exports.Session = Session; exports.SessionError = SessionError; exports.SetLabelRequest = SetLabelRequest; exports.SetLabelResponse = SetLabelResponse; exports.SetLabelResponseBody = SetLabelResponseBody; exports.SyncContextRequest = SyncContextRequest; exports.SyncContextResponse = SyncContextResponse; exports.SyncContextResponseBody = SyncContextResponseBody; exports.UI = UI; exports.UIError = UIError; exports.UploadStrategy = UploadStrategy; exports.log = log; exports.logError = logError; exports.newContextManager = newContextManager; exports.newContextSync = newContextSync; exports.newCreateSessionParams = newCreateSessionParams; exports.newDeletePolicy = newDeletePolicy; exports.newDownloadPolicy = newDownloadPolicy; exports.newSyncPolicy = newSyncPolicy; exports.newUploadPolicy = newUploadPolicy;
6621
6889
  //# sourceMappingURL=index.cjs.map