rl-rock 1.3.7 → 1.3.8

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.d.mts CHANGED
@@ -1287,7 +1287,7 @@ declare class Sandbox extends AbstractSandbox {
1287
1287
  writeFile(request: WriteFileRequest): Promise<WriteFileResponse>;
1288
1288
  readFile(request: ReadFileRequest): Promise<ReadFileResponse>;
1289
1289
  upload(request: UploadRequest): Promise<UploadResponse>;
1290
- uploadByPath(sourcePath: string, targetPath: string, uploadMode?: UploadMode): Promise<UploadResponse>;
1290
+ uploadByPath(sourcePath: string, targetPath: string, uploadMode?: UploadMode, timeout?: number): Promise<UploadResponse>;
1291
1291
  /**
1292
1292
  * Get OSS STS credentials from sandbox
1293
1293
  */
@@ -1299,13 +1299,15 @@ declare class Sandbox extends AbstractSandbox {
1299
1299
  /**
1300
1300
  * Download file from sandbox via OSS
1301
1301
  */
1302
- downloadFile(remotePath: string, localPath: string): Promise<DownloadFileResponse>;
1302
+ downloadFile(remotePath: string, localPath: string, timeout?: number): Promise<DownloadFileResponse>;
1303
1303
  /**
1304
1304
  * Upload file via OSS (internal method)
1305
+ * @param timeout - Optional timeout in milliseconds
1305
1306
  */
1306
1307
  private uploadViaOss;
1307
1308
  /**
1308
1309
  * Setup OSS bucket with STS credentials
1310
+ * @param timeout - Optional timeout in milliseconds (defaults to ROCK_OSS_TIMEOUT env var or 300000ms)
1309
1311
  */
1310
1312
  private setupOss;
1311
1313
  close(): Promise<void>;
package/dist/index.d.ts CHANGED
@@ -1287,7 +1287,7 @@ declare class Sandbox extends AbstractSandbox {
1287
1287
  writeFile(request: WriteFileRequest): Promise<WriteFileResponse>;
1288
1288
  readFile(request: ReadFileRequest): Promise<ReadFileResponse>;
1289
1289
  upload(request: UploadRequest): Promise<UploadResponse>;
1290
- uploadByPath(sourcePath: string, targetPath: string, uploadMode?: UploadMode): Promise<UploadResponse>;
1290
+ uploadByPath(sourcePath: string, targetPath: string, uploadMode?: UploadMode, timeout?: number): Promise<UploadResponse>;
1291
1291
  /**
1292
1292
  * Get OSS STS credentials from sandbox
1293
1293
  */
@@ -1299,13 +1299,15 @@ declare class Sandbox extends AbstractSandbox {
1299
1299
  /**
1300
1300
  * Download file from sandbox via OSS
1301
1301
  */
1302
- downloadFile(remotePath: string, localPath: string): Promise<DownloadFileResponse>;
1302
+ downloadFile(remotePath: string, localPath: string, timeout?: number): Promise<DownloadFileResponse>;
1303
1303
  /**
1304
1304
  * Upload file via OSS (internal method)
1305
+ * @param timeout - Optional timeout in milliseconds
1305
1306
  */
1306
1307
  private uploadViaOss;
1307
1308
  /**
1308
1309
  * Setup OSS bucket with STS credentials
1310
+ * @param timeout - Optional timeout in milliseconds (defaults to ROCK_OSS_TIMEOUT env var or 300000ms)
1309
1311
  */
1310
1312
  private setupOss;
1311
1313
  close(): Promise<void>;
package/dist/index.js CHANGED
@@ -601,6 +601,9 @@ var envVars = {
601
601
  get ROCK_OSS_BUCKET_REGION() {
602
602
  return getEnv("ROCK_OSS_BUCKET_REGION");
603
603
  },
604
+ get ROCK_OSS_TIMEOUT() {
605
+ return parseInt(getEnv("ROCK_OSS_TIMEOUT", "300000"), 10);
606
+ },
604
607
  // Pip
605
608
  get ROCK_PIP_INDEX_URL() {
606
609
  return getEnv("ROCK_PIP_INDEX_URL", "https://pypi.org/simple/");
@@ -2295,7 +2298,7 @@ var Sandbox = class extends AbstractSandbox {
2295
2298
  async upload(request) {
2296
2299
  return this.uploadByPath(request.sourcePath, request.targetPath);
2297
2300
  }
2298
- async uploadByPath(sourcePath, targetPath, uploadMode = "auto") {
2301
+ async uploadByPath(sourcePath, targetPath, uploadMode = "auto", timeout) {
2299
2302
  const url = `${this.url}/upload`;
2300
2303
  const headers = this.buildHeaders();
2301
2304
  try {
@@ -2310,7 +2313,7 @@ var Sandbox = class extends AbstractSandbox {
2310
2313
  const ossEnabled = envVars.ROCK_OSS_ENABLE;
2311
2314
  const ossThreshold = 1024 * 1024;
2312
2315
  if (uploadMode === "oss" || uploadMode === "auto" && ossEnabled && fileSize > ossThreshold) {
2313
- return this.uploadViaOss(sourcePath, targetPath);
2316
+ return this.uploadViaOss(sourcePath, targetPath, timeout);
2314
2317
  }
2315
2318
  const fileBuffer = await fs.readFile(sourcePath);
2316
2319
  const fileName = sourcePath.split("/").pop() ?? "file";
@@ -2361,7 +2364,7 @@ var Sandbox = class extends AbstractSandbox {
2361
2364
  /**
2362
2365
  * Download file from sandbox via OSS
2363
2366
  */
2364
- async downloadFile(remotePath, localPath) {
2367
+ async downloadFile(remotePath, localPath, timeout) {
2365
2368
  if (!envVars.ROCK_OSS_ENABLE) {
2366
2369
  return {
2367
2370
  success: false,
@@ -2377,7 +2380,7 @@ var Sandbox = class extends AbstractSandbox {
2377
2380
  return { success: false, message: `Remote file does not exist: ${remotePath}` };
2378
2381
  }
2379
2382
  if (this.ossBucket === null || this.isTokenExpired()) {
2380
- await this.setupOss();
2383
+ await this.setupOss(timeout);
2381
2384
  }
2382
2385
  if (!this.ossBucket) {
2383
2386
  return { success: false, message: "Failed to setup OSS bucket" };
@@ -2396,7 +2399,8 @@ var Sandbox = class extends AbstractSandbox {
2396
2399
  if (uploadResult.exitCode !== 0) {
2397
2400
  return { success: false, message: `Sandbox to OSS upload failed: ${uploadResult.output}` };
2398
2401
  }
2399
- const result = await this.ossBucket.get(objectName, localPath);
2402
+ const ossTimeout = timeout ?? envVars.ROCK_OSS_TIMEOUT;
2403
+ const result = await this.ossBucket.get(objectName, localPath, { timeout: ossTimeout });
2400
2404
  try {
2401
2405
  await this.ossBucket.delete(objectName);
2402
2406
  } catch {
@@ -2408,11 +2412,12 @@ var Sandbox = class extends AbstractSandbox {
2408
2412
  }
2409
2413
  /**
2410
2414
  * Upload file via OSS (internal method)
2415
+ * @param timeout - Optional timeout in milliseconds
2411
2416
  */
2412
- async uploadViaOss(sourcePath, targetPath) {
2417
+ async uploadViaOss(sourcePath, targetPath, timeout) {
2413
2418
  try {
2414
2419
  if (this.ossBucket === null || this.isTokenExpired()) {
2415
- await this.setupOss();
2420
+ await this.setupOss(timeout);
2416
2421
  }
2417
2422
  if (!this.ossBucket) {
2418
2423
  return { success: false, message: "Failed to setup OSS bucket" };
@@ -2420,7 +2425,8 @@ var Sandbox = class extends AbstractSandbox {
2420
2425
  const timestamp = Date.now();
2421
2426
  const fileName = sourcePath.split("/").pop() ?? "file";
2422
2427
  const objectName = `${timestamp}-${fileName}`;
2423
- await this.ossBucket.put(objectName, sourcePath);
2428
+ const ossTimeout = timeout ?? envVars.ROCK_OSS_TIMEOUT;
2429
+ await this.ossBucket.put(objectName, sourcePath, { timeout: ossTimeout });
2424
2430
  const signedUrl = this.ossBucket.signatureUrl(objectName, { expires: 600 });
2425
2431
  const downloadCmd = `wget -c -O '${targetPath}' '${signedUrl}'`;
2426
2432
  await this.arun(downloadCmd, { mode: "nohup", waitTimeout: 600 });
@@ -2435,13 +2441,16 @@ var Sandbox = class extends AbstractSandbox {
2435
2441
  }
2436
2442
  /**
2437
2443
  * Setup OSS bucket with STS credentials
2444
+ * @param timeout - Optional timeout in milliseconds (defaults to ROCK_OSS_TIMEOUT env var or 300000ms)
2438
2445
  */
2439
- async setupOss() {
2446
+ async setupOss(timeout) {
2440
2447
  const credentials = await this.getOssStsCredentials();
2441
2448
  const OSS = (await import('ali-oss')).default;
2449
+ const ossTimeout = timeout ?? envVars.ROCK_OSS_TIMEOUT;
2442
2450
  this.ossBucket = new OSS({
2443
2451
  secure: true,
2444
2452
  // Use HTTPS for OSS connections
2453
+ timeout: ossTimeout,
2445
2454
  region: envVars.ROCK_OSS_BUCKET_REGION ?? "",
2446
2455
  accessKeyId: credentials.accessKeyId,
2447
2456
  accessKeySecret: credentials.accessKeySecret,