@@ -486,7 +486,7 @@ export class Skills {
486486 /**
487487 * Cancel the current in-progress generation for a skill.
488488 *
489- * @param {BrowserUse.CancelGenerationSkillsSkillIdCancelGenerationPostRequest } request
489+ * @param {BrowserUse.CancelGenerationSkillsSkillIdCancelPostRequest } request
490490 * @param {Skills.RequestOptions } requestOptions - Request-specific configuration.
491491 *
492492 * @throws {@link BrowserUse.BadRequestError }
@@ -499,14 +499,14 @@ export class Skills {
499499 * })
500500 */
501501 public cancelGeneration (
502- request : BrowserUse . CancelGenerationSkillsSkillIdCancelGenerationPostRequest ,
502+ request : BrowserUse . CancelGenerationSkillsSkillIdCancelPostRequest ,
503503 requestOptions ?: Skills . RequestOptions ,
504504 ) : core . HttpResponsePromise < BrowserUse . SkillResponse > {
505505 return core . HttpResponsePromise . fromPromise ( this . __cancelGeneration ( request , requestOptions ) ) ;
506506 }
507507
508508 private async __cancelGeneration (
509- request : BrowserUse . CancelGenerationSkillsSkillIdCancelGenerationPostRequest ,
509+ request : BrowserUse . CancelGenerationSkillsSkillIdCancelPostRequest ,
510510 requestOptions ?: Skills . RequestOptions ,
511511 ) : Promise < core . WithRawResponse < BrowserUse . SkillResponse > > {
512512 const { skill_id : skillId } = request ;
@@ -520,7 +520,7 @@ export class Skills {
520520 ( await core . Supplier . get ( this . _options . baseUrl ) ) ??
521521 ( await core . Supplier . get ( this . _options . environment ) ) ??
522522 environments . BrowserUseEnvironment . Production ,
523- `skills/${ core . url . encodePathParam ( skillId ) } /cancel-generation ` ,
523+ `skills/${ core . url . encodePathParam ( skillId ) } /cancel` ,
524524 ) ,
525525 method : "POST" ,
526526 headers : _headers ,
@@ -564,7 +564,98 @@ export class Skills {
564564 } ) ;
565565 case "timeout" :
566566 throw new errors . BrowserUseTimeoutError (
567- "Timeout exceeded when calling POST /skills/{skill_id}/cancel-generation." ,
567+ "Timeout exceeded when calling POST /skills/{skill_id}/cancel." ,
568+ ) ;
569+ case "unknown" :
570+ throw new errors . BrowserUseError ( {
571+ message : _response . error . errorMessage ,
572+ rawResponse : _response . rawResponse ,
573+ } ) ;
574+ }
575+ }
576+
577+ /**
578+ * Rollback to the previous version (cannot be undone).
579+ *
580+ * @param {BrowserUse.RollbackSkillSkillsSkillIdRollbackPostRequest } request
581+ * @param {Skills.RequestOptions } requestOptions - Request-specific configuration.
582+ *
583+ * @throws {@link BrowserUse.BadRequestError }
584+ * @throws {@link BrowserUse.NotFoundError }
585+ * @throws {@link BrowserUse.UnprocessableEntityError }
586+ *
587+ * @example
588+ * await client.skills.rollbackSkill({
589+ * skill_id: "skill_id"
590+ * })
591+ */
592+ public rollbackSkill (
593+ request : BrowserUse . RollbackSkillSkillsSkillIdRollbackPostRequest ,
594+ requestOptions ?: Skills . RequestOptions ,
595+ ) : core . HttpResponsePromise < BrowserUse . SkillResponse > {
596+ return core . HttpResponsePromise . fromPromise ( this . __rollbackSkill ( request , requestOptions ) ) ;
597+ }
598+
599+ private async __rollbackSkill (
600+ request : BrowserUse . RollbackSkillSkillsSkillIdRollbackPostRequest ,
601+ requestOptions ?: Skills . RequestOptions ,
602+ ) : Promise < core . WithRawResponse < BrowserUse . SkillResponse > > {
603+ const { skill_id : skillId } = request ;
604+ const _headers : core . Fetcher . Args [ "headers" ] = mergeHeaders (
605+ this . _options ?. headers ,
606+ mergeOnlyDefinedHeaders ( { ...( await this . _getCustomAuthorizationHeaders ( ) ) } ) ,
607+ requestOptions ?. headers ,
608+ ) ;
609+ const _response = await core . fetcher ( {
610+ url : core . url . join (
611+ ( await core . Supplier . get ( this . _options . baseUrl ) ) ??
612+ ( await core . Supplier . get ( this . _options . environment ) ) ??
613+ environments . BrowserUseEnvironment . Production ,
614+ `skills/${ core . url . encodePathParam ( skillId ) } /rollback` ,
615+ ) ,
616+ method : "POST" ,
617+ headers : _headers ,
618+ queryParameters : requestOptions ?. queryParams ,
619+ timeoutMs : ( requestOptions ?. timeoutInSeconds ?? this . _options ?. timeoutInSeconds ?? 60 ) * 1000 ,
620+ maxRetries : requestOptions ?. maxRetries ?? this . _options ?. maxRetries ,
621+ abortSignal : requestOptions ?. abortSignal ,
622+ fetchFn : this . _options ?. fetch ,
623+ logging : this . _options . logging ,
624+ } ) ;
625+ if ( _response . ok ) {
626+ return { data : _response . body as BrowserUse . SkillResponse , rawResponse : _response . rawResponse } ;
627+ }
628+
629+ if ( _response . error . reason === "status-code" ) {
630+ switch ( _response . error . statusCode ) {
631+ case 400 :
632+ throw new BrowserUse . BadRequestError ( _response . error . body as unknown , _response . rawResponse ) ;
633+ case 404 :
634+ throw new BrowserUse . NotFoundError ( _response . error . body as unknown , _response . rawResponse ) ;
635+ case 422 :
636+ throw new BrowserUse . UnprocessableEntityError (
637+ _response . error . body as unknown ,
638+ _response . rawResponse ,
639+ ) ;
640+ default :
641+ throw new errors . BrowserUseError ( {
642+ statusCode : _response . error . statusCode ,
643+ body : _response . error . body ,
644+ rawResponse : _response . rawResponse ,
645+ } ) ;
646+ }
647+ }
648+
649+ switch ( _response . error . reason ) {
650+ case "non-json" :
651+ throw new errors . BrowserUseError ( {
652+ statusCode : _response . error . statusCode ,
653+ body : _response . error . rawBody ,
654+ rawResponse : _response . rawResponse ,
655+ } ) ;
656+ case "timeout" :
657+ throw new errors . BrowserUseTimeoutError (
658+ "Timeout exceeded when calling POST /skills/{skill_id}/rollback." ,
568659 ) ;
569660 case "unknown" :
570661 throw new errors . BrowserUseError ( {
0 commit comments