firebase-js-sdk icon indicating copy to clipboard operation
firebase-js-sdk copied to clipboard

feat(ai): Add support for `AbortSignal`

Open dlarocque opened this issue 8 months ago • 7 comments

Add an AbortSignal to a new SingleRequestOptions that can be passed to all methods that make requests to the backend, allowing them to be aborted.

Fixes #8859

API Proposal: go/vinf-abort-request-api (internal)

dlarocque avatar Apr 02 '25 14:04 dlarocque

🦋 Changeset detected

Latest commit: 76c82e5584df2a219eef3b8b7f626e535fea08ab

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
firebase Minor
@firebase/ai Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

changeset-bot[bot] avatar Apr 02 '25 14:04 changeset-bot[bot]

Changeset File Check :white_check_mark:

  • No modified packages are missing from the changeset file.
  • No changeset formatting errors detected.

github-actions[bot] avatar Apr 02 '25 14:04 github-actions[bot]

Size Report 1

Affected Products

  • @firebase/ai

    TypeBase (f5fc6bf)Merge (661f80b)Diff
    browser67.4 kB68.7 kB+1.29 kB (+1.9%)
    main71.7 kB73.0 kB+1.29 kB (+1.8%)
    module67.4 kB68.7 kB+1.29 kB (+1.9%)
  • firebase

    TypeBase (f5fc6bf)Merge (661f80b)Diff
    firebase-ai.js52.8 kB53.4 kB+544 B (+1.0%)

Test Logs

google-oss-bot avatar Apr 02 '25 14:04 google-oss-bot

Size Analysis Report 1

Affected Products

  • @firebase/ai

    • ChatSession

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size22.3 kB22.7 kB+411 B (+1.8%)
      size-with-ext-deps40.0 kB40.5 kB+414 B (+1.0%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      26 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      defaultExpectedInputs
      errorsCausingFallback
      logger
      name
      responseLineRE
      version

      28 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      TIMEOUT_EXPIRED_MESSAGE
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      defaultExpectedInputs
      errorsCausingFallback
      logger
      name
      responseLineRE
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE
    • GenerativeModel

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size26.0 kB26.5 kB+473 B (+1.8%)
      size-with-ext-deps43.8 kB44.3 kB+476 B (+1.1%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      26 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      defaultExpectedInputs
      errorsCausingFallback
      logger
      name
      responseLineRE
      version

      28 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      TIMEOUT_EXPIRED_MESSAGE
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      defaultExpectedInputs
      errorsCausingFallback
      logger
      name
      responseLineRE
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE
    • ImagenModel

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size13.4 kB13.8 kB+384 B (+2.9%)
      size-with-ext-deps31.1 kB31.5 kB+391 B (+1.3%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      15 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      defaultExpectedInputs
      logger
      name
      version

      17 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      TIMEOUT_EXPIRED_MESSAGE
      defaultExpectedInputs
      logger
      name
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE
    • TemplateGenerativeModel

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size18.1 kB18.5 kB+388 B (+2.1%)
      size-with-ext-deps35.9 kB36.3 kB+391 B (+1.1%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      20 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      badFinishReasons
      defaultExpectedInputs
      logger
      name
      responseLineRE
      version

      22 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      TIMEOUT_EXPIRED_MESSAGE
      badFinishReasons
      defaultExpectedInputs
      logger
      name
      responseLineRE
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE
    • TemplateImagenModel

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size12.1 kB12.5 kB+366 B (+3.0%)
      size-with-ext-deps29.8 kB30.2 kB+373 B (+1.3%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      15 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      defaultExpectedInputs
      logger
      name
      version

      17 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      TIMEOUT_EXPIRED_MESSAGE
      defaultExpectedInputs
      logger
      name
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE
    • getGenerativeModel

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size26.4 kB26.9 kB+473 B (+1.8%)
      size-with-ext-deps44.2 kB44.7 kB+476 B (+1.1%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      27 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_HYBRID_IN_CLOUD_MODEL
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      defaultExpectedInputs
      errorsCausingFallback
      logger
      name
      responseLineRE
      version

      29 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_HYBRID_IN_CLOUD_MODEL
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      TIMEOUT_EXPIRED_MESSAGE
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      defaultExpectedInputs
      errorsCausingFallback
      logger
      name
      responseLineRE
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE
    • getImagenModel

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size13.5 kB13.9 kB+384 B (+2.8%)
      size-with-ext-deps31.2 kB31.6 kB+391 B (+1.3%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      15 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      defaultExpectedInputs
      logger
      name
      version

      17 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      TIMEOUT_EXPIRED_MESSAGE
      defaultExpectedInputs
      logger
      name
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE
    • getTemplateGenerativeModel

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size18.2 kB18.5 kB+388 B (+2.1%)
      size-with-ext-deps35.9 kB36.3 kB+391 B (+1.1%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      20 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      badFinishReasons
      defaultExpectedInputs
      logger
      name
      responseLineRE
      version

      22 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      InferenceSource
      LANGUAGE_TAG
      PACKAGE_VERSION
      TIMEOUT_EXPIRED_MESSAGE
      badFinishReasons
      defaultExpectedInputs
      logger
      name
      responseLineRE
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE
    • getTemplateImagenModel

      Size

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      size12.1 kB12.5 kB+366 B (+3.0%)
      size-with-ext-deps29.8 kB30.2 kB+373 B (+1.3%)

      Dependency

      TypeBase (f5fc6bf)Merge (661f80b)Diff
      variables

      15 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      defaultExpectedInputs
      logger
      name
      version

      17 dependencies

      ABORT_ERROR_NAME
      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_DOMAIN
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      TIMEOUT_EXPIRED_MESSAGE
      defaultExpectedInputs
      logger
      name
      version

      + ABORT_ERROR_NAME
      + TIMEOUT_EXPIRED_MESSAGE

Test Logs

google-oss-bot avatar Apr 02 '25 14:04 google-oss-bot

/gemini review

dlarocque avatar Nov 12 '25 20:11 dlarocque

Re-requesting review since changes were made.

dlarocque avatar Nov 14 '25 16:11 dlarocque

/gemini review

dlarocque avatar Dec 01 '25 20:12 dlarocque