Skip to content

feat!(ai): add support for anyOf schemas #9042

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jul 14, 2025
Merged

feat!(ai): add support for anyOf schemas #9042

merged 8 commits into from
Jul 14, 2025

Conversation

dlarocque
Copy link
Contributor

BREAKING CHANGE: Makes type optional on SchemaRequest, SchemaInterface.

Do not merge until v12 release

For context, see firebase/firebase-ios-sdk#14647

BREAKING CHANGE: Makes `type` optional on `SchemaRequest`,
`SchemaInterface`.
@dlarocque dlarocque requested review from a team as code owners May 14, 2025 19:34
Copy link
Contributor

github-actions bot commented May 14, 2025

Changeset File Check ✅

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

Copy link

changeset-bot bot commented May 14, 2025

🦋 Changeset detected

Latest commit: 94b159d

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

This PR includes changesets to release 3 packages
Name Type
firebase Major
@firebase/ai Major
@firebase/rules-unit-testing Major

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

@dlarocque dlarocque added the v12 label May 14, 2025
@google-oss-bot
Copy link
Contributor

google-oss-bot commented May 14, 2025

Size Report 1

Affected Products

  • @firebase/ai

    TypeBase (cb19688)Merge (6ccf393)Diff
    browser38.7 kB39.4 kB+695 B (+1.8%)
    main41.6 kB42.4 kB+764 B (+1.8%)
    module38.7 kB39.4 kB+695 B (+1.8%)
  • firebase

    TypeBase (cb19688)Merge (6ccf393)Diff
    firebase-ai.js30.5 kB31.1 kB+552 B (+1.8%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/fsj6hgunpe.html

@google-oss-bot
Copy link
Contributor

google-oss-bot commented May 14, 2025

Size Analysis Report 1

Affected Products

  • @firebase/ai

    • AnyOfSchema

      Size

      TypeBase (cb19688)Merge (6ccf393)Diff
      size?4.72 kB? (?)
      size-with-ext-deps?22.3 kB? (?)

      Dependency

      TypeBase (cb19688)Merge (6ccf393)Diff
      functions?

      decodeInstanceIdentifier
      registerAI

      ?
      classes?

      13 dependencies

      AIError
      AIService
      AnyOfSchema
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      ?
      variables?

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      ?
      enums??

      External Dependency

      ModuleBase (cb19688)Merge (6ccf393)Diff
      @firebase/app?

      _registerComponent
      registerVersion

      ?
      @firebase/component?

      Component

      ?
      @firebase/logger?

      Logger

      ?
      @firebase/util?

      FirebaseError

      ?
    • ArraySchema

      Size

      TypeBase (cb19688)Merge (6ccf393)Diff
      size4.21 kB4.72 kB+512 B (+12.2%)
      size-with-ext-deps21.8 kB22.3 kB+519 B (+2.4%)

      Dependency

      TypeBase (cb19688)Merge (6ccf393)Diff
      classes

      12 dependencies

      AIError
      AIService
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      13 dependencies

      AIError
      AIService
      AnyOfSchema
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      + AnyOfSchema

    • BooleanSchema

      Size

      TypeBase (cb19688)Merge (6ccf393)Diff
      size4.21 kB4.72 kB+512 B (+12.2%)
      size-with-ext-deps21.8 kB22.3 kB+519 B (+2.4%)

      Dependency

      TypeBase (cb19688)Merge (6ccf393)Diff
      classes

      12 dependencies

      AIError
      AIService
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      13 dependencies

      AIError
      AIService
      AnyOfSchema
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      + AnyOfSchema

    • IntegerSchema

      Size

      TypeBase (cb19688)Merge (6ccf393)Diff
      size4.21 kB4.72 kB+512 B (+12.2%)
      size-with-ext-deps21.8 kB22.3 kB+519 B (+2.4%)

      Dependency

      TypeBase (cb19688)Merge (6ccf393)Diff
      classes

      12 dependencies

      AIError
      AIService
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      13 dependencies

      AIError
      AIService
      AnyOfSchema
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      + AnyOfSchema

    • NumberSchema

      Size

      TypeBase (cb19688)Merge (6ccf393)Diff
      size4.21 kB4.72 kB+512 B (+12.2%)
      size-with-ext-deps21.8 kB22.3 kB+519 B (+2.4%)

      Dependency

      TypeBase (cb19688)Merge (6ccf393)Diff
      classes

      12 dependencies

      AIError
      AIService
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      13 dependencies

      AIError
      AIService
      AnyOfSchema
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      + AnyOfSchema

    • ObjectSchema

      Size

      TypeBase (cb19688)Merge (6ccf393)Diff
      size4.21 kB4.72 kB+512 B (+12.2%)
      size-with-ext-deps21.8 kB22.3 kB+519 B (+2.4%)

      Dependency

      TypeBase (cb19688)Merge (6ccf393)Diff
      classes

      12 dependencies

      AIError
      AIService
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      13 dependencies

      AIError
      AIService
      AnyOfSchema
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      + AnyOfSchema

    • Schema

      Size

      TypeBase (cb19688)Merge (6ccf393)Diff
      size4.20 kB4.72 kB+512 B (+12.2%)
      size-with-ext-deps21.8 kB22.3 kB+519 B (+2.4%)

      Dependency

      TypeBase (cb19688)Merge (6ccf393)Diff
      classes

      12 dependencies

      AIError
      AIService
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      13 dependencies

      AIError
      AIService
      AnyOfSchema
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      + AnyOfSchema

    • StringSchema

      Size

      TypeBase (cb19688)Merge (6ccf393)Diff
      size4.21 kB4.72 kB+512 B (+12.2%)
      size-with-ext-deps21.8 kB22.3 kB+519 B (+2.4%)

      Dependency

      TypeBase (cb19688)Merge (6ccf393)Diff
      classes

      12 dependencies

      AIError
      AIService
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      13 dependencies

      AIError
      AIService
      AnyOfSchema
      ArraySchema
      Backend
      BooleanSchema
      GoogleAIBackend
      IntegerSchema
      NumberSchema
      ObjectSchema
      Schema
      StringSchema
      VertexAIBackend

      + AnyOfSchema

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/S7PAMG1bYG.html

@hsubox76 hsubox76 added this to the v12 milestone Jun 17, 2025
@hsubox76 hsubox76 removed the v12 label Jun 17, 2025
@dlarocque dlarocque requested a review from hsubox76 July 8, 2025 15:03
@dlarocque dlarocque changed the base branch from main to v12 July 8, 2025 15:04
Copy link
Contributor

@hsubox76 hsubox76 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm afraid I might have caused a merge conflict by merging #8948 - the only file it is complaining about is a test but since it touches the handling of optionalProperties maybe double check it doesn't break anything else.

@dlarocque dlarocque changed the base branch from v12 to main July 9, 2025 14:30
@dlarocque dlarocque requested review from hsubox76 and egilmorez July 9, 2025 19:19
Copy link
Contributor

@egilmorez egilmorez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LG except for an apparent issue with a link, PTAL.

@dlarocque dlarocque requested a review from egilmorez July 11, 2025 14:09
Copy link
Contributor

@egilmorez egilmorez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still seeing a handful of what appear to be "missing links." :)

Called out each instance.

@dlarocque dlarocque requested a review from egilmorez July 14, 2025 20:16
Copy link
Contributor

@egilmorez egilmorez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@dlarocque dlarocque merged commit 5200f7b into main Jul 14, 2025
36 of 38 checks passed
@dlarocque dlarocque deleted the dl/schema-anyof branch July 14, 2025 20:56
@google-oss-bot google-oss-bot mentioned this pull request Jul 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants