From 58018c7d62df61f6e035c23aa80314787b321c6e Mon Sep 17 00:00:00 2001
From: David Motsonashvili <davidmotson@google.com>
Date: Tue, 12 Dec 2023 09:03:50 -0800
Subject: [PATCH] Initial Commit
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Daymon <17409137+daymxn@users.noreply.github.com>
Co-authored-by: emilypgoogle <110422458+emilypgoogle@users.noreply.github.com>
Co-authored-by: Rodrigo Lazo <rlazo@users.noreply.github.com>
Co-authored-by: Rosário P. Fernandes <rosariopf@google.com>
---
 .github/hooks/pre-push                        |  36 +++
 .github/hooks/pre-push.d/formatting.sh        |  18 ++
 .github/hooks/pre-push.d/licensing.sh         |  18 ++
 .github/workflows/build_release.yml           |  36 +++
 .github/workflows/check-code-format.yml       |  19 ++
 .github/workflows/check-licensing.yml         |  19 ++
 .github/workflows/check_for_api_changes.yml   |  57 ++++
 .github/workflows/generate_docs.yml           |  36 +++
 .github/workflows/unit-tests.yml              |  19 ++
 .gitignore                                    |  33 ++
 CONTRIBUTING.md                               |  28 ++
 DEVELOPING.md                                 |  65 ++++
 INSTALL_HOOKS.sh                              |  31 ++
 README.md                                     |  22 ++
 build.gradle.kts                              |  29 ++
 change                                        |  23 ++
 .../.google/packaging.yaml                    |  33 ++
 generativeai-android-sample/README.md         |  34 +++
 .../app/build.gradle.kts                      |  79 +++++
 .../app/src/main/AndroidManifest.xml          |  40 +++
 .../ai/sample/GenerativeAiViewModelFactory.kt |  76 +++++
 .../com/google/ai/sample/MainActivity.kt      |  68 +++++
 .../kotlin/com/google/ai/sample/MenuScreen.kt |  92 ++++++
 .../ai/sample/feature/chat/ChatMessage.kt     |  30 ++
 .../ai/sample/feature/chat/ChatScreen.kt      | 222 ++++++++++++++
 .../ai/sample/feature/chat/ChatUiState.kt     |  39 +++
 .../ai/sample/feature/chat/ChatViewModel.kt   |  88 ++++++
 .../multimodal/PhotoReasoningScreen.kt        | 265 ++++++++++++++++
 .../multimodal/PhotoReasoningUiState.kt       |  47 +++
 .../multimodal/PhotoReasoningViewModel.kt     |  67 ++++
 .../ai/sample/feature/text/SummarizeScreen.kt | 186 ++++++++++++
 .../sample/feature/text/SummarizeUiState.kt   |  47 +++
 .../sample/feature/text/SummarizeViewModel.kt |  72 +++++
 .../com/google/ai/sample/ui/theme/Color.kt    |  27 ++
 .../com/google/ai/sample/ui/theme/Theme.kt    |  51 ++++
 .../com/google/ai/sample/ui/theme/Type.kt     |  34 +++
 .../com/google/ai/sample/util/UriSaver.kt     |  32 ++
 .../res/drawable/ic_launcher_background.xml   | 184 +++++++++++
 .../res/drawable/ic_launcher_foreground.xml   |  44 +++
 .../main/res/mipmap-anydpi/ic_launcher.xml    |  20 ++
 .../res/mipmap-anydpi/ic_launcher_round.xml   |  20 ++
 .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes
 .../res/mipmap-hdpi/ic_launcher_round.webp    | Bin 0 -> 2898 bytes
 .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes
 .../res/mipmap-mdpi/ic_launcher_round.webp    | Bin 0 -> 1772 bytes
 .../main/res/mipmap-xhdpi/ic_launcher.webp    | Bin 0 -> 1900 bytes
 .../res/mipmap-xhdpi/ic_launcher_round.webp   | Bin 0 -> 3918 bytes
 .../main/res/mipmap-xxhdpi/ic_launcher.webp   | Bin 0 -> 2884 bytes
 .../res/mipmap-xxhdpi/ic_launcher_round.webp  | Bin 0 -> 5914 bytes
 .../main/res/mipmap-xxxhdpi/ic_launcher.webp  | Bin 0 -> 3844 bytes
 .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes
 .../app/src/main/res/values/colors.xml        |  24 ++
 .../app/src/main/res/values/strings.xml       |  40 +++
 .../app/src/main/res/values/themes.xml        |  19 ++
 .../app/src/main/res/xml/backup_rules.xml     |  28 ++
 .../main/res/xml/data_extraction_rules.xml    |  34 +++
 generativeai-android-sample/build.gradle.kts  |  26 ++
 generativeai-android-sample/gradle.properties |  15 +
 .../gradle/wrapper/gradle-wrapper.jar         | Bin 0 -> 60756 bytes
 .../gradle/wrapper/gradle-wrapper.properties  |   5 +
 generativeai-android-sample/gradlew           | 240 +++++++++++++++
 generativeai-android-sample/gradlew.bat       |  91 ++++++
 .../screenshots/screenshots.png               | Bin 0 -> 359162 bytes
 .../settings.gradle.kts                       |  35 +++
 generativeai/.gitignore                       |   1 +
 generativeai/build.gradle.kts                 | 115 +++++++
 generativeai/consumer-rules.pro               |   0
 generativeai/gradle.properties                |   1 +
 generativeai/proguard-rules.pro               |  21 ++
 generativeai/public.api                       | 285 ++++++++++++++++++
 .../generativeai/ExampleInstrumentedTest.kt   |  38 +++
 generativeai/src/main/AndroidManifest.xml     |  18 ++
 .../com/google/ai/client/generativeai/Chat.kt | 159 ++++++++++
 .../ai/client/generativeai/GenerativeModel.kt | 184 +++++++++++
 .../internal/api/APIController.kt             | 163 ++++++++++
 .../generativeai/internal/api/Request.kt      |  36 +++
 .../generativeai/internal/api/Response.kt     |  34 +++
 .../generativeai/internal/api/client/Types.kt |  30 ++
 .../generativeai/internal/api/server/Types.kt |  99 ++++++
 .../generativeai/internal/api/shared/Types.kt |  78 +++++
 .../generativeai/internal/util/conversions.kt | 201 ++++++++++++
 .../generativeai/internal/util/kotlin.kt      |  41 +++
 .../client/generativeai/internal/util/ktor.kt | 101 +++++++
 .../internal/util/serialization.kt            |  84 ++++++
 .../client/generativeai/java/ChatFutures.kt   |  62 ++++
 .../java/GenerativeModelFutures.kt            |  89 ++++++
 .../generativeai/type/BlockThreshold.kt       |  37 +++
 .../ai/client/generativeai/type/Candidate.kt  |  72 +++++
 .../ai/client/generativeai/type/Content.kt    |  64 ++++
 .../generativeai/type/CountTokensResponse.kt  |  26 ++
 .../ai/client/generativeai/type/Exceptions.kt |  89 ++++++
 .../type/GenerateContentResponse.kt           |  66 ++++
 .../generativeai/type/GenerationConfig.kt     |  82 +++++
 .../client/generativeai/type/HarmCategory.kt  |  35 +++
 .../generativeai/type/HarmProbability.kt      |  38 +++
 .../ai/client/generativeai/type/Part.kt       |  47 +++
 .../generativeai/type/PromptFeedback.kt       |  43 +++
 .../client/generativeai/type/SafetySetting.kt |  25 ++
 .../generativeai/GenerativeModelTests.kt      |  48 +++
 .../generativeai/StreamingSnapshotTests.kt    | 154 ++++++++++
 .../client/generativeai/UnarySnapshotTests.kt | 128 ++++++++
 .../ai/client/generativeai/util/kotlin.kt     |  35 +++
 .../ai/client/generativeai/util/tests.kt      | 175 +++++++++++
 .../streaming/failure-empty-content.txt       |   1 +
 .../failure-finish-reason-safety.txt          |   2 +
 .../streaming/failure-http-error.txt          |  13 +
 .../failure-prompt-blocked-safety.txt         |   2 +
 .../failure-recitation-no-content.txt         |   6 +
 .../streaming/success-basic-reply-long.txt    |  12 +
 .../streaming/success-basic-reply-short.txt   |   2 +
 .../streaming/success-citations.txt           |  12 +
 .../streaming/success-quotes-escaped.txt      |   7 +
 .../streaming/success-unknown-enum.txt        |  11 +
 .../unary/failure-empty-content.json          |  28 ++
 .../unary/failure-finish-reason-safety.json   |  54 ++++
 .../unary/failure-http-error.json             |  13 +
 .../unary/failure-invalid-response.json       |  14 +
 .../unary/failure-malformed-content.json      |  30 ++
 .../unary/failure-prompt-blocked-safety.json  |  23 ++
 .../unary/success-basic-reply-long.json       |  54 ++++
 .../unary/success-basic-reply-short.json      |  54 ++++
 .../golden-files/unary/success-citation.json  |  70 +++++
 .../unary/success-quote-reply.json            |  54 ++++
 .../unary/success-unknown-enum.json           |  52 ++++
 gradle.properties                             |  25 ++
 gradle/wrapper/gradle-wrapper.jar             | Bin 0 -> 59203 bytes
 gradle/wrapper/gradle-wrapper.properties      |   6 +
 gradlew                                       | 185 ++++++++++++
 gradlew.bat                                   |  89 ++++++
 licenses/APACHE-2.0                           |  15 +
 plugins/README.md                             |  74 +++++
 plugins/build.gradle.kts                      |  56 ++++
 plugins/settings.gradle.kts                   |  32 ++
 .../com/google/gradle/plugins/ApiPlugin.kt    |  87 ++++++
 .../google/gradle/plugins/ChangelogPlugin.kt  | 144 +++++++++
 .../google/gradle/plugins/LicensePlugin.kt    |  91 ++++++
 .../google/gradle/tasks/ApplyLicenseTask.kt   |  90 ++++++
 .../google/gradle/tasks/FindChangesTask.kt    |  51 ++++
 .../com/google/gradle/tasks/MakeChangeTask.kt |  61 ++++
 .../gradle/tasks/MakeReleaseNotesTask.kt      |  77 +++++
 .../gradle/tasks/ValidateLicenseTask.kt       |  92 ++++++
 .../gradle/tasks/WarnAboutApiChangesTask.kt   | 100 ++++++
 .../java/com/google/gradle/types/Changelog.kt |  52 ++++
 .../google/gradle/types/LicenseTemplate.kt    | 109 +++++++
 .../com/google/gradle/types/LinesChanged.kt   |  88 ++++++
 .../com/google/gradle/types/ModuleVersion.kt  | 233 ++++++++++++++
 .../gradle/types/RandomWordsGenerator.kt      |  49 +++
 .../java/com/google/gradle/util/gradle.kt     | 136 +++++++++
 .../java/com/google/gradle/util/kotlin.kt     |  47 +++
 plugins/src/main/resources/words.txt          | 251 +++++++++++++++
 settings.gradle.kts                           |  34 +++
 151 files changed, 8735 insertions(+)
 create mode 100644 .github/hooks/pre-push
 create mode 100755 .github/hooks/pre-push.d/formatting.sh
 create mode 100755 .github/hooks/pre-push.d/licensing.sh
 create mode 100644 .github/workflows/build_release.yml
 create mode 100644 .github/workflows/check-code-format.yml
 create mode 100644 .github/workflows/check-licensing.yml
 create mode 100644 .github/workflows/check_for_api_changes.yml
 create mode 100644 .github/workflows/generate_docs.yml
 create mode 100644 .github/workflows/unit-tests.yml
 create mode 100644 .gitignore
 create mode 100644 CONTRIBUTING.md
 create mode 100644 DEVELOPING.md
 create mode 100755 INSTALL_HOOKS.sh
 create mode 100644 README.md
 create mode 100644 build.gradle.kts
 create mode 100755 change
 create mode 100644 generativeai-android-sample/.google/packaging.yaml
 create mode 100644 generativeai-android-sample/README.md
 create mode 100644 generativeai-android-sample/app/build.gradle.kts
 create mode 100644 generativeai-android-sample/app/src/main/AndroidManifest.xml
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/GenerativeAiViewModelFactory.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/MainActivity.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/MenuScreen.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatMessage.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatScreen.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatUiState.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatViewModel.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningScreen.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningUiState.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeScreen.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeUiState.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeViewModel.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Color.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Theme.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Type.kt
 create mode 100644 generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/util/UriSaver.kt
 create mode 100644 generativeai-android-sample/app/src/main/res/drawable/ic_launcher_background.xml
 create mode 100644 generativeai-android-sample/app/src/main/res/drawable/ic_launcher_foreground.xml
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-anydpi/ic_launcher.xml
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-hdpi/ic_launcher.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-mdpi/ic_launcher.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
 create mode 100644 generativeai-android-sample/app/src/main/res/values/colors.xml
 create mode 100644 generativeai-android-sample/app/src/main/res/values/strings.xml
 create mode 100644 generativeai-android-sample/app/src/main/res/values/themes.xml
 create mode 100644 generativeai-android-sample/app/src/main/res/xml/backup_rules.xml
 create mode 100644 generativeai-android-sample/app/src/main/res/xml/data_extraction_rules.xml
 create mode 100644 generativeai-android-sample/build.gradle.kts
 create mode 100644 generativeai-android-sample/gradle.properties
 create mode 100644 generativeai-android-sample/gradle/wrapper/gradle-wrapper.jar
 create mode 100644 generativeai-android-sample/gradle/wrapper/gradle-wrapper.properties
 create mode 100755 generativeai-android-sample/gradlew
 create mode 100644 generativeai-android-sample/gradlew.bat
 create mode 100644 generativeai-android-sample/screenshots/screenshots.png
 create mode 100644 generativeai-android-sample/settings.gradle.kts
 create mode 100644 generativeai/.gitignore
 create mode 100644 generativeai/build.gradle.kts
 create mode 100644 generativeai/consumer-rules.pro
 create mode 100644 generativeai/gradle.properties
 create mode 100644 generativeai/proguard-rules.pro
 create mode 100644 generativeai/public.api
 create mode 100644 generativeai/src/androidTest/java/com/google/ai/client/generativeai/ExampleInstrumentedTest.kt
 create mode 100644 generativeai/src/main/AndroidManifest.xml
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/Chat.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/GenerativeModel.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/APIController.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/Request.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/Response.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/client/Types.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/server/Types.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/shared/Types.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/conversions.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/kotlin.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/ktor.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/serialization.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/java/ChatFutures.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/java/GenerativeModelFutures.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/BlockThreshold.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/Candidate.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/Content.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/Exceptions.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/GenerateContentResponse.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/GenerationConfig.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/HarmCategory.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/HarmProbability.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/Part.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/PromptFeedback.kt
 create mode 100644 generativeai/src/main/java/com/google/ai/client/generativeai/type/SafetySetting.kt
 create mode 100644 generativeai/src/test/java/com/google/ai/client/generativeai/GenerativeModelTests.kt
 create mode 100644 generativeai/src/test/java/com/google/ai/client/generativeai/StreamingSnapshotTests.kt
 create mode 100644 generativeai/src/test/java/com/google/ai/client/generativeai/UnarySnapshotTests.kt
 create mode 100644 generativeai/src/test/java/com/google/ai/client/generativeai/util/kotlin.kt
 create mode 100644 generativeai/src/test/java/com/google/ai/client/generativeai/util/tests.kt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/failure-empty-content.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/failure-finish-reason-safety.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/failure-http-error.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/failure-prompt-blocked-safety.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/failure-recitation-no-content.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/success-basic-reply-long.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/success-basic-reply-short.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/success-citations.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/success-quotes-escaped.txt
 create mode 100644 generativeai/src/test/resources/golden-files/streaming/success-unknown-enum.txt
 create mode 100644 generativeai/src/test/resources/golden-files/unary/failure-empty-content.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/failure-finish-reason-safety.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/failure-http-error.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/failure-invalid-response.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/failure-malformed-content.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/failure-prompt-blocked-safety.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/success-basic-reply-long.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/success-basic-reply-short.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/success-citation.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/success-quote-reply.json
 create mode 100644 generativeai/src/test/resources/golden-files/unary/success-unknown-enum.json
 create mode 100644 gradle.properties
 create mode 100644 gradle/wrapper/gradle-wrapper.jar
 create mode 100644 gradle/wrapper/gradle-wrapper.properties
 create mode 100755 gradlew
 create mode 100644 gradlew.bat
 create mode 100644 licenses/APACHE-2.0
 create mode 100644 plugins/README.md
 create mode 100644 plugins/build.gradle.kts
 create mode 100644 plugins/settings.gradle.kts
 create mode 100644 plugins/src/main/java/com/google/gradle/plugins/ApiPlugin.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/plugins/ChangelogPlugin.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/plugins/LicensePlugin.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/tasks/ApplyLicenseTask.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/tasks/FindChangesTask.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/tasks/MakeChangeTask.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/tasks/MakeReleaseNotesTask.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/tasks/ValidateLicenseTask.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/tasks/WarnAboutApiChangesTask.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/types/Changelog.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/types/LicenseTemplate.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/types/LinesChanged.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/types/ModuleVersion.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/types/RandomWordsGenerator.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/util/gradle.kt
 create mode 100644 plugins/src/main/java/com/google/gradle/util/kotlin.kt
 create mode 100644 plugins/src/main/resources/words.txt
 create mode 100644 settings.gradle.kts

diff --git a/.github/hooks/pre-push b/.github/hooks/pre-push
new file mode 100644
index 00000000..8c91da69
--- /dev/null
+++ b/.github/hooks/pre-push
@@ -0,0 +1,36 @@
+#!/bin/bash
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+HOOKS_DIR=".git/hooks/pre-push.d"
+
+for hook in "$HOOKS_DIR"/*; do
+    "$hook"
+    EXIT_CODE=$?
+
+    if [ $EXIT_CODE != 0 ]; then
+        echo "Pre-push hook failed: $hook"
+        exit $EXIT_CODE
+    fi
+done
+
+# Check for changes made by the hooks
+if ! git diff-index --quiet HEAD --; then
+    # Stage any changes
+    git add -u
+
+    # Amend the newly made commit with these changes
+    git commit --amend --no-edit
+fi
+
+exit 0
diff --git a/.github/hooks/pre-push.d/formatting.sh b/.github/hooks/pre-push.d/formatting.sh
new file mode 100755
index 00000000..318e1f66
--- /dev/null
+++ b/.github/hooks/pre-push.d/formatting.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+echo "Running ktfmtFormat before push..."
+./gradlew ktfmtFormat || exit 1
+
+echo "Code formatted successfully."
diff --git a/.github/hooks/pre-push.d/licensing.sh b/.github/hooks/pre-push.d/licensing.sh
new file mode 100755
index 00000000..fa28dc9f
--- /dev/null
+++ b/.github/hooks/pre-push.d/licensing.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+echo "Running applyLicense before push..."
+./gradlew applyLicense || exit 1
+
+echo "License headers successfully."
diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml
new file mode 100644
index 00000000..ef02da48
--- /dev/null
+++ b/.github/workflows/build_release.yml
@@ -0,0 +1,36 @@
+# Perform a Gradle `build` which includes `assemble`, `check`, `test`
+# of the projects, and uploads the generated artifacts.
+
+name: Generate release artifacts
+
+# Controls when the action will run.
+on:
+  # Triggers the workflow on push or pull request events but only for the main branch
+  push:
+    branches: [ main ]
+
+  # Allows you to run this workflow manually from the Actions tab
+  workflow_dispatch:
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+  # This workflow contains a single job called "build"
+  build:
+    # The type of runner that the job will run on
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/setup-java@v3
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+          cache: gradle
+      - name: Perform a Gradle build
+        run: ./gradlew generativeai:publishAllPublicationsToMavenRepository
+      - name: Upload generated artifacts
+        uses: actions/upload-artifact@v2
+        with:
+          name: google-ai-android
+          path: generativeai/m2
+          retention-days: 5
diff --git a/.github/workflows/check-code-format.yml b/.github/workflows/check-code-format.yml
new file mode 100644
index 00000000..c96607eb
--- /dev/null
+++ b/.github/workflows/check-code-format.yml
@@ -0,0 +1,19 @@
+name: Check code format
+
+on: pull_request
+
+jobs:
+  check-format:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout branch
+        uses: actions/checkout@v3.5.3
+      - name: Set up JDK 17
+        uses: actions/setup-java@v3
+        with:
+          java-version: 17
+          distribution: temurin
+          cache: gradle
+      - name: Run ktfmt
+        run: |
+          ./gradlew ktfmtCheck --no-daemon
diff --git a/.github/workflows/check-licensing.yml b/.github/workflows/check-licensing.yml
new file mode 100644
index 00000000..19f2c270
--- /dev/null
+++ b/.github/workflows/check-licensing.yml
@@ -0,0 +1,19 @@
+name: Check licensing
+
+on: pull_request
+
+jobs:
+  check-licensing:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout branch
+        uses: actions/checkout@v3.5.3
+      - name: Set up JDK 17
+        uses: actions/setup-java@v3
+        with:
+          java-version: 17
+          distribution: temurin
+          cache: gradle
+      - name: Run license validator
+        run: |
+          ./gradlew validateLicense --no-daemon
diff --git a/.github/workflows/check_for_api_changes.yml b/.github/workflows/check_for_api_changes.yml
new file mode 100644
index 00000000..5c9b2743
--- /dev/null
+++ b/.github/workflows/check_for_api_changes.yml
@@ -0,0 +1,57 @@
+name: Check for api changes
+
+on: pull_request
+
+jobs:
+  check-for-api-changes:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout master
+        uses: actions/checkout@v3.5.3
+        with:
+          ref: ${{ github.base_ref }}
+
+      - name: Set up JDK 17
+        uses: actions/setup-java@v3
+        with:
+          java-version: 17
+          distribution: temurin
+          cache: gradle
+
+      - name: Update public.api
+        run: |
+          ./gradlew updateApi --no-daemon
+
+      - name: Save public.api from master
+        run: mv generativeai/public.api ~/public.api
+
+      - name: Checkout branch
+        uses: actions/checkout@v3.5.3
+
+      - name: Set up JDK 17
+        uses: actions/setup-java@v3
+        with:
+          java-version: 17
+          distribution: temurin
+          cache: gradle
+
+      - name: Copy saved api to branch
+        run: mv ~/public.api generativeai/public.api
+
+      - name: Run api warning task
+        run: |
+          ./gradlew warnAboutApiChanges --no-daemon
+
+      - name: Add PR Comment
+        if: ${{ hashFiles('api_changes.md') != '' }}
+        uses: marocchino/sticky-pull-request-comment@v2.8.0
+        with:
+          header: api_changes
+          path: build/api_changes.md
+
+      - name: Remove old PR Comment
+        if: ${{ hashFiles('api_changes.md') == '' }}
+        uses: marocchino/sticky-pull-request-comment@v2.8.0
+        with:
+          header: api_changes
+          delete: true
diff --git a/.github/workflows/generate_docs.yml b/.github/workflows/generate_docs.yml
new file mode 100644
index 00000000..a5525910
--- /dev/null
+++ b/.github/workflows/generate_docs.yml
@@ -0,0 +1,36 @@
+# Perform a Gradle `build` which includes `assemble`, `check`, `test`
+# of the projects, and uploads the generated artifacts.
+
+name: Generate docs
+
+# Controls when the action will run.
+on:
+  # Triggers the workflow on push or pull request events but only for the main branch
+  push:
+    branches: [ main ]
+
+  # Allows you to run this workflow manually from the Actions tab
+  workflow_dispatch:
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+  # This workflow contains a single job called "gen-docs"
+  gen-docs:
+    # The type of runner that the job will run on
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/setup-java@v3
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+          cache: gradle
+      - name: Run dokka
+        run: ./gradlew generativeai:dokkaHtml
+      - name: Upload generated docs
+        uses: actions/upload-artifact@v2
+        with:
+          name: google-ai-android
+          path: generativeai/build/dokka/html
+          retention-days: 5
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
new file mode 100644
index 00000000..2ddafab8
--- /dev/null
+++ b/.github/workflows/unit-tests.yml
@@ -0,0 +1,19 @@
+name: Unit tests
+
+on: pull_request
+
+jobs:
+  unit-tests:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout branch
+        uses: actions/checkout@v3.5.3
+      - name: Set up JDK 17
+        uses: actions/setup-java@v3
+        with:
+          java-version: 17
+          distribution: temurin
+          cache: gradle
+      - name: Run tests
+        run: |
+          ./gradlew test --no-daemon
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..347e252e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+# Gradle files
+.gradle/
+build/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Log/OS Files
+*.log
+
+# Android Studio generated files and folders
+captures/
+.externalNativeBuild/
+.cxx/
+*.apk
+output.json
+
+# IntelliJ
+*.iml
+.idea/
+misc.xml
+deploymentTargetDropDown.xml
+render.experimental.xml
+
+# Keystore files
+*.jks
+*.keystore
+
+# Google Services (e.g. APIs or Firebase)
+google-services.json
+
+# Android Profiling
+*.hprof
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..ebbb59e5
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,28 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution;
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to <https://cla.developers.google.com/> to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## Code reviews
+
+All submissions, including submissions by project members, require review. We
+use GitHub pull requests for this purpose. Consult
+[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
+information on using pull requests.
+
+## Community Guidelines
+
+This project follows
+[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/).
\ No newline at end of file
diff --git a/DEVELOPING.md b/DEVELOPING.md
new file mode 100644
index 00000000..90ea673e
--- /dev/null
+++ b/DEVELOPING.md
@@ -0,0 +1,65 @@
+# Developing
+
+## Setting up the repo
+
+### Git Hooks
+
+This repo uses git hooks for certain behaviors such as formatting before a push. To install the git
+hooks, run the following command at the root of your repo directory:
+
+```bash
+./INSTALL_HOOKS.sh
+```
+
+## Building and Releasing
+
+To locally publish the m2 repo:
+
+`./gradlew generativeai:publishToMavenLocal`
+
+To generate a releasable m2 repo:
+
+`./gradlew generativeai:publishAllPublicationsToMavenRepository`
+
+The m2 repo will be in `generativeai/m2`.
+
+To generate Dokka:
+
+`./gradlew generativeai:dokkaHtml`
+
+The docs will be in `generativeai/build/dokka/html`.
+
+## Making changes
+
+When making changes that are intended to invoke a release, it's important to make sure a proper
+changelog entry accompanies your change. We use a custom [plugin](./plugins/README.md), alongside an
+executable bash script called `change` to better facilitate this process.
+
+Changes are organized in the `.changes` directory at the root of the repo, and each change pending
+a release will be represented as a single file with a seemingly random string of words as a file
+name. This file will contain two vital pieces of information;
+
+ - What the change is about (a user displayable message to use in the subsequent release notes)
+ - The api impact of the change (will this require a major, minor, or patch bump?)
+
+We have tooling that will automatically determine the impact of your changes, so all you need to do
+is run the following command from the root of the repo whenever you want to make a change that will
+invoke a release:
+
+```bash
+change "hello world!"
+```
+
+Alternatively, if you want to invoke a release without adding anything to the release notes come
+release time- you can run `change` without specifying a message:
+
+```bash
+change
+```
+
+Both of these commands should generate a new file under the `.changes` directory with your message
+and impact.
+
+
+To learn more, read the section on our changelog plugin in our [plugin readme](./plugins/README.md).
+
diff --git a/INSTALL_HOOKS.sh b/INSTALL_HOOKS.sh
new file mode 100755
index 00000000..3fedaf0d
--- /dev/null
+++ b/INSTALL_HOOKS.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Define the source and destination directories
+SOURCE_DIR=".github/hooks/"
+DEST_DIR=".git/hooks/"
+
+# Check if the source directory exists
+if [ -d "$SOURCE_DIR" ]; then
+    # Copy the files from source to destination
+    cp -r $SOURCE_DIR $DEST_DIR
+
+    # Change permissions to make the hooks executable
+    chmod -R 777 $DEST_DIR
+
+    echo "Hooks copied successfully."
+else
+    echo "Source directory does not exist: $SOURCE_DIR"
+fi
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..ea401a43
--- /dev/null
+++ b/README.md
@@ -0,0 +1,22 @@
+# Google AI SDK for Android
+
+> [!IMPORTANT]
+> Thanks for your interest in the Google AI SDKs! **You can start using this SDK and its samples on
+> December 13, 2023.** Until then, check out our
+> [blog post](https://blog.google/technology/ai/google-gemini-ai/) to learn more about Google's
+> Gemini multimodal model.
+
+The Google AI SDK for Android enables developers to use Google's state-of-the-art generative AI
+models (like Gemini) to build AI-powered features and applications.
+
+*More details and information coming soon!*
+
+> [!NOTE]
+> If you want to access Gemini on-device (Gemini Nano), check out the
+> [Google AI Edge SDK for Android](https://android-developers.googleblog.com/2023/12/a-new-foundation-for-ai-on-android.html),
+> which is enabled via Android AICore.
+
+## License
+
+The contents of this repository are licensed under the
+[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 00000000..70f47906
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+plugins {
+    id("com.android.library") version "8.1.3" apply false
+    id("org.jetbrains.dokka") version "1.9.10" apply false
+    kotlin("android") version "1.8.22" apply false
+    kotlin("plugin.serialization") version "1.9.0" apply false
+    id("com.ncorti.ktfmt.gradle") version "0.15.1" apply false
+    id("license-plugin")
+}
+
+license {
+    template.set(file("licenses/APACHE-2.0"))
+    include.set(listOf("**/*.kt", "**/*.kts"))
+}
diff --git a/change b/change
new file mode 100755
index 00000000..eff4bc35
--- /dev/null
+++ b/change
@@ -0,0 +1,23 @@
+#!/bin/bash
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if [ $# -eq 0 ]; then
+    ./gradlew makeChange
+elif [ "$1" == "release" ] || [ "$1" == "compile" ]; then
+    ./gradlew makeReleaseNotes
+else
+    MESSAGE="$1"
+    ./gradlew makeChange -PchangeMessage="${MESSAGE}"
+fi
diff --git a/generativeai-android-sample/.google/packaging.yaml b/generativeai-android-sample/.google/packaging.yaml
new file mode 100644
index 00000000..334e2036
--- /dev/null
+++ b/generativeai-android-sample/.google/packaging.yaml
@@ -0,0 +1,33 @@
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# GOOGLE SAMPLE PACKAGING DATA
+#
+# This file is used by Google as part of our samples packaging process.
+# End users may safely ignore this file. It has no relevance to other systems.
+---
+status:       PUBLISHED
+technologies: [Android, AI, JetpackCompose]
+categories:
+    - Artificial Intelligence
+    - Machine Learning
+    - JetpackComposeLayouts
+languages:    [Kotlin]
+solutions:
+    - Mobile
+github:       google/generative-ai-android
+level:        INTERMEDIATE
+apiRefs:
+    - android:androidx.compose.Composable
+license: apache2
diff --git a/generativeai-android-sample/README.md b/generativeai-android-sample/README.md
new file mode 100644
index 00000000..7e0d3ecb
--- /dev/null
+++ b/generativeai-android-sample/README.md
@@ -0,0 +1,34 @@
+# Google Generative AI Sample for Android (Kotlin)
+
+This Android sample app demonstrates how to use state-of-the-art 
+generative AI models (like Gemini) to build AI-powered features and applications.
+
+To try out this sample app, you need to use latest stable version of Android Studio. 
+However, if you want to latest lint checks and AI productivity features in Android 
+Studio use the latest preview version of [Android Studio](https://developer.android.com/studio/preview).
+
+You can clone this repository or import the project from Android Studio following the steps
+[here](https://developer.android.com/jetpack/compose/setup#sample).
+
+## Screenshots
+
+<img src="screenshots/screenshots.png" alt="Screenshot">
+
+## Requirements
+
+1. Follow the instructions on Google AI Studio [setup page](https://makersuite.google.com/app/apikey) to obtain an API key.
+2. Add your API Key to the `local.properties` file in this format
+
+```txt
+apiKey=YOUR_API_KEY
+```
+## Features
+
+This sample showcases the following API capablilites:
+* Generate Text - demonstrates the Text feature from the SDK
+* Photo Reasoning - demonstrates the MultiModal feature from the SDK
+* Chat - demonstrates the Multi-turn Conversations feature from the SDK
+
+## Documentation
+
+You can find the quick start documentation for the Android Generative AI API [here](https://googledevai.google.com/tutorials/android_quickstart).
diff --git a/generativeai-android-sample/app/build.gradle.kts b/generativeai-android-sample/app/build.gradle.kts
new file mode 100644
index 00000000..ac4e47fa
--- /dev/null
+++ b/generativeai-android-sample/app/build.gradle.kts
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+plugins {
+    id("com.android.application")
+    id("org.jetbrains.kotlin.android")
+    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
+}
+
+android {
+    namespace = "com.google.ai.sample"
+    compileSdk = 34
+
+    defaultConfig {
+        applicationId = "com.google.ai.sample"
+        minSdk = 26
+        targetSdk = 34
+        versionCode = 1
+        versionName = "1.0"
+
+        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+        vectorDrawables {
+            useSupportLibrary = true
+        }
+    }
+
+    compileOptions {
+        sourceCompatibility = JavaVersion.VERSION_1_8
+        targetCompatibility = JavaVersion.VERSION_1_8
+    }
+    kotlinOptions {
+        jvmTarget = "1.8"
+    }
+    buildFeatures {
+        compose = true
+    }
+    composeOptions {
+        kotlinCompilerExtensionVersion = "1.5.4"
+    }
+}
+
+dependencies {
+    implementation("androidx.core:core-ktx:1.9.0")
+    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
+    implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2")
+    implementation("androidx.activity:activity-compose:1.8.1")
+    implementation("androidx.navigation:navigation-compose:2.7.5")
+
+    implementation(platform("androidx.compose:compose-bom:2023.10.01"))
+    implementation("androidx.compose.ui:ui")
+    implementation("androidx.compose.ui:ui-graphics")
+    implementation("androidx.compose.ui:ui-tooling-preview")
+    implementation("androidx.compose.material3:material3")
+
+    implementation("io.coil-kt:coil-compose:2.5.0")
+
+    testImplementation("junit:junit:4.13.2")
+    androidTestImplementation("androidx.test.ext:junit:1.1.5")
+    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
+    androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00"))
+    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
+    debugImplementation("androidx.compose.ui:ui-tooling")
+    debugImplementation("androidx.compose.ui:ui-test-manifest")
+
+    implementation("com.google.ai.client.generativeai:generativeai:0.1.0")
+}
diff --git a/generativeai-android-sample/app/src/main/AndroidManifest.xml b/generativeai-android-sample/app/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..0d795b20
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/AndroidManifest.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <application
+        android:allowBackup="true"
+        android:dataExtractionRules="@xml/data_extraction_rules"
+        android:fullBackupContent="@xml/backup_rules"
+        android:icon="@mipmap/ic_launcher"
+        android:label="@string/app_name"
+        android:roundIcon="@mipmap/ic_launcher_round"
+        android:supportsRtl="true"
+        tools:targetApi="31">
+        <activity
+            android:name=".MainActivity"
+            android:exported="true"
+            android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/GenerativeAiViewModelFactory.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/GenerativeAiViewModelFactory.kt
new file mode 100644
index 00000000..519a527d
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/GenerativeAiViewModelFactory.kt
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewmodel.CreationExtras
+import com.google.ai.client.generativeai.GenerativeModel
+import com.google.ai.client.generativeai.type.generationConfig
+import com.google.ai.sample.feature.chat.ChatViewModel
+import com.google.ai.sample.feature.multimodal.PhotoReasoningViewModel
+import com.google.ai.sample.feature.text.SummarizeViewModel
+
+val GenerativeViewModelFactory = object : ViewModelProvider.Factory {
+    override fun <T : ViewModel> create(
+        viewModelClass: Class<T>,
+        extras: CreationExtras
+    ): T {
+        val config = generationConfig {
+            temperature = 0.7f
+        }
+
+        return with(viewModelClass) {
+            when {
+                isAssignableFrom(SummarizeViewModel::class.java) -> {
+                    // Initialize a GenerativeModel with the `gemini-pro` AI model
+                    // for text generation
+                    val generativeModel = GenerativeModel(
+                        modelName = "gemini-pro",
+                        apiKey = BuildConfig.apiKey,
+                        generationConfig = config
+                    )
+                    SummarizeViewModel(generativeModel)
+                }
+
+                isAssignableFrom(PhotoReasoningViewModel::class.java) -> {
+                    // Initialize a GenerativeModel with the `gemini-pro-vision` AI model
+                    // for multimodal text generation
+                    val generativeModel = GenerativeModel(
+                        modelName = "gemini-pro-vision",
+                        apiKey = BuildConfig.apiKey,
+                        generationConfig = config
+                    )
+                    PhotoReasoningViewModel(generativeModel)
+                }
+
+                isAssignableFrom(ChatViewModel::class.java) -> {
+                    // Initialize a GenerativeModel with the `gemini-pro` AI model for chat
+                    val generativeModel = GenerativeModel(
+                        modelName = "gemini-pro",
+                        apiKey = BuildConfig.apiKey,
+                        generationConfig = config
+                    )
+                    ChatViewModel(generativeModel)
+                }
+
+                else ->
+                    throw IllegalArgumentException("Unknown ViewModel class: ${viewModelClass.name}")
+            }
+        } as T
+    }
+}
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/MainActivity.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/MainActivity.kt
new file mode 100644
index 00000000..67ebf68d
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/MainActivity.kt
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample
+
+import android.os.Bundle
+import androidx.activity.ComponentActivity
+import androidx.activity.compose.setContent
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.ui.Modifier
+import androidx.navigation.compose.NavHost
+import androidx.navigation.compose.composable
+import androidx.navigation.compose.rememberNavController
+import com.google.ai.sample.feature.chat.ChatRoute
+import com.google.ai.sample.feature.multimodal.PhotoReasoningRoute
+import com.google.ai.sample.feature.text.SummarizeRoute
+import com.google.ai.sample.ui.theme.GenerativeAISample
+
+class MainActivity : ComponentActivity() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+
+        setContent {
+            GenerativeAISample {
+                // A surface container using the 'background' color from the theme
+                Surface(
+                    modifier = Modifier.fillMaxSize(),
+                    color = MaterialTheme.colorScheme.background
+                ) {
+                    val navController = rememberNavController()
+
+                    NavHost(navController = navController, startDestination = "menu") {
+                        composable("menu") {
+                            MenuScreen(onItemClicked = { routeId ->
+                                navController.navigate(routeId)
+                            })
+                        }
+                        composable("summarize") {
+                            SummarizeRoute()
+                        }
+                        composable("photo_reasoning") {
+                            PhotoReasoningRoute()
+                        }
+                        composable("chat") {
+                            ChatRoute()
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/MenuScreen.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/MenuScreen.kt
new file mode 100644
index 00000000..eb7800e3
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/MenuScreen.kt
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
+import androidx.compose.material3.Card
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.material3.TextButton
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+
+data class MenuItem(
+    val routeId: String,
+    val titleResId: Int,
+    val descriptionResId: Int
+)
+
+@Composable
+fun MenuScreen(
+    onItemClicked: (String) -> Unit = { }
+) {
+    val menuItems = listOf(
+        MenuItem("summarize", R.string.menu_summarize_title, R.string.menu_summarize_description),
+        MenuItem("photo_reasoning", R.string.menu_reason_title, R.string.menu_reason_description),
+        MenuItem("chat", R.string.menu_chat_title, R.string.menu_chat_description)
+    )
+    LazyColumn(
+        Modifier
+            .padding(top = 16.dp, bottom = 16.dp)
+    ) {
+        items(menuItems) { menuItem ->
+            Card(
+                modifier = Modifier
+                    .fillMaxWidth()
+                    .padding(horizontal = 16.dp, vertical = 8.dp)
+            ) {
+                Column(
+                    modifier = Modifier
+                        .padding(all = 16.dp)
+                        .fillMaxWidth()
+                ) {
+                    Text(
+                        text = stringResource(menuItem.titleResId),
+                        style = MaterialTheme.typography.titleMedium
+                    )
+                    Text(
+                        text = stringResource(menuItem.descriptionResId),
+                        style = MaterialTheme.typography.bodyMedium,
+                        modifier = Modifier.padding(top = 8.dp)
+                    )
+                    TextButton(
+                        onClick = {
+                            onItemClicked(menuItem.routeId)
+                        },
+                        modifier = Modifier.align(Alignment.End)
+                    ) {
+                        Text(text = stringResource(R.string.action_try))
+                    }
+                }
+            }
+        }
+    }
+}
+
+@Preview(showSystemUi = true)
+@Composable
+fun MenuScreenPreview() {
+    MenuScreen()
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatMessage.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatMessage.kt
new file mode 100644
index 00000000..ce76394b
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatMessage.kt
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.chat
+
+import java.util.UUID
+
+enum class Participant {
+    USER, MODEL, ERROR
+}
+
+data class ChatMessage(
+    val id: String = UUID.randomUUID().toString(),
+    var text: String = "",
+    val participant: Participant = Participant.USER,
+    var isPending: Boolean = false
+)
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatScreen.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatScreen.kt
new file mode 100644
index 00000000..d18846c3
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatScreen.kt
@@ -0,0 +1,222 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.chat
+
+import androidx.compose.foundation.layout.BoxWithConstraints
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.widthIn
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.LazyListState
+import androidx.compose.foundation.lazy.items
+import androidx.compose.foundation.lazy.rememberLazyListState
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.foundation.text.KeyboardOptions
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.Send
+import androidx.compose.material3.Card
+import androidx.compose.material3.CardDefaults
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.ElevatedCard
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Scaffold
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.collectAsState
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.saveable.rememberSaveable
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.input.KeyboardCapitalization
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.lifecycle.viewmodel.compose.viewModel
+import com.google.ai.sample.GenerativeViewModelFactory
+import com.google.ai.sample.R
+import com.google.ai.sample.ui.theme.GenerativeAISample
+import kotlinx.coroutines.launch
+
+@Composable
+internal fun ChatRoute(
+    chatViewModel: ChatViewModel = viewModel(factory = GenerativeViewModelFactory)
+) {
+    val chatUiState by chatViewModel.uiState.collectAsState()
+    val listState = rememberLazyListState()
+    val coroutineScope = rememberCoroutineScope()
+
+    Scaffold(
+        bottomBar = {
+            MessageInput(
+                onSendMessage = { inputText ->
+                    chatViewModel.sendMessage(inputText)
+                },
+                resetScroll = {
+                    coroutineScope.launch {
+                        listState.scrollToItem(0)
+                    }
+                }
+            )
+        }
+    ) { paddingValues ->
+        Column(
+            modifier = Modifier
+                .padding(paddingValues)
+                .fillMaxSize()
+        ) {
+            // Messages List
+            ChatList(chatUiState.messages, listState)
+        }
+    }
+}
+
+@Composable
+fun ChatList(
+    chatMessages: List<ChatMessage>,
+    listState: LazyListState
+) {
+    LazyColumn(
+        reverseLayout = true,
+        state = listState
+    ) {
+        items(chatMessages.reversed()) { message ->
+            ChatBubbleItem(message)
+        }
+    }
+}
+
+@Composable
+fun ChatBubbleItem(
+    chatMessage: ChatMessage
+) {
+    val isModelMessage = chatMessage.participant == Participant.MODEL ||
+            chatMessage.participant == Participant.ERROR
+
+    val backgroundColor = when (chatMessage.participant) {
+        Participant.MODEL -> MaterialTheme.colorScheme.primaryContainer
+        Participant.USER -> MaterialTheme.colorScheme.tertiaryContainer
+        Participant.ERROR -> MaterialTheme.colorScheme.errorContainer
+    }
+
+    val bubbleShape = if (isModelMessage) {
+        RoundedCornerShape(4.dp, 20.dp, 20.dp, 20.dp)
+    } else {
+        RoundedCornerShape(20.dp, 4.dp, 20.dp, 20.dp)
+    }
+
+    val horizontalAlignment = if (isModelMessage) {
+        Alignment.Start
+    } else {
+        Alignment.End
+    }
+
+    Column(
+        horizontalAlignment = horizontalAlignment,
+        modifier = Modifier
+            .padding(horizontal = 8.dp, vertical = 4.dp)
+            .fillMaxWidth()
+    ) {
+        Text(
+            text = chatMessage.participant.name,
+            style = MaterialTheme.typography.bodySmall,
+            modifier = Modifier.padding(bottom = 4.dp)
+        )
+        Row {
+            if (chatMessage.isPending) {
+                CircularProgressIndicator(
+                    modifier = Modifier
+                        .align(Alignment.CenterVertically)
+                        .padding(all = 8.dp)
+                )
+            }
+            BoxWithConstraints {
+                Card(
+                    colors = CardDefaults.cardColors(containerColor = backgroundColor),
+                    shape = bubbleShape,
+                    modifier = Modifier.widthIn(0.dp, maxWidth * 0.9f)
+                ) {
+                    Text(
+                        text = chatMessage.text,
+                        modifier = Modifier.padding(16.dp)
+                    )
+                }
+            }
+        }
+    }
+}
+
+@Composable
+fun MessageInput(
+    onSendMessage: (String) -> Unit,
+    resetScroll: () -> Unit = {}
+) {
+    var userMessage by rememberSaveable { mutableStateOf("") }
+
+    ElevatedCard(
+        modifier = Modifier
+            .fillMaxWidth()
+    ) {
+        Row(
+            modifier = Modifier
+                .padding(16.dp)
+                .fillMaxWidth()
+        ) {
+            OutlinedTextField(
+                value = userMessage,
+                label = { Text(stringResource(R.string.chat_label)) },
+                onValueChange = { userMessage = it },
+                keyboardOptions = KeyboardOptions(
+                    capitalization = KeyboardCapitalization.Sentences,
+                ),
+                modifier = Modifier
+                    .align(Alignment.CenterVertically)
+                    .fillMaxWidth()
+                    .weight(0.85f)
+            )
+            IconButton(
+                onClick = {
+                    if (userMessage.isNotBlank()) {
+                        onSendMessage(userMessage)
+                        userMessage = ""
+                        resetScroll()
+                    }
+                },
+                modifier = Modifier
+                    .padding(start = 16.dp)
+                    .align(Alignment.CenterVertically)
+                    .fillMaxWidth()
+                    .weight(0.15f)
+            ) {
+                Icon(
+                    Icons.Default.Send,
+                    contentDescription = stringResource(R.string.action_send),
+                    modifier = Modifier
+                )
+            }
+        }
+    }
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatUiState.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatUiState.kt
new file mode 100644
index 00000000..2fc56ae2
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatUiState.kt
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.chat
+
+import androidx.compose.runtime.toMutableStateList
+
+class ChatUiState(
+    messages: List<ChatMessage> = emptyList()
+) {
+    private val _messages: MutableList<ChatMessage> = messages.toMutableStateList()
+    val messages: List<ChatMessage> = _messages
+
+    fun addMessage(msg: ChatMessage) {
+        _messages.add(msg)
+    }
+
+    fun replaceLastPendingMessage() {
+        val lastMessage = _messages.lastOrNull()
+        lastMessage?.let {
+            val newMessage = lastMessage.apply { isPending = false }
+            _messages.removeLast()
+            _messages.add(newMessage)
+        }
+    }
+}
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatViewModel.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatViewModel.kt
new file mode 100644
index 00000000..dbfa23b5
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/chat/ChatViewModel.kt
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.chat
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import com.google.ai.client.generativeai.GenerativeModel
+import com.google.ai.client.generativeai.type.asTextOrNull
+import com.google.ai.client.generativeai.type.content
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.launch
+
+class ChatViewModel(
+    generativeModel: GenerativeModel
+) : ViewModel() {
+    private val chat = generativeModel.startChat(
+        history = listOf(
+            content(role = "user") { text("Hello, I have 2 dogs in my house.") },
+            content(role = "model") { text("Great to meet you. What would you like to know?") }
+        )
+    )
+
+    private val _uiState: MutableStateFlow<ChatUiState> =
+        MutableStateFlow(ChatUiState(chat.history.map { content ->
+            // Map the initial messages
+            ChatMessage(
+                text = content.parts.first().asTextOrNull() ?: "",
+                participant = if (content.role == "user") Participant.USER else Participant.MODEL,
+                isPending = false
+            )
+        }))
+    val uiState: StateFlow<ChatUiState> =
+        _uiState.asStateFlow()
+
+
+    fun sendMessage(userMessage: String) {
+        // Add a pending message
+        _uiState.value.addMessage(
+            ChatMessage(
+                text = userMessage,
+                participant = Participant.USER,
+                isPending = true
+            )
+        )
+
+        viewModelScope.launch {
+            try {
+                val response = chat.sendMessage(userMessage)
+
+                _uiState.value.replaceLastPendingMessage()
+
+                response.text?.let { modelResponse ->
+                    _uiState.value.addMessage(
+                        ChatMessage(
+                            text = modelResponse,
+                            participant = Participant.MODEL,
+                            isPending = false
+                        )
+                    )
+                }
+            } catch (e: Exception) {
+                _uiState.value.replaceLastPendingMessage()
+                _uiState.value.addMessage(
+                    ChatMessage(
+                        text = e.localizedMessage,
+                        participant = Participant.ERROR
+                    )
+                )
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningScreen.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningScreen.kt
new file mode 100644
index 00000000..8cc8f94e
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningScreen.kt
@@ -0,0 +1,265 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.multimodal
+
+import android.graphics.drawable.BitmapDrawable
+import android.net.Uri
+import androidx.activity.compose.rememberLauncherForActivityResult
+import androidx.activity.result.PickVisualMediaRequest
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.requiredSize
+import androidx.compose.foundation.lazy.LazyRow
+import androidx.compose.foundation.lazy.items
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.verticalScroll
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.Person
+import androidx.compose.material.icons.rounded.Add
+import androidx.compose.material3.Card
+import androidx.compose.material3.CardDefaults
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Text
+import androidx.compose.material3.TextButton
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.collectAsState
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateListOf
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.saveable.rememberSaveable
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.drawBehind
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.lifecycle.viewmodel.compose.viewModel
+import coil.ImageLoader
+import coil.compose.AsyncImage
+import coil.request.ImageRequest
+import coil.request.SuccessResult
+import com.google.ai.sample.GenerativeViewModelFactory
+import coil.size.Precision
+import com.google.ai.sample.R
+import com.google.ai.sample.util.UriSaver
+import kotlinx.coroutines.launch
+
+@Composable
+internal fun PhotoReasoningRoute(
+    viewModel: PhotoReasoningViewModel = viewModel(factory = GenerativeViewModelFactory)
+) {
+    val photoReasoningUiState by viewModel.uiState.collectAsState()
+
+    val coroutineScope = rememberCoroutineScope()
+    val imageRequestBuilder = ImageRequest.Builder(LocalContext.current)
+    val imageLoader = ImageLoader.Builder(LocalContext.current).build()
+
+    PhotoReasoningScreen(
+        uiState = photoReasoningUiState,
+        onReasonClicked = { inputText, selectedItems ->
+            coroutineScope.launch {
+                val bitmaps = selectedItems.mapNotNull {
+                    val imageRequest = imageRequestBuilder
+                        .data(it)
+                        // Scale the image down to 768px for faster uploads
+                        .size(size = 768)
+                        .precision(Precision.EXACT)
+                        .build()
+                    try {
+                        val result = imageLoader.execute(imageRequest)
+                        if (result is SuccessResult) {
+                            return@mapNotNull (result.drawable as BitmapDrawable).bitmap
+                        } else {
+                            return@mapNotNull null
+                        }
+                    } catch (e: Exception) {
+                        return@mapNotNull null
+                    }
+                }
+                viewModel.reason(inputText, bitmaps)
+            }
+        }
+    )
+}
+
+@Composable
+fun PhotoReasoningScreen(
+    uiState: PhotoReasoningUiState = PhotoReasoningUiState.Loading,
+    onReasonClicked: (String, List<Uri>) -> Unit = { _, _ -> }
+) {
+    var userQuestion by rememberSaveable { mutableStateOf("") }
+    val imageUris = rememberSaveable(saver = UriSaver()) { mutableStateListOf() }
+
+    val pickMedia = rememberLauncherForActivityResult(
+        ActivityResultContracts.PickVisualMedia()
+    ) { imageUri ->
+        imageUri?.let {
+            imageUris.add(it)
+        }
+    }
+
+    Column(
+        modifier = Modifier
+            .padding(all = 16.dp)
+            .verticalScroll(rememberScrollState())
+    ) {
+        Card(
+            modifier = Modifier.fillMaxWidth()
+        ) {
+            Row(
+                modifier = Modifier.padding(top = 16.dp)
+            ) {
+                IconButton(
+                    onClick = {
+                        pickMedia.launch(
+                            PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)
+                        )
+                    },
+                    modifier = Modifier
+                        .padding(all = 4.dp)
+                        .align(Alignment.CenterVertically)
+                ) {
+                    Icon(
+                        Icons.Rounded.Add,
+                        contentDescription = stringResource(R.string.add_image),
+                    )
+                }
+                OutlinedTextField(
+                    value = userQuestion,
+                    label = { Text(stringResource(R.string.reason_label)) },
+                    placeholder = { Text(stringResource(R.string.reason_hint)) },
+                    onValueChange = { userQuestion = it },
+                    modifier = Modifier
+                        .fillMaxWidth(0.8f)
+                )
+                TextButton(
+                    onClick = {
+                        if (userQuestion.isNotBlank()) {
+                            onReasonClicked(userQuestion, imageUris.toList())
+                        }
+                    },
+                    modifier = Modifier
+                        .padding(all = 4.dp)
+                        .align(Alignment.CenterVertically)
+                ) {
+                    Text(stringResource(R.string.action_go))
+                }
+            }
+            LazyRow(
+                modifier = Modifier.padding(all = 8.dp)
+            ) {
+                items(imageUris) { imageUri ->
+                    AsyncImage(
+                        model = imageUri,
+                        contentDescription = null,
+                        modifier = Modifier
+                            .padding(4.dp)
+                            .requiredSize(72.dp)
+                    )
+                }
+            }
+        }
+        when (uiState) {
+            PhotoReasoningUiState.Initial -> {
+                // Nothing is shown
+            }
+
+            PhotoReasoningUiState.Loading -> {
+                Box(
+                    contentAlignment = Alignment.Center,
+                    modifier = Modifier
+                        .padding(all = 8.dp)
+                        .align(Alignment.CenterHorizontally)
+                ) {
+                    CircularProgressIndicator()
+                }
+            }
+
+            is PhotoReasoningUiState.Success -> {
+                Card(
+                    modifier = Modifier
+                        .padding(vertical = 16.dp)
+                        .fillMaxWidth(),
+                    shape = MaterialTheme.shapes.large,
+                    colors = CardDefaults.cardColors(
+                        containerColor = MaterialTheme.colorScheme.onSecondaryContainer
+                    )
+                ) {
+                    Row(
+                        modifier = Modifier
+                            .padding(all = 16.dp)
+                            .fillMaxWidth()
+                    ) {
+                        Icon(
+                            Icons.Outlined.Person,
+                            contentDescription = "Person Icon",
+                            tint = MaterialTheme.colorScheme.onSecondary,
+                            modifier = Modifier
+                                .requiredSize(36.dp)
+                                .drawBehind {
+                                    drawCircle(color = Color.White)
+                                }
+                        )
+                        Text(
+                            text = uiState.outputText, // TODO(thatfiredev): Figure out Markdown support
+                            color = MaterialTheme.colorScheme.onSecondary,
+                            modifier = Modifier
+                                .padding(start = 16.dp)
+                                .fillMaxWidth()
+                        )
+                    }
+                }
+            }
+
+            is PhotoReasoningUiState.Error -> {
+                Card(
+                    modifier = Modifier
+                        .padding(vertical = 16.dp)
+                        .fillMaxWidth(),
+                    shape = MaterialTheme.shapes.large,
+                    colors = CardDefaults.cardColors(
+                        containerColor = MaterialTheme.colorScheme.errorContainer
+                    )
+                ) {
+                    Text(
+                        text = uiState.errorMessage,
+                        color = MaterialTheme.colorScheme.error,
+                        modifier = Modifier.padding(all = 16.dp)
+                    )
+                }
+            }
+        }
+    }
+}
+
+@Composable
+@Preview(showSystemUi = true)
+fun PhotoReasoningScreenPreview() {
+    PhotoReasoningScreen()
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningUiState.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningUiState.kt
new file mode 100644
index 00000000..8baf4752
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningUiState.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.multimodal
+
+/**
+ * A sealed hierarchy describing the state of the text generation.
+ */
+sealed interface PhotoReasoningUiState {
+
+    /**
+     * Empty state when the screen is first shown
+     */
+    data object Initial: PhotoReasoningUiState
+
+    /**
+     * Still loading
+     */
+    data object Loading: PhotoReasoningUiState
+
+    /**
+     * Text has been generated
+     */
+    data class Success(
+        val outputText: String
+    ): PhotoReasoningUiState
+
+    /**
+     * There was an error generating text
+     */
+    data class Error(
+        val errorMessage: String
+    ): PhotoReasoningUiState
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt
new file mode 100644
index 00000000..5f5751a7
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.multimodal
+
+import android.graphics.Bitmap
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import com.google.ai.client.generativeai.GenerativeModel
+import com.google.ai.client.generativeai.type.content
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.launch
+
+class PhotoReasoningViewModel(
+    private val generativeModel: GenerativeModel
+) : ViewModel() {
+
+    private val _uiState: MutableStateFlow<PhotoReasoningUiState> =
+        MutableStateFlow(PhotoReasoningUiState.Initial)
+    val uiState: StateFlow<PhotoReasoningUiState> =
+        _uiState.asStateFlow()
+
+    fun reason(
+        userInput: String,
+        selectedImages: List<Bitmap>
+    ) {
+        _uiState.value = PhotoReasoningUiState.Loading
+        val prompt = "Look at the image(s), and then answer the following question: $userInput"
+
+        viewModelScope.launch(Dispatchers.IO) {
+            try {
+                val inputContent = content {
+                    for (bitmap in selectedImages) {
+                        image(bitmap)
+                    }
+                    text(prompt)
+                }
+
+                var outputContent = ""
+
+                generativeModel.generateContentStream(inputContent)
+                    .collect { response ->
+                        outputContent += response.text
+                        _uiState.value = PhotoReasoningUiState.Success(outputContent)
+                    }
+            } catch (e: Exception) {
+                _uiState.value = PhotoReasoningUiState.Error(e.localizedMessage ?: "")
+            }
+        }
+    }
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeScreen.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeScreen.kt
new file mode 100644
index 00000000..dc1ef9ae
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeScreen.kt
@@ -0,0 +1,186 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.text
+
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.requiredSize
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.verticalScroll
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.Person
+import androidx.compose.material3.Card
+import androidx.compose.material3.CardDefaults
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.ElevatedCard
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Text
+import androidx.compose.material3.TextButton
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.collectAsState
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.saveable.rememberSaveable
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.drawBehind
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.lifecycle.viewmodel.compose.viewModel
+import com.google.ai.sample.GenerativeViewModelFactory
+import com.google.ai.sample.R
+import com.google.ai.sample.ui.theme.GenerativeAISample
+
+@Composable
+internal fun SummarizeRoute(
+    summarizeViewModel: SummarizeViewModel = viewModel(factory = GenerativeViewModelFactory)
+) {
+    val summarizeUiState by summarizeViewModel.uiState.collectAsState()
+
+    SummarizeScreen(summarizeUiState, onSummarizeClicked = { inputText ->
+        summarizeViewModel.summarizeStreaming(inputText)
+    })
+}
+
+@Composable
+fun SummarizeScreen(
+    uiState: SummarizeUiState = SummarizeUiState.Loading,
+    onSummarizeClicked: (String) -> Unit = {}
+) {
+    var textToSummarize by rememberSaveable { mutableStateOf("") }
+
+    Column(
+        modifier = Modifier
+            .verticalScroll(rememberScrollState())
+    ) {
+        ElevatedCard(
+            modifier = Modifier
+                .padding(all = 16.dp)
+                .fillMaxWidth(),
+            shape = MaterialTheme.shapes.large
+        ) {
+            OutlinedTextField(
+                value = textToSummarize,
+                label = { Text(stringResource(R.string.summarize_label)) },
+                placeholder = { Text(stringResource(R.string.summarize_hint)) },
+                onValueChange = { textToSummarize = it },
+                modifier = Modifier
+                    .padding(16.dp)
+                    .fillMaxWidth()
+            )
+            TextButton(
+                onClick = {
+                    if (textToSummarize.isNotBlank()) {
+                        onSummarizeClicked(textToSummarize)
+                    }
+                },
+                modifier = Modifier
+                    .padding(end = 16.dp, bottom = 16.dp)
+                    .align(Alignment.End)
+            ) {
+                Text(stringResource(R.string.action_go))
+            }
+        }
+
+        when (uiState) {
+            SummarizeUiState.Initial -> {
+                // Nothing is shown
+            }
+
+            SummarizeUiState.Loading -> {
+                Box(
+                    contentAlignment = Alignment.Center,
+                    modifier = Modifier
+                        .padding(all = 8.dp)
+                        .align(Alignment.CenterHorizontally)
+                ) {
+                    CircularProgressIndicator()
+                }
+            }
+
+            is SummarizeUiState.Success -> {
+                Card(
+                    modifier = Modifier
+                        .padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
+                        .fillMaxWidth(),
+                    shape = MaterialTheme.shapes.large,
+                    colors = CardDefaults.cardColors(
+                        containerColor = MaterialTheme.colorScheme.onSecondaryContainer
+                    )
+                ) {
+                    Row(
+                        modifier = Modifier
+                            .padding(all = 16.dp)
+                            .fillMaxWidth()
+                    ) {
+                        Icon(
+                            Icons.Outlined.Person,
+                            contentDescription = "Person Icon",
+                            tint = MaterialTheme.colorScheme.onSecondary,
+                            modifier = Modifier
+                                .requiredSize(36.dp)
+                                .drawBehind {
+                                    drawCircle(color = Color.White)
+                                }
+                        )
+                        Text(
+                            text = uiState.outputText, // TODO(thatfiredev): Figure out Markdown support
+                            color = MaterialTheme.colorScheme.onSecondary,
+                            modifier = Modifier
+                                .padding(start = 16.dp)
+                                .fillMaxWidth()
+                        )
+                    }
+                }
+            }
+
+            is SummarizeUiState.Error -> {
+                Card(
+                    modifier = Modifier
+                        .padding(horizontal = 16.dp)
+                        .fillMaxWidth(),
+                    shape = MaterialTheme.shapes.large,
+                    colors = CardDefaults.cardColors(
+                        containerColor = MaterialTheme.colorScheme.errorContainer
+                    )
+                ) {
+                    Text(
+                        text = uiState.errorMessage,
+                        color = MaterialTheme.colorScheme.error,
+                        modifier = Modifier.padding(all = 16.dp)
+                    )
+                }
+            }
+        }
+    }
+}
+
+@Composable
+@Preview(showSystemUi = true)
+fun SummarizeScreenPreview() {
+    GenerativeAISample(darkTheme = true) {
+        SummarizeScreen()
+    }
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeUiState.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeUiState.kt
new file mode 100644
index 00000000..b0598131
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeUiState.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.text
+
+/**
+ * A sealed hierarchy describing the state of the text generation.
+ */
+sealed interface SummarizeUiState {
+
+    /**
+     * Empty state when the screen is first shown
+     */
+    data object Initial: SummarizeUiState
+
+    /**
+     * Still loading
+     */
+    data object Loading: SummarizeUiState
+
+    /**
+     * Text has been generated
+     */
+    data class Success(
+        val outputText: String
+    ): SummarizeUiState
+
+    /**
+     * There was an error generating text
+     */
+    data class Error(
+        val errorMessage: String
+    ): SummarizeUiState
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeViewModel.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeViewModel.kt
new file mode 100644
index 00000000..f0c20994
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/feature/text/SummarizeViewModel.kt
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.feature.text
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import com.google.ai.client.generativeai.GenerativeModel
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.launch
+
+class SummarizeViewModel(
+    private val generativeModel: GenerativeModel
+) : ViewModel() {
+
+    private val _uiState: MutableStateFlow<SummarizeUiState> =
+        MutableStateFlow(SummarizeUiState.Initial)
+    val uiState: StateFlow<SummarizeUiState> =
+        _uiState.asStateFlow()
+
+    fun summarize(inputText: String) {
+        _uiState.value = SummarizeUiState.Loading
+
+        val prompt = "Summarize the following text for me: $inputText"
+
+        viewModelScope.launch {
+            // Non-streaming
+            try {
+                val response = generativeModel.generateContent(prompt)
+                response.text?.let { outputContent ->
+                    _uiState.value = SummarizeUiState.Success(outputContent)
+                }
+            } catch (e: Exception) {
+                _uiState.value = SummarizeUiState.Error(e.localizedMessage ?: "")
+            }
+        }
+    }
+
+    fun summarizeStreaming(inputText: String) {
+        _uiState.value = SummarizeUiState.Loading
+
+        val prompt = "Summarize the following text for me: $inputText"
+
+        viewModelScope.launch {
+            try {
+                var outputContent = ""
+                generativeModel.generateContentStream(prompt)
+                    .collect { response ->
+                        outputContent += response.text
+                        _uiState.value = SummarizeUiState.Success(outputContent)
+                    }
+            } catch (e: Exception) {
+                _uiState.value = SummarizeUiState.Error(e.localizedMessage ?: "")
+            }
+        }
+    }
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Color.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Color.kt
new file mode 100644
index 00000000..6180c124
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Color.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.ui.theme
+
+import androidx.compose.ui.graphics.Color
+
+val Purple80 = Color(0xFFD0BCFF)
+val PurpleGrey80 = Color(0xFFCCC2DC)
+val Pink80 = Color(0xFFEFB8C8)
+
+val Purple40 = Color(0xFF6650a4)
+val PurpleGrey40 = Color(0xFF625b71)
+val Pink40 = Color(0xFF7D5260)
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Theme.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Theme.kt
new file mode 100644
index 00000000..db724b52
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Theme.kt
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.ui.theme
+
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.darkColorScheme
+import androidx.compose.material3.lightColorScheme
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
+
+private val DarkColorScheme = darkColorScheme(
+    primary = Purple80,
+    secondary = PurpleGrey80,
+    tertiary = Pink80,
+    background = Color(0xFF1C1B1F),
+)
+
+private val LightColorScheme = lightColorScheme(
+    primary = Purple40,
+    secondary = PurpleGrey40,
+    tertiary = Pink40,
+    background = Color(0xFFFFFBFE),
+)
+
+@Composable
+fun GenerativeAISample(
+    darkTheme: Boolean = isSystemInDarkTheme(),
+    content: @Composable () -> Unit
+) {
+    val colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme
+    MaterialTheme(
+        colorScheme = colorScheme,
+        typography = Typography,
+        content = content
+    )
+}
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Type.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Type.kt
new file mode 100644
index 00000000..60e75d3f
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/ui/theme/Type.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.ui.theme
+
+import androidx.compose.material3.Typography
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.sp
+
+// Set of Material typography styles to start with
+val Typography = Typography(
+    bodyLarge = TextStyle(
+        fontFamily = FontFamily.Default,
+        fontWeight = FontWeight.Normal,
+        fontSize = 16.sp,
+        lineHeight = 24.sp,
+        letterSpacing = 0.5.sp
+    )
+)
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/util/UriSaver.kt b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/util/UriSaver.kt
new file mode 100644
index 00000000..199cadff
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/kotlin/com/google/ai/sample/util/UriSaver.kt
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.sample.util
+
+import android.net.Uri
+import androidx.compose.runtime.saveable.Saver
+import androidx.compose.runtime.saveable.SaverScope
+
+/**
+ * Saves a list of Uris across configuration changes
+ */
+class UriSaver : Saver<MutableList<Uri>, List<String>> {
+    override fun restore(value: List<String>): MutableList<Uri> = value.map {
+        Uri.parse(it)
+    }.toMutableList()
+
+    override fun SaverScope.save(value: MutableList<Uri>): List<String> = value.map { it.toString() }
+}
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/res/drawable/ic_launcher_background.xml b/generativeai-android-sample/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 00000000..cd259e37
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+    <path
+        android:fillColor="#3DDC84"
+        android:pathData="M0,0h108v108h-108z" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M9,0L9,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,0L19,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M29,0L29,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M39,0L39,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M49,0L49,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M59,0L59,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M69,0L69,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M79,0L79,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M89,0L89,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M99,0L99,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,9L108,9"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,19L108,19"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,29L108,29"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,39L108,39"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,49L108,49"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,59L108,59"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,69L108,69"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,79L108,79"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,89L108,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,99L108,99"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,29L89,29"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,39L89,39"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,49L89,49"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,59L89,59"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,69L89,69"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,79L89,79"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M29,19L29,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M39,19L39,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M49,19L49,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M59,19L59,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M69,19L69,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M79,19L79,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+</vector>
diff --git a/generativeai-android-sample/app/src/main/res/drawable/ic_launcher_foreground.xml b/generativeai-android-sample/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 00000000..3ae9094b
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,44 @@
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+    <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
+        <aapt:attr name="android:fillColor">
+            <gradient
+                android:endX="85.84757"
+                android:endY="92.4963"
+                android:startX="42.9492"
+                android:startY="49.59793"
+                android:type="linear">
+                <item
+                    android:color="#44000000"
+                    android:offset="0.0" />
+                <item
+                    android:color="#00000000"
+                    android:offset="1.0" />
+            </gradient>
+        </aapt:attr>
+    </path>
+    <path
+        android:fillColor="#FFFFFF"
+        android:fillType="nonZero"
+        android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
+        android:strokeWidth="1"
+        android:strokeColor="#00000000" />
+</vector>
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/generativeai-android-sample/app/src/main/res/mipmap-anydpi/ic_launcher.xml
new file mode 100644
index 00000000..ec0bcbff
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/mipmap-anydpi/ic_launcher.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@drawable/ic_launcher_background" />
+    <foreground android:drawable="@drawable/ic_launcher_foreground" />
+    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/generativeai-android-sample/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
new file mode 100644
index 00000000..ec0bcbff
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@drawable/ic_launcher_background" />
+    <foreground android:drawable="@drawable/ic_launcher_foreground" />
+    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/generativeai-android-sample/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3
GIT binary patch
literal 1404
zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r
zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN
zXl<@<#Cm<R)d19?=)E<{+g@mp0C)CAX%7ksNnpX=jPlJEkqD9%o*fC(U7iySOYHHS
zCLH@bXPyI|^Z)Mc^PG7Oc+NfBJO`d7p5;U`M53Wbd!w|M(MUoNRc2m{@^!wFKzL?&
zx_RAc-^9Azxo%DmXW^9GV0~;n_G9&dym)|QrMEx!y_F=oDunn;1y)cvAc6z{0MHiz
zodGIH07w8nF%*bGq9Gv`YHnm80|d1T$uW=u4vGV%tX#>e5f5yr2h%@8TWh?)bSK`O
z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF!
z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!<r*4*+?g*sysFgiN}}d!-T(>jH(_Z*nzTK4
zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG
z?Fe{#<RA5Hg_mG&BZS>9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~
zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd
zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK
zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG<W<SKpuS2eaDGkL-J-
z!+&UV_N0e<DV*|igwqdC*l{lj0T&&`uq=ycU@f9x0i8jzLa(y*X(YV?PCtUw;ks}p
z4zFn7N(-OG^(9ot1ZhYISOWe9?+l%f6v41n+j<OM$_uJgNP?ZJy}hEMMH=;WiG4I`
zs(bIWwSD<LJnAN(E(Xjr4k(^UYF37F_3f{;E%%FEa&I3I0GbdH@{pD5$m+1PN5CW)
zyZ&*9o#8wstdx@^rci;0B4BP2+H4Y<KbJI5L(bXG(k@`Kp=d>8I5h*uf{rn48Z!_@
z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqro<oln8GL@_6LPC)kg1!M)Y!|NCn7b*0sG
zEN=&c2xMM<>a($ne7EUK;#3V<N-jQ7j($tREa0F&-HzYCQtR#fTCZMRN*ZSm;T7a+
zuxa$}zDL8R9wGYkHb$+gJoiM@z+u{u7a_VUBwtd)bPzHxH}C`W=^2PsBr`s7taBMG
zm#Ss=-o`)W8%%x%>YkXaew%Kh^3OrMht<?zOY6P}#rBhn_hrWY$_P`{#CBR9w?+E6
zt7r#NN-tjxFY{9q75P<|L<ZJBHwn4FhG(&i>jYN?XEoY`tRPQsAkH-DSL^QqyN0>^
zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y
z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu
z4)<UE%?IC0Du41FrE~F_qc8nOq>P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6
z>%NbT+5*@L5(I9<vs%8>j@06@(!<!eaZcF<_le1MVaYMg=gRy*f2#IaBH-mJIpy+L
z=Gsbhd6=3>{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W
Kmw_-CKmY()leWbG

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/generativeai-android-sample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9
GIT binary patch
literal 2898
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

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/generativeai-android-sample/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca
GIT binary patch
literal 982
zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^
z^1csucXz7-Qrhzl9HuH<!ckn_w-(t15itRHmqN0O$B3XH(E|jyV^QXq8=yM`Q**vy
zpEpgQd+no=J<Tlv&+_>B%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N
zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}<p
z;bEy|mw1;}P&gp|0ssKe4*;D3Dlh;r06r}ehC-pC4mGy`3;|+W04+#B4r_x~@mHHy
z)H}bD|I2-n_L$pW;*I)~?=#N<)`92&<$3IR`#<SH6@I&FRQa6xBmQ5wPwJ2PAI(ne
z$L2Yb@JHxb`+bLk*AjR$^`b?pr|?!6=+AboIQ2D-p)UI7x(J0|5(5~ur$_+)`>C%4
zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{
ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT
zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh
zOBLA>$~P3r4b*NcqR;y6pwyhZ<hjKiZs6mOSFB&+cIl`GV$93-<ciUjF#*1^<p~gh
ziQ_{)r0dA7$It&Fe=obxu8n!+elxmgqxPbUL!FxW0;AOfqz@8JOz9Qbm)m-9!^7D)
z480@BoIIb<oT``+rVla8L)8fXO&6}3P9n4v$`6WG<DUNWuKb9J9rUsAn7d-_YWT^U
z{NXl@OAPIJ!>3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu
z(U^&XLW^Q<WhKYr9rXr6*~Tmpuq6NjnD6;;NNBGIg-1ZvfACQ4{ocrwM0)?`oL2ts
zCXY5KT@`(ir63J0?%+_(-dDgf<6R$u{lCdy6Zi5d+Bf;1OXyD;xe3#Gug*&T|0o41
zD8;$|JvUv&@vsLIH&C5+S{!k&{~Z54^y@9r>X7F9Z*SRPpQl{B%x)_AMp^}_v~?j7
zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0
z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@
E0Of=7!T<mO

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/generativeai-android-sample/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000000000000000000000000000000000000..62b611da081676d42f6c3f78a2c91e7bcedddedb
GIT binary patch
literal 1772
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
O>FJ$wK}0tWNB{uH;AM~i

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/generativeai-android-sample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0
GIT binary patch
literal 1900
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

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/generativeai-android-sample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f
GIT binary patch
literal 3918
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

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/generativeai-android-sample/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000000000000000000000000000000000000..28d4b77f9f036a47549d47db79c16788749dca10
GIT binary patch
literal 2884
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

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/generativeai-android-sample/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000000000000000000000000000000000000..9287f5083623b375139afb391af71cc533a7dd37
GIT binary patch
literal 5914
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

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/generativeai-android-sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000000000000000000000000000000000000..aa7d6427e6fa1074b79ccd52ef67ac15c5637e85
GIT binary patch
literal 3844
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
G0001O&w8c+

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/generativeai-android-sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000000000000000000000000000000000000..9126ae37cbc3587421d6889eadd1d91fbf1994d4
GIT binary patch
literal 7778
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

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/app/src/main/res/values/colors.xml b/generativeai-android-sample/app/src/main/res/values/colors.xml
new file mode 100644
index 00000000..ef8476ee
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/values/colors.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <color name="purple_200">#FFBB86FC</color>
+    <color name="purple_500">#FF6200EE</color>
+    <color name="purple_700">#FF3700B3</color>
+    <color name="teal_200">#FF03DAC5</color>
+    <color name="teal_700">#FF018786</color>
+    <color name="black">#FF000000</color>
+    <color name="white">#FFFFFFFF</color>
+</resources>
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/res/values/strings.xml b/generativeai-android-sample/app/src/main/res/values/strings.xml
new file mode 100644
index 00000000..94841531
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/values/strings.xml
@@ -0,0 +1,40 @@
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <string name="app_name">Generative AI Sample App</string>
+    <string name="action_go">Go</string>
+    <string name="action_try">Try it</string>
+
+    <!-- Menu strings -->
+    <string name="menu_summarize_title">Generate text from text-only input</string>
+    <string name="menu_summarize_description">Sample app that summarizes text</string>
+    <string name="menu_reason_title">Generate text from text-and-image input (multimodal)</string>
+    <string name="menu_reason_description">Sample app for uploading images and asking about them</string>
+    <string name="menu_chat_title">Build multi-turn conversations (chat)</string>
+    <string name="menu_chat_description">Sample app demonstrating a conversational UI</string>
+
+    <!-- Summarize sample strings -->
+    <string name="summarize_label">Text</string>
+    <string name="summarize_hint">Enter text or a URL to summarize</string>
+
+    <!-- Photo Reasoning sample strings -->
+    <string name="reason_label">Question</string>
+    <string name="reason_hint">Upload an image and then ask a question</string>
+    <string name="add_image">Add Image</string>
+
+    <!-- Chat sample strings -->
+    <string name="chat_label">Message</string>
+    <string name="action_send">Send</string>
+</resources>
diff --git a/generativeai-android-sample/app/src/main/res/values/themes.xml b/generativeai-android-sample/app/src/main/res/values/themes.xml
new file mode 100644
index 00000000..d423efff
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/values/themes.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+
+    <style name="Theme.Emptything" parent="android:Theme.Material.Light.NoActionBar" />
+</resources>
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/res/xml/backup_rules.xml b/generativeai-android-sample/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 00000000..8aa9e4e9
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<!--
+   Sample backup rules file; uncomment and customize as necessary.
+   See https://developer.android.com/guide/topics/data/autobackup
+   for details.
+   Note: This file is ignored for devices older that API 31
+   See https://developer.android.com/about/versions/12/backup-restore
+-->
+<full-backup-content>
+    <!--
+   <include domain="sharedpref" path="."/>
+   <exclude domain="sharedpref" path="device.xml"/>
+-->
+</full-backup-content>
\ No newline at end of file
diff --git a/generativeai-android-sample/app/src/main/res/xml/data_extraction_rules.xml b/generativeai-android-sample/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 00000000..3723fc1c
--- /dev/null
+++ b/generativeai-android-sample/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<!--
+   Sample data extraction rules file; uncomment and customize as necessary.
+   See https://developer.android.com/about/versions/12/backup-restore#xml-changes
+   for details.
+-->
+<data-extraction-rules>
+    <cloud-backup>
+        <!-- TODO: Use <include> and <exclude> to control what is backed up.
+        <include .../>
+        <exclude .../>
+        -->
+    </cloud-backup>
+    <!--
+    <device-transfer>
+        <include .../>
+        <exclude .../>
+    </device-transfer>
+    -->
+</data-extraction-rules>
\ No newline at end of file
diff --git a/generativeai-android-sample/build.gradle.kts b/generativeai-android-sample/build.gradle.kts
new file mode 100644
index 00000000..2db663ed
--- /dev/null
+++ b/generativeai-android-sample/build.gradle.kts
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+buildscript {
+    dependencies {
+    }
+}
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+    id("com.android.application") version "8.1.0" apply false
+    id("org.jetbrains.kotlin.android") version "1.9.20" apply false
+    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
+}
diff --git a/generativeai-android-sample/gradle.properties b/generativeai-android-sample/gradle.properties
new file mode 100644
index 00000000..d6469edf
--- /dev/null
+++ b/generativeai-android-sample/gradle.properties
@@ -0,0 +1,15 @@
+## For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+#
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx1024m -XX:MaxPermSize=256m
+ org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+#
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+#Tue Nov 07 15:47:18 PST 2023
+android.defaults.buildfeatures.buildconfig=true
+android.useAndroidX=true
diff --git a/generativeai-android-sample/gradle/wrapper/gradle-wrapper.jar b/generativeai-android-sample/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196
GIT binary patch
literal 60756
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
LmiCMtn7{r93&V3<

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/gradle/wrapper/gradle-wrapper.properties b/generativeai-android-sample/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..e1bef7e8
--- /dev/null
+++ b/generativeai-android-sample/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/generativeai-android-sample/gradlew b/generativeai-android-sample/gradlew
new file mode 100755
index 00000000..a69d9cb6
--- /dev/null
+++ b/generativeai-android-sample/gradlew
@@ -0,0 +1,240 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+#   Gradle start up script for POSIX generated by Gradle.
+#
+#   Important for running:
+#
+#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+#       noncompliant, but you have some other compliant shell such as ksh or
+#       bash, then to run this script, type that shell name before the whole
+#       command line, like:
+#
+#           ksh Gradle
+#
+#       Busybox and similar reduced shells will NOT work, because this script
+#       requires all of these POSIX shell features:
+#         * functions;
+#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+#         * compound commands having a testable exit status, especially «case»;
+#         * various built-in commands including «command», «set», and «ulimit».
+#
+#   Important for patching:
+#
+#   (2) This script targets any POSIX shell, so it avoids extensions provided
+#       by Bash, Ksh, etc; in particular arrays are avoided.
+#
+#       The "traditional" practice of packing multiple parameters into a
+#       space-separated string is a well documented source of bugs and security
+#       problems, so this is (mostly) avoided, by progressively accumulating
+#       options in "$@", and eventually passing that to Java.
+#
+#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+#       see the in-line comments for details.
+#
+#       There are tweaks for specific operating systems such as AIX, CygWin,
+#       Darwin, MinGW, and NonStop.
+#
+#   (3) This script is generated from the Groovy template
+#       https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+#       within the Gradle project.
+#
+#       You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+    APP_HOME=${app_path%"${app_path##*/}"}  # leaves a trailing /; empty if no leading path
+    [ -h "$app_path" ]
+do
+    ls=$( ls -ld "$app_path" )
+    link=${ls#*' -> '}
+    case $link in             #(
+      /*)   app_path=$link ;; #(
+      *)    app_path=$APP_HOME$link ;;
+    esac
+done
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+    echo "$*"
+} >&2
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in                #(
+  CYGWIN* )         cygwin=true  ;; #(
+  Darwin* )         darwin=true  ;; #(
+  MSYS* | MINGW* )  msys=true    ;; #(
+  NONSTOP* )        nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD=$JAVA_HOME/jre/sh/java
+    else
+        JAVACMD=$JAVA_HOME/bin/java
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD=java
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+    case $MAX_FD in #(
+      max*)
+        MAX_FD=$( ulimit -H -n ) ||
+            warn "Could not query maximum file descriptor limit"
+    esac
+    case $MAX_FD in  #(
+      '' | soft) :;; #(
+      *)
+        ulimit -n "$MAX_FD" ||
+            warn "Could not set maximum file descriptor limit to $MAX_FD"
+    esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+#   * args from the command line
+#   * the main class name
+#   * -classpath
+#   * -D...appname settings
+#   * --module-path (only if needed)
+#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+    APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+    CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+    JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    for arg do
+        if
+            case $arg in                                #(
+              -*)   false ;;                            # don't mess with options #(
+              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath
+                    [ -e "$t" ] ;;                      #(
+              *)    false ;;
+            esac
+        then
+            arg=$( cygpath --path --ignore --mixed "$arg" )
+        fi
+        # Roll the args list around exactly as many times as the number of
+        # args, so each arg winds up back in the position where it started, but
+        # possibly modified.
+        #
+        # NB: a `for` loop captures its iteration list before it begins, so
+        # changing the positional parameters here affects neither the number of
+        # iterations, nor the values presented in `arg`.
+        shift                   # remove old arg
+        set -- "$@" "$arg"      # push replacement arg
+    done
+fi
+
+# Collect all arguments for the java command;
+#   * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+#     shell script including quotes and variable substitutions, so put them in
+#     double quotes to make sure that they get re-expanded; and
+#   * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+        "-Dorg.gradle.appname=$APP_BASE_NAME" \
+        -classpath "$CLASSPATH" \
+        org.gradle.wrapper.GradleWrapperMain \
+        "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+    die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+#   readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+#   set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+        printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+        xargs -n1 |
+        sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+        tr '\n' ' '
+    )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/generativeai-android-sample/gradlew.bat b/generativeai-android-sample/gradlew.bat
new file mode 100644
index 00000000..53a6b238
--- /dev/null
+++ b/generativeai-android-sample/gradlew.bat
@@ -0,0 +1,91 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem      https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/generativeai-android-sample/screenshots/screenshots.png b/generativeai-android-sample/screenshots/screenshots.png
new file mode 100644
index 0000000000000000000000000000000000000000..156a1eef639aa7b0393ef895e3415166731f6a1b
GIT binary patch
literal 359162
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%0Auh8Xyck!jlp+(<;cm>HaQ
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
Du{uaK

literal 0
HcmV?d00001

diff --git a/generativeai-android-sample/settings.gradle.kts b/generativeai-android-sample/settings.gradle.kts
new file mode 100644
index 00000000..a290317f
--- /dev/null
+++ b/generativeai-android-sample/settings.gradle.kts
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+pluginManagement {
+    repositories {
+        mavenLocal()
+        google()
+        mavenCentral()
+        gradlePluginPortal()
+    }
+}
+dependencyResolutionManagement {
+    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+    repositories {
+        mavenLocal()
+        google()
+        mavenCentral()
+    }
+}
+
+rootProject.name = "GenerativeAiSampleApp"
+include(":app")
diff --git a/generativeai/.gitignore b/generativeai/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/generativeai/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/generativeai/build.gradle.kts b/generativeai/build.gradle.kts
new file mode 100644
index 00000000..6cee2c0f
--- /dev/null
+++ b/generativeai/build.gradle.kts
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+plugins {
+    id("com.android.library")
+    id("maven-publish")
+    id("org.jetbrains.dokka")
+    id("com.ncorti.ktfmt.gradle")
+    id("changelog-plugin")
+    kotlin("android")
+    kotlin("plugin.serialization")
+}
+
+ktfmt {
+    googleStyle()
+}
+
+android {
+    namespace = "com.google.ai.client.generativeai"
+    compileSdk = 34
+
+    defaultConfig {
+        minSdk = 21
+
+        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+        consumerProguardFiles("consumer-rules.pro")
+    }
+
+    publishing {
+        singleVariant("release") {
+            withSourcesJar()
+        }
+    }
+
+    buildTypes {
+        release {
+            isMinifyEnabled = false
+            proguardFiles(
+                getDefaultProguardFile("proguard-android-optimize.txt"),
+                "proguard-rules.pro"
+            )
+        }
+    }
+    compileOptions {
+        sourceCompatibility = JavaVersion.VERSION_17
+        targetCompatibility = JavaVersion.VERSION_17
+    }
+    kotlinOptions {
+        jvmTarget = "17"
+    }
+
+    testOptions {
+        unitTests.isReturnDefaultValues = true
+    }
+}
+
+dependencies {
+    implementation("io.ktor:ktor-client-okhttp:2.3.5")
+    implementation("io.ktor:ktor-client-core:2.3.5")
+    implementation("io.ktor:ktor-client-content-negotiation:2.3.5")
+    implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.5")
+    implementation("io.ktor:ktor-client-logging:2.3.5")
+
+    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
+    implementation("androidx.core:core-ktx:1.12.0")
+    implementation("org.slf4j:slf4j-android:1.7.36")
+    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
+    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.7.3")
+    implementation("org.reactivestreams:reactive-streams:1.0.3")
+
+    implementation("com.google.guava:listenablefuture:1.0")
+    implementation("androidx.concurrent:concurrent-futures:1.2.0-alpha02")
+    implementation("androidx.concurrent:concurrent-futures-ktx:1.2.0-alpha02")
+
+    testImplementation("junit:junit:4.13.2")
+    testImplementation("io.kotest:kotest-assertions-core:4.0.7")
+    testImplementation("io.kotest:kotest-assertions-jvm:4.0.7")
+    testImplementation("io.ktor:ktor-client-mock:2.3.5")
+    androidTestImplementation("androidx.test.ext:junit:1.1.5")
+    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
+
+    dokkaPlugin("org.jetbrains.dokka:android-documentation-plugin:1.9.10")
+}
+
+publishing {
+    publications {
+        register<MavenPublication>("release") {
+            groupId = "com.google.ai.client.generativeai"
+            artifactId = "generativeai"
+            version = project.version.toString()
+
+            afterEvaluate {
+                from(components["release"])
+            }
+        }
+    }
+    repositories {
+        maven {
+            url = uri("${projectDir}/m2")
+        }
+    }
+}
diff --git a/generativeai/consumer-rules.pro b/generativeai/consumer-rules.pro
new file mode 100644
index 00000000..e69de29b
diff --git a/generativeai/gradle.properties b/generativeai/gradle.properties
new file mode 100644
index 00000000..de55ab65
--- /dev/null
+++ b/generativeai/gradle.properties
@@ -0,0 +1 @@
+version=0.1.0
diff --git a/generativeai/proguard-rules.pro b/generativeai/proguard-rules.pro
new file mode 100644
index 00000000..481bb434
--- /dev/null
+++ b/generativeai/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/generativeai/public.api b/generativeai/public.api
new file mode 100644
index 00000000..384f51c0
--- /dev/null
+++ b/generativeai/public.api
@@ -0,0 +1,285 @@
+public final class com/google/ai/client/generativeai/Chat {
+	public fun <init> (Lcom/google/ai/client/generativeai/GenerativeModel;Ljava/util/List;)V
+	public synthetic fun <init> (Lcom/google/ai/client/generativeai/GenerativeModel;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getHistory ()Ljava/util/List;
+	public final fun sendMessage (Landroid/graphics/Bitmap;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun sendMessage (Lcom/google/ai/client/generativeai/type/Content;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun sendMessage (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun sendMessageStream (Landroid/graphics/Bitmap;)Lkotlinx/coroutines/flow/Flow;
+	public final fun sendMessageStream (Lcom/google/ai/client/generativeai/type/Content;)Lkotlinx/coroutines/flow/Flow;
+	public final fun sendMessageStream (Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;
+}
+
+public final class com/google/ai/client/generativeai/GenerativeModel {
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;Lcom/google/ai/client/generativeai/type/GenerationConfig;)V
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;Lcom/google/ai/client/generativeai/type/GenerationConfig;Ljava/util/List;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Lcom/google/ai/client/generativeai/type/GenerationConfig;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun countTokens (Landroid/graphics/Bitmap;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun countTokens (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun countTokens ([Lcom/google/ai/client/generativeai/type/Content;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun generateContent (Landroid/graphics/Bitmap;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun generateContent (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun generateContent ([Lcom/google/ai/client/generativeai/type/Content;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+	public final fun generateContentStream (Landroid/graphics/Bitmap;)Lkotlinx/coroutines/flow/Flow;
+	public final fun generateContentStream (Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;
+	public final fun generateContentStream ([Lcom/google/ai/client/generativeai/type/Content;)Lkotlinx/coroutines/flow/Flow;
+	public final fun getApiKey ()Ljava/lang/String;
+	public final fun getGenerationConfig ()Lcom/google/ai/client/generativeai/type/GenerationConfig;
+	public final fun getModelName ()Ljava/lang/String;
+	public final fun getSafetySettings ()Ljava/util/List;
+	public final fun startChat (Ljava/util/List;)Lcom/google/ai/client/generativeai/Chat;
+	public static synthetic fun startChat$default (Lcom/google/ai/client/generativeai/GenerativeModel;Ljava/util/List;ILjava/lang/Object;)Lcom/google/ai/client/generativeai/Chat;
+}
+
+public abstract class com/google/ai/client/generativeai/java/ChatFutures {
+	public static final field Companion Lcom/google/ai/client/generativeai/java/ChatFutures$Companion;
+	public static final fun from (Lcom/google/ai/client/generativeai/Chat;)Lcom/google/ai/client/generativeai/java/ChatFutures;
+	public abstract fun sendMessage (Lcom/google/ai/client/generativeai/type/Content;)Lcom/google/common/util/concurrent/ListenableFuture;
+	public abstract fun sendMessageStream (Lcom/google/ai/client/generativeai/type/Content;)Lorg/reactivestreams/Publisher;
+}
+
+public final class com/google/ai/client/generativeai/java/ChatFutures$Companion {
+	public final fun from (Lcom/google/ai/client/generativeai/Chat;)Lcom/google/ai/client/generativeai/java/ChatFutures;
+}
+
+public abstract class com/google/ai/client/generativeai/java/GenerativeModelFutures {
+	public static final field Companion Lcom/google/ai/client/generativeai/java/GenerativeModelFutures$Companion;
+	public abstract fun countTokens ([Lcom/google/ai/client/generativeai/type/Content;)Lcom/google/common/util/concurrent/ListenableFuture;
+	public static final fun from (Lcom/google/ai/client/generativeai/GenerativeModel;)Lcom/google/ai/client/generativeai/java/GenerativeModelFutures;
+	public abstract fun generateContent ([Lcom/google/ai/client/generativeai/type/Content;)Lcom/google/common/util/concurrent/ListenableFuture;
+	public abstract fun generateContentStream ([Lcom/google/ai/client/generativeai/type/Content;)Lorg/reactivestreams/Publisher;
+	public abstract fun startChat ()Lcom/google/ai/client/generativeai/java/ChatFutures;
+	public abstract fun startChat (Ljava/util/List;)Lcom/google/ai/client/generativeai/java/ChatFutures;
+}
+
+public final class com/google/ai/client/generativeai/java/GenerativeModelFutures$Companion {
+	public final fun from (Lcom/google/ai/client/generativeai/GenerativeModel;)Lcom/google/ai/client/generativeai/java/GenerativeModelFutures;
+}
+
+public final class com/google/ai/client/generativeai/type/BlobPart : com/google/ai/client/generativeai/type/Part {
+	public fun <init> (Ljava/lang/String;[B)V
+	public final fun getBlob ()[B
+	public final fun getMimeType ()Ljava/lang/String;
+}
+
+public final class com/google/ai/client/generativeai/type/BlockReason : java/lang/Enum {
+	public static final field OTHER Lcom/google/ai/client/generativeai/type/BlockReason;
+	public static final field SAFETY Lcom/google/ai/client/generativeai/type/BlockReason;
+	public static final field UNKNOWN Lcom/google/ai/client/generativeai/type/BlockReason;
+	public static final field UNSPECIFIED Lcom/google/ai/client/generativeai/type/BlockReason;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lcom/google/ai/client/generativeai/type/BlockReason;
+	public static fun values ()[Lcom/google/ai/client/generativeai/type/BlockReason;
+}
+
+public final class com/google/ai/client/generativeai/type/BlockThreshold : java/lang/Enum {
+	public static final field LOW_AND_ABOVE Lcom/google/ai/client/generativeai/type/BlockThreshold;
+	public static final field MEDIUM_AND_ABOVE Lcom/google/ai/client/generativeai/type/BlockThreshold;
+	public static final field NONE Lcom/google/ai/client/generativeai/type/BlockThreshold;
+	public static final field ONLY_HIGH Lcom/google/ai/client/generativeai/type/BlockThreshold;
+	public static final field UNSPECIFIED Lcom/google/ai/client/generativeai/type/BlockThreshold;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lcom/google/ai/client/generativeai/type/BlockThreshold;
+	public static fun values ()[Lcom/google/ai/client/generativeai/type/BlockThreshold;
+}
+
+public final class com/google/ai/client/generativeai/type/Candidate {
+	public final fun getCitationMetadata ()Ljava/util/List;
+	public final fun getContent ()Lcom/google/ai/client/generativeai/type/Content;
+	public final fun getFinishReason ()Lcom/google/ai/client/generativeai/type/FinishReason;
+	public final fun getSafetyRatings ()Ljava/util/List;
+}
+
+public final class com/google/ai/client/generativeai/type/CitationMetadata {
+	public fun <init> (IILjava/lang/String;Ljava/lang/String;)V
+	public final fun getEndIndex ()I
+	public final fun getLicense ()Ljava/lang/String;
+	public final fun getStartIndex ()I
+	public final fun getUri ()Ljava/lang/String;
+}
+
+public final class com/google/ai/client/generativeai/type/Content {
+	public fun <init> (Ljava/lang/String;Ljava/util/List;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public fun <init> (Ljava/util/List;)V
+	public final fun getParts ()Ljava/util/List;
+	public final fun getRole ()Ljava/lang/String;
+}
+
+public final class com/google/ai/client/generativeai/type/Content$Builder {
+	public fun <init> ()V
+	public final fun addBlob (Ljava/lang/String;[B)Lcom/google/ai/client/generativeai/type/Content$Builder;
+	public final fun addImage (Landroid/graphics/Bitmap;)Lcom/google/ai/client/generativeai/type/Content$Builder;
+	public final fun addPart (Lcom/google/ai/client/generativeai/type/Part;)Lcom/google/ai/client/generativeai/type/Content$Builder;
+	public final fun addText (Ljava/lang/String;)Lcom/google/ai/client/generativeai/type/Content$Builder;
+	public final fun build ()Lcom/google/ai/client/generativeai/type/Content;
+	public final fun getParts ()Ljava/util/List;
+	public final fun getRole ()Ljava/lang/String;
+	public final fun setParts (Ljava/util/List;)V
+	public final fun setRole (Ljava/lang/String;)V
+}
+
+public final class com/google/ai/client/generativeai/type/ContentKt {
+	public static final fun content (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lcom/google/ai/client/generativeai/type/Content;
+	public static synthetic fun content$default (Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/google/ai/client/generativeai/type/Content;
+}
+
+public final class com/google/ai/client/generativeai/type/CountTokensResponse {
+	public fun <init> (I)V
+	public final fun component1 ()I
+	public final fun getTotalTokens ()I
+}
+
+public final class com/google/ai/client/generativeai/type/FinishReason : java/lang/Enum {
+	public static final field MAX_TOKENS Lcom/google/ai/client/generativeai/type/FinishReason;
+	public static final field OTHER Lcom/google/ai/client/generativeai/type/FinishReason;
+	public static final field RECITATION Lcom/google/ai/client/generativeai/type/FinishReason;
+	public static final field SAFETY Lcom/google/ai/client/generativeai/type/FinishReason;
+	public static final field STOP Lcom/google/ai/client/generativeai/type/FinishReason;
+	public static final field UNKNOWN Lcom/google/ai/client/generativeai/type/FinishReason;
+	public static final field UNSPECIFIED Lcom/google/ai/client/generativeai/type/FinishReason;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lcom/google/ai/client/generativeai/type/FinishReason;
+	public static fun values ()[Lcom/google/ai/client/generativeai/type/FinishReason;
+}
+
+public final class com/google/ai/client/generativeai/type/GenerateContentResponse {
+	public fun <init> (Ljava/util/List;Lcom/google/ai/client/generativeai/type/PromptFeedback;)V
+	public final fun getCandidates ()Ljava/util/List;
+	public final fun getPromptFeedback ()Lcom/google/ai/client/generativeai/type/PromptFeedback;
+	public final fun getText ()Ljava/lang/String;
+}
+
+public final class com/google/ai/client/generativeai/type/GenerationConfig {
+	public static final field Companion Lcom/google/ai/client/generativeai/type/GenerationConfig$Companion;
+	public synthetic fun <init> (Ljava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getCandidateCount ()Ljava/lang/Integer;
+	public final fun getMaxOutputTokens ()Ljava/lang/Integer;
+	public final fun getStopSequences ()Ljava/util/List;
+	public final fun getTemperature ()Ljava/lang/Float;
+	public final fun getTopK ()Ljava/lang/Integer;
+	public final fun getTopP ()Ljava/lang/Float;
+}
+
+public final class com/google/ai/client/generativeai/type/GenerationConfig$Builder {
+	public field candidateCount Ljava/lang/Integer;
+	public field maxOutputTokens Ljava/lang/Integer;
+	public field stopSequences Ljava/util/List;
+	public field temperature Ljava/lang/Float;
+	public field topK Ljava/lang/Integer;
+	public field topP Ljava/lang/Float;
+	public fun <init> ()V
+	public final fun build ()Lcom/google/ai/client/generativeai/type/GenerationConfig;
+}
+
+public final class com/google/ai/client/generativeai/type/GenerationConfig$Companion {
+	public final fun builder ()Lcom/google/ai/client/generativeai/type/GenerationConfig$Builder;
+}
+
+public final class com/google/ai/client/generativeai/type/GenerationConfigKt {
+	public static final fun generationConfig (Lkotlin/jvm/functions/Function1;)Lcom/google/ai/client/generativeai/type/GenerationConfig;
+}
+
+public abstract class com/google/ai/client/generativeai/type/GoogleGenerativeAIException : java/lang/RuntimeException {
+	public static final field Companion Lcom/google/ai/client/generativeai/type/GoogleGenerativeAIException$Companion;
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Throwable;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class com/google/ai/client/generativeai/type/GoogleGenerativeAIException$Companion {
+	public final fun from (Ljava/lang/Throwable;)Lcom/google/ai/client/generativeai/type/GoogleGenerativeAIException;
+}
+
+public final class com/google/ai/client/generativeai/type/HarmCategory : java/lang/Enum {
+	public static final field DANGEROUS_CONTENT Lcom/google/ai/client/generativeai/type/HarmCategory;
+	public static final field HARASSMENT Lcom/google/ai/client/generativeai/type/HarmCategory;
+	public static final field HATE_SPEECH Lcom/google/ai/client/generativeai/type/HarmCategory;
+	public static final field SEXUALLY_EXPLICIT Lcom/google/ai/client/generativeai/type/HarmCategory;
+	public static final field UNKNOWN Lcom/google/ai/client/generativeai/type/HarmCategory;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lcom/google/ai/client/generativeai/type/HarmCategory;
+	public static fun values ()[Lcom/google/ai/client/generativeai/type/HarmCategory;
+}
+
+public final class com/google/ai/client/generativeai/type/HarmProbability : java/lang/Enum {
+	public static final field HIGH Lcom/google/ai/client/generativeai/type/HarmProbability;
+	public static final field LOW Lcom/google/ai/client/generativeai/type/HarmProbability;
+	public static final field MEDIUM Lcom/google/ai/client/generativeai/type/HarmProbability;
+	public static final field NEGLIGIBLE Lcom/google/ai/client/generativeai/type/HarmProbability;
+	public static final field UNKNOWN Lcom/google/ai/client/generativeai/type/HarmProbability;
+	public static final field UNSPECIFIED Lcom/google/ai/client/generativeai/type/HarmProbability;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public static fun valueOf (Ljava/lang/String;)Lcom/google/ai/client/generativeai/type/HarmProbability;
+	public static fun values ()[Lcom/google/ai/client/generativeai/type/HarmProbability;
+}
+
+public final class com/google/ai/client/generativeai/type/ImagePart : com/google/ai/client/generativeai/type/Part {
+	public fun <init> (Landroid/graphics/Bitmap;)V
+	public final fun getImage ()Landroid/graphics/Bitmap;
+}
+
+public final class com/google/ai/client/generativeai/type/InvalidStateException : com/google/ai/client/generativeai/type/GoogleGenerativeAIException {
+	public fun <init> (Ljava/lang/String;Ljava/lang/Throwable;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public abstract interface class com/google/ai/client/generativeai/type/Part {
+}
+
+public final class com/google/ai/client/generativeai/type/PartKt {
+	public static final fun asBlobPartOrNull (Lcom/google/ai/client/generativeai/type/Part;)Lcom/google/ai/client/generativeai/type/BlobPart;
+	public static final fun asImageOrNull (Lcom/google/ai/client/generativeai/type/Part;)Landroid/graphics/Bitmap;
+	public static final fun asTextOrNull (Lcom/google/ai/client/generativeai/type/Part;)Ljava/lang/String;
+}
+
+public final class com/google/ai/client/generativeai/type/PromptBlockedException : com/google/ai/client/generativeai/type/GoogleGenerativeAIException {
+	public fun <init> (Lcom/google/ai/client/generativeai/type/GenerateContentResponse;Ljava/lang/Throwable;)V
+	public synthetic fun <init> (Lcom/google/ai/client/generativeai/type/GenerateContentResponse;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getResponse ()Lcom/google/ai/client/generativeai/type/GenerateContentResponse;
+}
+
+public final class com/google/ai/client/generativeai/type/PromptFeedback {
+	public fun <init> (Lcom/google/ai/client/generativeai/type/BlockReason;Ljava/util/List;)V
+	public final fun getBlockReason ()Lcom/google/ai/client/generativeai/type/BlockReason;
+	public final fun getSafetyRatings ()Ljava/util/List;
+}
+
+public final class com/google/ai/client/generativeai/type/ResponseStoppedException : com/google/ai/client/generativeai/type/GoogleGenerativeAIException {
+	public fun <init> (Lcom/google/ai/client/generativeai/type/GenerateContentResponse;Ljava/lang/Throwable;)V
+	public synthetic fun <init> (Lcom/google/ai/client/generativeai/type/GenerateContentResponse;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getResponse ()Lcom/google/ai/client/generativeai/type/GenerateContentResponse;
+}
+
+public final class com/google/ai/client/generativeai/type/SafetyRating {
+	public fun <init> (Lcom/google/ai/client/generativeai/type/HarmCategory;Lcom/google/ai/client/generativeai/type/HarmProbability;)V
+	public final fun getCategory ()Lcom/google/ai/client/generativeai/type/HarmCategory;
+	public final fun getProbability ()Lcom/google/ai/client/generativeai/type/HarmProbability;
+}
+
+public final class com/google/ai/client/generativeai/type/SafetySetting {
+	public fun <init> (Lcom/google/ai/client/generativeai/type/HarmCategory;Lcom/google/ai/client/generativeai/type/BlockThreshold;)V
+	public final fun getHarmCategory ()Lcom/google/ai/client/generativeai/type/HarmCategory;
+	public final fun getThreshold ()Lcom/google/ai/client/generativeai/type/BlockThreshold;
+}
+
+public final class com/google/ai/client/generativeai/type/SerializationException : com/google/ai/client/generativeai/type/GoogleGenerativeAIException {
+	public fun <init> (Ljava/lang/String;Ljava/lang/Throwable;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class com/google/ai/client/generativeai/type/ServerException : com/google/ai/client/generativeai/type/GoogleGenerativeAIException {
+	public fun <init> (Ljava/lang/String;Ljava/lang/Throwable;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
+public final class com/google/ai/client/generativeai/type/TextPart : com/google/ai/client/generativeai/type/Part {
+	public fun <init> (Ljava/lang/String;)V
+	public final fun getText ()Ljava/lang/String;
+}
+
+public final class com/google/ai/client/generativeai/type/UnknownException : com/google/ai/client/generativeai/type/GoogleGenerativeAIException {
+	public fun <init> (Ljava/lang/String;Ljava/lang/Throwable;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
diff --git a/generativeai/src/androidTest/java/com/google/ai/client/generativeai/ExampleInstrumentedTest.kt b/generativeai/src/androidTest/java/com/google/ai/client/generativeai/ExampleInstrumentedTest.kt
new file mode 100644
index 00000000..5cfbd5c3
--- /dev/null
+++ b/generativeai/src/androidTest/java/com/google/ai/client/generativeai/ExampleInstrumentedTest.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import org.junit.Assert.*
+import org.junit.Test
+import org.junit.runner.RunWith
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+  @Test
+  fun useAppContext() {
+    // Context of the app under test.
+    val appContext = InstrumentationRegistry.getInstrumentation().targetContext
+    assertEquals("com.google.ai.client.generativeai.test", appContext.packageName)
+  }
+}
diff --git a/generativeai/src/main/AndroidManifest.xml b/generativeai/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..e2612fd6
--- /dev/null
+++ b/generativeai/src/main/AndroidManifest.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2023 Google LLC
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>
\ No newline at end of file
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/Chat.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/Chat.kt
new file mode 100644
index 00000000..dbb76aa0
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/Chat.kt
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai
+
+import android.graphics.Bitmap
+import com.google.ai.client.generativeai.type.BlobPart
+import com.google.ai.client.generativeai.type.Content
+import com.google.ai.client.generativeai.type.GenerateContentResponse
+import com.google.ai.client.generativeai.type.ImagePart
+import com.google.ai.client.generativeai.type.InvalidStateException
+import com.google.ai.client.generativeai.type.TextPart
+import com.google.ai.client.generativeai.type.content
+import java.util.LinkedList
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.onCompletion
+import kotlinx.coroutines.flow.onEach
+
+/**
+ * Representation of a back and forth interaction with a model.
+ *
+ * Handles the capturing and storage of the communication with the model, providing methods for
+ * further interaction.
+ *
+ * @param model the model to use for the interaction
+ * @property history the previous interactions with the model
+ */
+class Chat(private val model: GenerativeModel, val history: MutableList<Content> = ArrayList()) {
+
+  /**
+   * Generates a response from the backend with the provided [Content], and any previous ones
+   * sent/returned from this chat.
+   *
+   * @param prompt A [Content] to send to the model.
+   * @throws InvalidStateException if the prompt is not coming from the 'user' role
+   */
+  suspend fun sendMessage(prompt: Content): GenerateContentResponse {
+    prompt.assertComesFromUser()
+
+    val response = model.generateContent(*history.toTypedArray(), prompt)
+
+    history.add(prompt)
+    history.add(response.candidates.first().content)
+
+    return response
+  }
+
+  /**
+   * Generates a response from the backend with the provided text represented [Content].
+   *
+   * @param prompt The text to be converted into a single piece of [Content] to send to the model.
+   */
+  suspend fun sendMessage(prompt: String): GenerateContentResponse {
+    val content = content("user") { text(prompt) }
+    return sendMessage(content)
+  }
+
+  /**
+   * Generates a response from the backend with the provided image represented [Content].
+   *
+   * @param prompt The image to be converted into a single piece of [Content] to send to the model.
+   */
+  suspend fun sendMessage(prompt: Bitmap): GenerateContentResponse {
+    val content = content("user") { image(prompt) }
+    return sendMessage(content)
+  }
+
+  /**
+   * Generates a streaming response from the backend with the provided [Content]s.
+   *
+   * @param prompt A [Content] to send to the model.
+   * @return A [Flow] which will emit responses as they are returned from the model.
+   * @throws InvalidStateException if the prompt is not coming from the 'user' role
+   */
+  fun sendMessageStream(prompt: Content): Flow<GenerateContentResponse> {
+    prompt.assertComesFromUser()
+
+    val flow = model.generateContentStream(*history.toTypedArray(), prompt)
+    val bitmaps = LinkedList<Bitmap>()
+    val blobs = LinkedList<BlobPart>()
+    val text = StringBuilder()
+
+    /**
+     * TODO: revisit when images and blobs are returned. This will cause issues with how things are
+     *   structured in the response. eg; a text/image/text response will be (incorrectly)
+     *   represented as image/text
+     */
+    return flow
+      .onEach {
+        for (part in it.candidates.first().content.parts) {
+          when (part) {
+            is TextPart -> text.append(part.text)
+            is ImagePart -> bitmaps.add(part.image)
+            is BlobPart -> blobs.add(part)
+          }
+        }
+      }
+      .onCompletion {
+        if (it == null) {
+          val content =
+            content("model") {
+              for (bitmap in bitmaps) {
+                image(bitmap)
+              }
+              for (blob in blobs) {
+                blob(blob.mimeType, blob.blob)
+              }
+              if (text.isNotBlank()) {
+                text(text.toString())
+              }
+            }
+
+          history.add(prompt)
+          history.add(content)
+        }
+      }
+  }
+
+  /**
+   * Generates a streaming response from the backend with the provided [Content]s.
+   *
+   * @param prompt A [Content] to send to the model.
+   * @return A [Flow] which will emit responses as they are returned from the model.
+   */
+  fun sendMessageStream(prompt: String): Flow<GenerateContentResponse> {
+    val content = content("user") { text(prompt) }
+    return sendMessageStream(content)
+  }
+
+  /**
+   * Generates a streaming response from the backend with the provided [Content]s.
+   *
+   * @param prompt A [Content] to send to the model.
+   * @return A [Flow] which will emit responses as they are returned from the model.
+   */
+  fun sendMessageStream(prompt: Bitmap): Flow<GenerateContentResponse> {
+    val content = content("user") { image(prompt) }
+    return sendMessageStream(content)
+  }
+
+  private fun Content.assertComesFromUser() {
+    if (role != "user") {
+      throw InvalidStateException("Chat prompts should come from the 'user' role.")
+    }
+  }
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/GenerativeModel.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/GenerativeModel.kt
new file mode 100644
index 00000000..15064aa7
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/GenerativeModel.kt
@@ -0,0 +1,184 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai
+
+import android.graphics.Bitmap
+import com.google.ai.client.generativeai.internal.api.APIController
+import com.google.ai.client.generativeai.internal.api.CountTokensRequest
+import com.google.ai.client.generativeai.internal.api.GenerateContentRequest
+import com.google.ai.client.generativeai.internal.util.toInternal
+import com.google.ai.client.generativeai.internal.util.toPublic
+import com.google.ai.client.generativeai.type.Content
+import com.google.ai.client.generativeai.type.CountTokensResponse
+import com.google.ai.client.generativeai.type.FinishReason
+import com.google.ai.client.generativeai.type.GenerateContentResponse
+import com.google.ai.client.generativeai.type.GenerationConfig
+import com.google.ai.client.generativeai.type.GoogleGenerativeAIException
+import com.google.ai.client.generativeai.type.PromptBlockedException
+import com.google.ai.client.generativeai.type.ResponseStoppedException
+import com.google.ai.client.generativeai.type.SafetySetting
+import com.google.ai.client.generativeai.type.SerializationException
+import com.google.ai.client.generativeai.type.content
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.catch
+import kotlinx.coroutines.flow.map
+
+/**
+ * A facilitator for a given multimodal model (eg; Gemini).
+ *
+ * @property modelName name of the model in the backend
+ * @property apiKey authentication key for interacting with the backend
+ * @property generationConfig configuration parameters to use for content generation
+ * @property safetySettings the safety bounds to use during alongside prompts during content
+ *   generation
+ */
+class GenerativeModel
+internal constructor(
+  val modelName: String,
+  val apiKey: String,
+  val generationConfig: GenerationConfig? = null,
+  val safetySettings: List<SafetySetting>? = null,
+  private val controller: APIController
+) {
+
+  @JvmOverloads
+  constructor(
+    modelName: String,
+    apiKey: String,
+    generationConfig: GenerationConfig? = null,
+    safetySettings: List<SafetySetting>? = null,
+  ) : this(modelName, apiKey, generationConfig, safetySettings, APIController(apiKey, modelName))
+
+  /**
+   * Generates a response from the backend with the provided [Content]s.
+   *
+   * @param prompt A group of [Content]s to send to the model.
+   * @return A [GenerateContentResponse] after some delay. Function should be called within a
+   *   suspend context to properly manage concurrency.
+   */
+  suspend fun generateContent(vararg prompt: Content): GenerateContentResponse =
+    try {
+      controller.generateContent(constructRequest(*prompt)).toPublic().validate()
+    } catch (e: Throwable) {
+      throw GoogleGenerativeAIException.from(e)
+    }
+
+  /**
+   * Generates a streaming response from the backend with the provided [Content]s.
+   *
+   * @param prompt A group of [Content]s to send to the model.
+   * @return A [Flow] which will emit responses as they are returned from the model.
+   */
+  fun generateContentStream(vararg prompt: Content): Flow<GenerateContentResponse> =
+    controller
+      .generateContentStream(constructRequest(*prompt))
+      .map { it.toPublic().validate() }
+      .catch { throw GoogleGenerativeAIException.from(it) }
+
+  /**
+   * Generates a response from the backend with the provided text represented [Content].
+   *
+   * @param prompt The text to be converted into a single piece of [Content] to send to the model.
+   * @return A [GenerateContentResponse] after some delay. Function should be called within a
+   *   suspend context to properly manage concurrency.
+   */
+  suspend fun generateContent(prompt: String): GenerateContentResponse =
+    generateContent(content { text(prompt) })
+
+  /**
+   * Generates a streaming response from the backend with the provided text represented [Content].
+   *
+   * @param prompt The text to be converted into a single piece of [Content] to send to the model.
+   * @return A [Flow] which will emit responses as they are returned from the model.
+   */
+  fun generateContentStream(prompt: String): Flow<GenerateContentResponse> =
+    generateContentStream(content { text(prompt) })
+
+  /**
+   * Generates a response from the backend with the provided bitmap represented [Content].
+   *
+   * @param prompt The bitmap to be converted into a single piece of [Content] to send to the model.
+   * @return A [GenerateContentResponse] after some delay. Function should be called within a
+   *   suspend context to properly manage concurrency.
+   */
+  suspend fun generateContent(prompt: Bitmap): GenerateContentResponse =
+    generateContent(content { image(prompt) })
+
+  /**
+   * Generates a streaming response from the backend with the provided bitmap represented [Content].
+   *
+   * @param prompt The bitmap to be converted into a single piece of [Content] to send to the model.
+   * @return A [Flow] which will emit responses as they are returned from the model.
+   */
+  fun generateContentStream(prompt: Bitmap): Flow<GenerateContentResponse> =
+    generateContentStream(content { image(prompt) })
+
+  /** Creates a chat instance which internally tracks the ongoing conversation with the model */
+  fun startChat(history: List<Content> = emptyList()): Chat = Chat(this, history.toMutableList())
+
+  /**
+   * Counts the number of tokens used in a prompt.
+   *
+   * @param prompt A group of [Content]s to count tokens of.
+   * @return A [CountTokensResponse] containing the number of tokens in the prompt.
+   */
+  suspend fun countTokens(vararg prompt: Content): CountTokensResponse {
+    return controller.countTokens(constructCountTokensRequest(*prompt)).toPublic()
+  }
+
+  /**
+   * Counts the number of tokens used in a prompt.
+   *
+   * @param prompt The text to be converted to a single piece of [Content] to count the tokens of.
+   * @return A [CountTokensResponse] containing the number of tokens in the prompt.
+   */
+  suspend fun countTokens(prompt: String): CountTokensResponse {
+    return countTokens(content { text(prompt) })
+  }
+
+  /**
+   * Counts the number of tokens used in a prompt.
+   *
+   * @param prompt The image to be converted to a single piece of [Content] to count the tokens of.
+   * @return A [CountTokensResponse] containing the number of tokens in the prompt.
+   */
+  suspend fun countTokens(prompt: Bitmap): CountTokensResponse {
+    return countTokens(content { image(prompt) })
+  }
+
+  private fun constructRequest(vararg prompt: Content) =
+    GenerateContentRequest(
+      modelName,
+      prompt.map { it.toInternal() },
+      safetySettings?.map { it.toInternal() },
+      generationConfig?.toInternal()
+    )
+
+  private fun constructCountTokensRequest(vararg prompt: Content) =
+    CountTokensRequest(modelName, prompt.map { it.toInternal() })
+
+  private fun GenerateContentResponse.validate() = apply {
+    if (candidates.isEmpty() && promptFeedback == null) {
+      throw SerializationException("Error deserializing response, found no valid fields")
+    }
+    promptFeedback?.blockReason?.let { throw PromptBlockedException(this) }
+    candidates
+      .mapNotNull { it.finishReason }
+      .firstOrNull { it != FinishReason.STOP }
+      ?.let { throw ResponseStoppedException(this) }
+  }
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/APIController.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/APIController.kt
new file mode 100644
index 00000000..de299165
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/APIController.kt
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.api
+
+import com.google.ai.client.generativeai.internal.util.decodeToFlow
+import com.google.ai.client.generativeai.type.ServerException
+import io.ktor.client.HttpClient
+import io.ktor.client.call.body
+import io.ktor.client.engine.HttpClientEngine
+import io.ktor.client.engine.okhttp.OkHttp
+import io.ktor.client.plugins.HttpTimeout
+import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
+import io.ktor.client.request.HttpRequestBuilder
+import io.ktor.client.request.header
+import io.ktor.client.request.post
+import io.ktor.client.request.preparePost
+import io.ktor.client.request.setBody
+import io.ktor.client.statement.HttpResponse
+import io.ktor.client.statement.bodyAsChannel
+import io.ktor.client.statement.bodyAsText
+import io.ktor.http.ContentType
+import io.ktor.http.HttpStatusCode
+import io.ktor.http.contentType
+import io.ktor.serialization.kotlinx.json.json
+import kotlinx.coroutines.CoroutineName
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.channelFlow
+import kotlinx.coroutines.launch
+import kotlinx.serialization.json.Json
+
+// TODO: Should these stay here or be moved elsewhere?
+internal const val DOMAIN = "https://generativelanguage.googleapis.com/v1/models"
+
+internal val JSON = Json {
+  ignoreUnknownKeys = true
+  prettyPrint = false
+}
+
+/**
+ * Backend class for interfacing with the Gemini API.
+ *
+ * This class handles making HTTP requests to the API and streaming the responses back.
+ *
+ * @param httpEngine The HTTP client engine to be used for making requests. Defaults to CIO engine.
+ *   Exposed primarily for DI in tests.
+ * @property key The API key used for authentication.
+ * @property model The model to use for generation.
+ */
+internal class APIController(
+  private val key: String,
+  private val model: String,
+  httpEngine: HttpClientEngine = OkHttp.create()
+) {
+  private val client =
+    HttpClient(httpEngine) {
+      install(HttpTimeout) {
+        requestTimeoutMillis = HttpTimeout.INFINITE_TIMEOUT_MS
+        socketTimeoutMillis = 80_000
+      }
+      install(ContentNegotiation) { json(JSON) }
+    }
+
+  suspend fun generateContent(request: GenerateContentRequest): GenerateContentResponse {
+    return client
+      .post("$DOMAIN/$model:generateContent") { applyCommonConfiguration(request) }
+      .also { validateResponse(it) }
+      .body()
+  }
+
+  fun generateContentStream(request: GenerateContentRequest): Flow<GenerateContentResponse> {
+    return client.postStream("$DOMAIN/$model:streamGenerateContent?alt=sse") {
+      applyCommonConfiguration(request)
+    }
+  }
+
+  suspend fun countTokens(request: CountTokensRequest): CountTokensResponse {
+    return client
+      .post("$DOMAIN/$model:countTokens") { applyCommonConfiguration(request) }
+      .also { validateResponse(it) }
+      .body()
+  }
+
+  private fun HttpRequestBuilder.applyCommonConfiguration(request: Request) {
+    when (request) {
+      is GenerateContentRequest -> setBody<GenerateContentRequest>(request)
+      is CountTokensRequest -> setBody<CountTokensRequest>(request)
+    }
+    contentType(ContentType.Application.Json)
+    header("x-goog-api-key", key)
+  }
+}
+
+/**
+ * Makes a POST request to the specified [url] and returns a [Flow] of deserialized response objects
+ * of type [R]. The response is expected to be a stream of JSON objects that are parsed in real-time
+ * as they are received from the server.
+ *
+ * This function is intended for internal use within the client that handles streaming responses.
+ *
+ * Example usage:
+ * ```
+ * val client: HttpClient = HttpClient(CIO)
+ * val request: Request = GenerateContentRequest(...)
+ * val url: String = "http://example.com/stream"
+ *
+ * val responses: GenerateContentResponse = client.postStream(url) {
+ *   setBody(request)
+ *   contentType(ContentType.Application.Json)
+ * }
+ * responses.collect {
+ *   println("Got a response: $it")
+ * }
+ * ```
+ *
+ * @param R The type of the response object.
+ * @param url The URL to which the POST request will be made.
+ * @param config An optional [HttpRequestBuilder] callback for request configuration.
+ * @return A [Flow] of response objects of type [R].
+ */
+private inline fun <reified R : Response> HttpClient.postStream(
+  url: String,
+  crossinline config: HttpRequestBuilder.() -> Unit = {}
+): Flow<R> = channelFlow {
+  launch(CoroutineName("postStream")) {
+    preparePost(url) { config() }
+      .execute {
+        validateResponse(it)
+
+        val channel = it.bodyAsChannel()
+        val flow = JSON.decodeToFlow<R>(channel)
+
+        flow.collect { send(it) }
+      }
+  }
+}
+
+private suspend fun validateResponse(response: HttpResponse) {
+  if (response.status != HttpStatusCode.OK) {
+    val text = response.bodyAsText()
+    val message =
+      try {
+        JSON.decodeFromString<GRpcErrorResponse>(text).error.message
+      } catch (e: Throwable) {
+        "Unexpected Response:\n$text"
+      }
+
+    throw ServerException(message)
+  }
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/Request.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/Request.kt
new file mode 100644
index 00000000..44cbe85d
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/Request.kt
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.api
+
+import com.google.ai.client.generativeai.internal.api.client.GenerationConfig
+import com.google.ai.client.generativeai.internal.api.shared.Content
+import com.google.ai.client.generativeai.internal.api.shared.SafetySetting
+import kotlinx.serialization.SerialName
+import kotlinx.serialization.Serializable
+
+internal sealed interface Request
+
+@Serializable
+internal data class GenerateContentRequest(
+  val model: String,
+  val contents: List<Content>,
+  @SerialName("safety_settings") val safetySettings: List<SafetySetting>? = null,
+  @SerialName("generation_config") val generationConfig: GenerationConfig? = null,
+) : Request
+
+@Serializable
+internal data class CountTokensRequest(val model: String, val contents: List<Content>) : Request
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/Response.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/Response.kt
new file mode 100644
index 00000000..df142c4f
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/Response.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.api
+
+import com.google.ai.client.generativeai.internal.api.server.Candidate
+import com.google.ai.client.generativeai.internal.api.server.GRpcError
+import com.google.ai.client.generativeai.internal.api.server.PromptFeedback
+import kotlinx.serialization.Serializable
+
+internal sealed interface Response
+
+@Serializable
+internal data class GenerateContentResponse(
+  val candidates: List<Candidate>? = null,
+  val promptFeedback: PromptFeedback? = null,
+) : Response
+
+@Serializable internal data class CountTokensResponse(val totalTokens: Int) : Response
+
+@Serializable internal data class GRpcErrorResponse(val error: GRpcError) : Response
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/client/Types.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/client/Types.kt
new file mode 100644
index 00000000..f1f778bf
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/client/Types.kt
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.api.client
+
+import kotlinx.serialization.SerialName
+import kotlinx.serialization.Serializable
+
+@Serializable
+internal data class GenerationConfig(
+  val temperature: Float?,
+  @SerialName("top_p") val topP: Float?,
+  @SerialName("top_k") val topK: Int?,
+  @SerialName("candidate_count") val candidateCount: Int?,
+  @SerialName("max_output_tokens") val maxOutputTokens: Int?,
+  @SerialName("stop_sequences") val stopSequences: List<String>?
+)
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/server/Types.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/server/Types.kt
new file mode 100644
index 00000000..9f250dc4
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/server/Types.kt
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.api.server
+
+import com.google.ai.client.generativeai.internal.api.shared.Content
+import com.google.ai.client.generativeai.internal.api.shared.HarmCategory
+import com.google.ai.client.generativeai.internal.util.FirstOrdinalSerializer
+import kotlinx.serialization.KSerializer
+import kotlinx.serialization.SerialName
+import kotlinx.serialization.Serializable
+
+internal object BlockReasonSerializer :
+  KSerializer<BlockReason> by FirstOrdinalSerializer(BlockReason::class)
+
+internal object HarmProbabilitySerializer :
+  KSerializer<HarmProbability> by FirstOrdinalSerializer(HarmProbability::class)
+
+internal object FinishReasonSerializer :
+  KSerializer<FinishReason> by FirstOrdinalSerializer(FinishReason::class)
+
+@Serializable
+internal data class PromptFeedback(
+  val blockReason: BlockReason? = null,
+  val safetyRatings: List<SafetyRating>? = null,
+)
+
+@Serializable(BlockReasonSerializer::class)
+internal enum class BlockReason {
+  UNKNOWN,
+  @SerialName("BLOCKED_REASON_UNSPECIFIED") UNSPECIFIED,
+  SAFETY,
+  OTHER
+}
+
+@Serializable
+internal data class Candidate(
+  val content: Content? = null,
+  val finishReason: FinishReason? = null,
+  val safetyRatings: List<SafetyRating>? = null,
+  val citationMetadata: CitationMetadata? = null
+)
+
+@Serializable internal data class CitationMetadata(val citationSources: List<CitationSources>)
+
+@Serializable
+internal data class CitationSources(
+  val startIndex: Int,
+  val endIndex: Int,
+  val uri: String,
+  val license: String
+)
+
+@Serializable
+internal data class SafetyRating(
+  val category: HarmCategory,
+  val probability: HarmProbability,
+  val blocked: Boolean? = null // TODO(): any reason not to default to false?
+)
+
+@Serializable(HarmProbabilitySerializer::class)
+internal enum class HarmProbability {
+  UNKNOWN,
+  @SerialName("HARM_PROBABILITY_UNSPECIFIED") UNSPECIFIED,
+  NEGLIGIBLE,
+  LOW,
+  MEDIUM,
+  HIGH
+}
+
+@Serializable(FinishReasonSerializer::class)
+internal enum class FinishReason {
+  UNKNOWN,
+  @SerialName("FINISH_REASON_UNSPECIFIED") UNSPECIFIED,
+  STOP,
+  MAX_TOKENS,
+  SAFETY,
+  RECITATION,
+  OTHER
+}
+
+@Serializable
+internal data class GRpcError(
+  val code: Int,
+  val message: String,
+)
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/shared/Types.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/shared/Types.kt
new file mode 100644
index 00000000..3f15f807
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/shared/Types.kt
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.api.shared
+
+import com.google.ai.client.generativeai.internal.util.FirstOrdinalSerializer
+import kotlinx.serialization.DeserializationStrategy
+import kotlinx.serialization.KSerializer
+import kotlinx.serialization.SerialName
+import kotlinx.serialization.Serializable
+import kotlinx.serialization.SerializationException
+import kotlinx.serialization.json.JsonContentPolymorphicSerializer
+import kotlinx.serialization.json.JsonElement
+import kotlinx.serialization.json.jsonObject
+
+internal object HarmCategorySerializer :
+  KSerializer<HarmCategory> by FirstOrdinalSerializer(HarmCategory::class)
+
+@Serializable(HarmCategorySerializer::class)
+internal enum class HarmCategory {
+  UNKNOWN,
+  @SerialName("HARM_CATEGORY_HARASSMENT") HARASSMENT,
+  @SerialName("HARM_CATEGORY_HATE_SPEECH") HATE_SPEECH,
+  @SerialName("HARM_CATEGORY_SEXUALLY_EXPLICIT") SEXUALLY_EXPLICIT,
+  @SerialName("HARM_CATEGORY_DANGEROUS_CONTENT") DANGEROUS_CONTENT
+}
+
+typealias Base64 = String
+
+@Serializable internal data class Content(val role: String? = null, val parts: List<Part>)
+
+@Serializable(PartSerializer::class) internal sealed interface Part
+
+@Serializable internal data class TextPart(val text: String) : Part
+
+@Serializable internal data class BlobPart(@SerialName("inline_data") val inlineData: Blob) : Part
+
+@Serializable
+internal data class Blob(
+  @SerialName("mime_type") val mimeType: String,
+  val data: Base64,
+)
+
+@Serializable
+internal data class SafetySetting(val category: HarmCategory, val threshold: HarmBlockThreshold)
+
+@Serializable
+internal enum class HarmBlockThreshold {
+  @SerialName("HARM_BLOCK_THRESHOLD_UNSPECIFIED") UNSPECIFIED,
+  BLOCK_LOW_AND_ABOVE,
+  BLOCK_MEDIUM_AND_ABOVE,
+  BLOCK_ONLY_HIGH,
+  BLOCK_NONE,
+}
+
+internal object PartSerializer : JsonContentPolymorphicSerializer<Part>(Part::class) {
+  override fun selectDeserializer(element: JsonElement): DeserializationStrategy<Part> {
+    val jsonObject = element.jsonObject
+    return when {
+      "text" in jsonObject -> TextPart.serializer()
+      "inlineData" in jsonObject -> BlobPart.serializer()
+      else -> throw SerializationException("Unknown Part type")
+    }
+  }
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/conversions.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/conversions.kt
new file mode 100644
index 00000000..19c0332c
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/conversions.kt
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.util
+
+import android.graphics.Bitmap
+import android.graphics.BitmapFactory
+import android.util.Base64
+import com.google.ai.client.generativeai.internal.api.CountTokensResponse
+import com.google.ai.client.generativeai.internal.api.GenerateContentResponse
+import com.google.ai.client.generativeai.internal.api.client.GenerationConfig
+import com.google.ai.client.generativeai.internal.api.server.BlockReason
+import com.google.ai.client.generativeai.internal.api.server.Candidate
+import com.google.ai.client.generativeai.internal.api.server.CitationSources
+import com.google.ai.client.generativeai.internal.api.server.FinishReason
+import com.google.ai.client.generativeai.internal.api.server.HarmProbability
+import com.google.ai.client.generativeai.internal.api.server.PromptFeedback
+import com.google.ai.client.generativeai.internal.api.server.SafetyRating
+import com.google.ai.client.generativeai.internal.api.shared.Blob
+import com.google.ai.client.generativeai.internal.api.shared.BlobPart
+import com.google.ai.client.generativeai.internal.api.shared.Content
+import com.google.ai.client.generativeai.internal.api.shared.HarmBlockThreshold
+import com.google.ai.client.generativeai.internal.api.shared.HarmCategory
+import com.google.ai.client.generativeai.internal.api.shared.Part
+import com.google.ai.client.generativeai.internal.api.shared.SafetySetting
+import com.google.ai.client.generativeai.internal.api.shared.TextPart
+import com.google.ai.client.generativeai.type.BlockThreshold
+import com.google.ai.client.generativeai.type.CitationMetadata
+import com.google.ai.client.generativeai.type.ImagePart
+import com.google.ai.client.generativeai.type.SerializationException
+import com.google.ai.client.generativeai.type.content
+import java.io.ByteArrayOutputStream
+
+private const val BASE_64_FLAGS = Base64.NO_WRAP
+
+internal fun com.google.ai.client.generativeai.type.Content.toInternal() =
+  Content(this.role, this.parts.map { it.toInternal() })
+
+internal fun com.google.ai.client.generativeai.type.Part.toInternal(): Part {
+  return when (this) {
+    is com.google.ai.client.generativeai.type.TextPart -> TextPart(text)
+    is ImagePart -> BlobPart(Blob("image/png", encodeBitmapToBase64Png(image)))
+    is com.google.ai.client.generativeai.type.BlobPart ->
+      BlobPart(Blob(mimeType, Base64.encodeToString(blob, BASE_64_FLAGS)))
+    else ->
+      throw SerializationException(
+        "The given subclass of Part (${javaClass.simpleName}) is not supported in the serialization yet."
+      )
+  }
+}
+
+internal fun com.google.ai.client.generativeai.type.SafetySetting.toInternal() =
+  SafetySetting(harmCategory.toInternal(), threshold.toInternal())
+
+internal fun com.google.ai.client.generativeai.type.GenerationConfig.toInternal() =
+  GenerationConfig(
+    temperature = temperature,
+    topP = topP,
+    topK = topK,
+    candidateCount = candidateCount,
+    maxOutputTokens = maxOutputTokens,
+    stopSequences = stopSequences
+  )
+
+internal fun com.google.ai.client.generativeai.type.HarmCategory.toInternal() =
+  when (this) {
+    com.google.ai.client.generativeai.type.HarmCategory.HARASSMENT -> HarmCategory.HARASSMENT
+    com.google.ai.client.generativeai.type.HarmCategory.HATE_SPEECH -> HarmCategory.HATE_SPEECH
+    com.google.ai.client.generativeai.type.HarmCategory.SEXUALLY_EXPLICIT ->
+      HarmCategory.SEXUALLY_EXPLICIT
+    com.google.ai.client.generativeai.type.HarmCategory.DANGEROUS_CONTENT ->
+      HarmCategory.DANGEROUS_CONTENT
+    com.google.ai.client.generativeai.type.HarmCategory.UNKNOWN -> HarmCategory.UNKNOWN
+  }
+
+internal fun BlockThreshold.toInternal() =
+  when (this) {
+    BlockThreshold.NONE -> HarmBlockThreshold.BLOCK_NONE
+    BlockThreshold.ONLY_HIGH -> HarmBlockThreshold.BLOCK_ONLY_HIGH
+    BlockThreshold.MEDIUM_AND_ABOVE -> HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE
+    BlockThreshold.LOW_AND_ABOVE -> HarmBlockThreshold.BLOCK_LOW_AND_ABOVE
+    BlockThreshold.UNSPECIFIED -> HarmBlockThreshold.UNSPECIFIED
+  }
+
+internal fun Candidate.toPublic(): com.google.ai.client.generativeai.type.Candidate {
+  val safetyRatings = safetyRatings?.map { it.toPublic() }.orEmpty()
+  val citations = citationMetadata?.citationSources?.map { it.toPublic() }.orEmpty()
+  val finishReason = finishReason.toPublic()
+
+  return com.google.ai.client.generativeai.type.Candidate(
+    this.content?.toPublic() ?: content("model") {},
+    safetyRatings,
+    citations,
+    finishReason
+  )
+}
+
+internal fun Content.toPublic(): com.google.ai.client.generativeai.type.Content =
+  com.google.ai.client.generativeai.type.Content(role, parts.map { it.toPublic() })
+
+internal fun Part.toPublic(): com.google.ai.client.generativeai.type.Part {
+  return when (this) {
+    is TextPart -> com.google.ai.client.generativeai.type.TextPart(text)
+    is BlobPart -> {
+      val data = Base64.decode(inlineData.data, BASE_64_FLAGS)
+      if (inlineData.mimeType.contains("image")) {
+        ImagePart(decodeBitmapFromImage(data))
+      } else {
+        com.google.ai.client.generativeai.type.BlobPart(inlineData.mimeType, data)
+      }
+    }
+  }
+}
+
+internal fun CitationSources.toPublic() =
+  CitationMetadata(startIndex = startIndex, endIndex = endIndex, uri = uri, license = license)
+
+internal fun SafetyRating.toPublic() =
+  com.google.ai.client.generativeai.type.SafetyRating(category.toPublic(), probability.toPublic())
+
+internal fun PromptFeedback.toPublic(): com.google.ai.client.generativeai.type.PromptFeedback {
+  val safetyRatings = safetyRatings?.map { it.toPublic() }.orEmpty()
+  return com.google.ai.client.generativeai.type.PromptFeedback(
+    blockReason?.toPublic(),
+    safetyRatings,
+  )
+}
+
+internal fun FinishReason?.toPublic() =
+  when (this) {
+    null -> null
+    FinishReason.MAX_TOKENS -> com.google.ai.client.generativeai.type.FinishReason.MAX_TOKENS
+    FinishReason.RECITATION -> com.google.ai.client.generativeai.type.FinishReason.RECITATION
+    FinishReason.SAFETY -> com.google.ai.client.generativeai.type.FinishReason.SAFETY
+    FinishReason.STOP -> com.google.ai.client.generativeai.type.FinishReason.STOP
+    FinishReason.OTHER -> com.google.ai.client.generativeai.type.FinishReason.OTHER
+    FinishReason.UNSPECIFIED -> com.google.ai.client.generativeai.type.FinishReason.UNSPECIFIED
+    FinishReason.UNKNOWN -> com.google.ai.client.generativeai.type.FinishReason.UNKNOWN
+  }
+
+internal fun HarmCategory.toPublic() =
+  when (this) {
+    HarmCategory.HARASSMENT -> com.google.ai.client.generativeai.type.HarmCategory.HARASSMENT
+    HarmCategory.HATE_SPEECH -> com.google.ai.client.generativeai.type.HarmCategory.HATE_SPEECH
+    HarmCategory.SEXUALLY_EXPLICIT ->
+      com.google.ai.client.generativeai.type.HarmCategory.SEXUALLY_EXPLICIT
+    HarmCategory.DANGEROUS_CONTENT ->
+      com.google.ai.client.generativeai.type.HarmCategory.DANGEROUS_CONTENT
+    HarmCategory.UNKNOWN -> com.google.ai.client.generativeai.type.HarmCategory.UNKNOWN
+  }
+
+internal fun HarmProbability.toPublic() =
+  when (this) {
+    HarmProbability.HIGH -> com.google.ai.client.generativeai.type.HarmProbability.HIGH
+    HarmProbability.MEDIUM -> com.google.ai.client.generativeai.type.HarmProbability.MEDIUM
+    HarmProbability.LOW -> com.google.ai.client.generativeai.type.HarmProbability.LOW
+    HarmProbability.NEGLIGIBLE -> com.google.ai.client.generativeai.type.HarmProbability.NEGLIGIBLE
+    HarmProbability.UNSPECIFIED ->
+      com.google.ai.client.generativeai.type.HarmProbability.UNSPECIFIED
+    HarmProbability.UNKNOWN -> com.google.ai.client.generativeai.type.HarmProbability.UNKNOWN
+  }
+
+internal fun BlockReason.toPublic() =
+  when (this) {
+    BlockReason.UNSPECIFIED -> com.google.ai.client.generativeai.type.BlockReason.UNSPECIFIED
+    BlockReason.SAFETY -> com.google.ai.client.generativeai.type.BlockReason.SAFETY
+    BlockReason.OTHER -> com.google.ai.client.generativeai.type.BlockReason.OTHER
+    BlockReason.UNKNOWN -> com.google.ai.client.generativeai.type.BlockReason.UNKNOWN
+  }
+
+internal fun GenerateContentResponse.toPublic() =
+  com.google.ai.client.generativeai.type.GenerateContentResponse(
+    candidates?.map { it.toPublic() }.orEmpty(),
+    promptFeedback?.toPublic()
+  )
+
+internal fun CountTokensResponse.toPublic() =
+  com.google.ai.client.generativeai.type.CountTokensResponse(totalTokens)
+
+private fun encodeBitmapToBase64Png(input: Bitmap): String {
+  ByteArrayOutputStream().let {
+    input.compress(Bitmap.CompressFormat.PNG, 100, it)
+    return Base64.encodeToString(it.toByteArray(), BASE_64_FLAGS)
+  }
+}
+
+private fun decodeBitmapFromImage(input: ByteArray) =
+  BitmapFactory.decodeByteArray(input, 0, input.size)
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/kotlin.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/kotlin.kt
new file mode 100644
index 00000000..03d4f20e
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/kotlin.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.util
+
+import java.lang.reflect.Field
+
+/**
+ * Removes the last character from the [StringBuilder].
+ *
+ * If the StringBuilder is empty, calling this function will throw an [IndexOutOfBoundsException].
+ *
+ * @return The [StringBuilder] used to make the call, for optional chaining.
+ * @throws IndexOutOfBoundsException if the StringBuilder is empty.
+ */
+internal fun StringBuilder.removeLast(): StringBuilder =
+  if (isEmpty()) throw IndexOutOfBoundsException("StringBuilder is empty.")
+  else deleteCharAt(length - 1)
+
+/**
+ * A variant of [getAnnotation][Field.getAnnotation] that provides implicit Kotlin support.
+ *
+ * Syntax sugar for:
+ * ```
+ * getAnnotation(T::class.java)
+ * ```
+ */
+internal inline fun <reified T : Annotation> Field.getAnnotation() = getAnnotation(T::class.java)
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/ktor.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/ktor.kt
new file mode 100644
index 00000000..ae3434e3
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/ktor.kt
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:Suppress("DEPRECATION") // a replacement for our purposes has not been published yet
+
+package com.google.ai.client.generativeai.internal.util
+
+import io.ktor.utils.io.ByteChannel
+import io.ktor.utils.io.ByteReadChannel
+import io.ktor.utils.io.close
+import io.ktor.utils.io.readUTF8Line
+import io.ktor.utils.io.writeFully
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.channelFlow
+import kotlinx.serialization.SerializationException
+import kotlinx.serialization.json.Json
+
+/**
+ * Suspends and processes each line read from the [ByteReadChannel] until the channel is closed for
+ * read.
+ *
+ * This extension function facilitates processing the stream of lines in a manner that takes into
+ * account EOF/empty strings- and avoids calling [block] as such.
+ *
+ * Example usage:
+ * ```
+ * val channel: ByteReadChannel = ByteReadChannel("Hello, World!")
+ * channel.onEachLine {
+ *     println("Received line: $it")
+ * }
+ * ```
+ *
+ * @param block A suspending function to process each line.
+ */
+internal suspend fun ByteReadChannel.onEachLine(block: suspend (String) -> Unit) {
+  while (!isClosedForRead) {
+    awaitContent()
+    val line = readUTF8Line()?.takeUnless { it.isEmpty() } ?: continue
+    block(line)
+  }
+}
+
+/**
+ * Decodes a stream of JSON elements from the given [ByteReadChannel] into a [Flow] of objects of
+ * type [T].
+ *
+ * This function takes in a stream of events, each with a set of named parts. Parts are separated by
+ * an HTTP \r\n newline, events are separated by a double HTTP \r\n\r\n newline. This function
+ * assumes every event will only contain a named "data" part with a JSON object. Each data JSON is
+ * decoded into an instance of [T] and emitted as it is read from the channel.
+ *
+ * Example usage:
+ * ```
+ * val json = Json { ignoreUnknownKeys = true } // Create a Json instance with any configurations
+ * val channel: ByteReadChannel = ByteReadChannel("data: {\"name\":\"Alice\"}\r\n\r\ndata: {\"name\":\"Bob\"}]")
+ *
+ * json.decodeToFlow<Person>(channel).collect { person ->
+ *   println(person.name)
+ * }
+ * ```
+ *
+ * @param T The type of objects to decode from the JSON stream.
+ * @param channel The [ByteReadChannel] from which the JSON stream will be read.
+ * @return A [Flow] of objects of type [T].
+ * @throws SerializationException in case of any decoding-specific error
+ * @throws IllegalArgumentException if the decoded input is not a valid instance of [T]
+ */
+internal inline fun <reified T> Json.decodeToFlow(channel: ByteReadChannel): Flow<T> = channelFlow {
+  channel.onEachLine {
+    val data = it.removePrefix("data:")
+    send(decodeFromString(data))
+  }
+}
+
+/**
+ * Writes the provided [bytes] to the channel and closes it.
+ *
+ * Just a wrapper around [writeFully] that closes the channel after writing is complete.
+ *
+ * @param bytes the data to send through the channel
+ */
+internal suspend fun ByteChannel.send(bytes: ByteArray) {
+  writeFully(bytes)
+  close()
+}
+
+/** String separator used in SSE communication to signal the end of a message. */
+internal const val SSE_SEPARATOR = "\r\n\r\n"
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/serialization.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/serialization.kt
new file mode 100644
index 00000000..76405fe3
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/util/serialization.kt
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.internal.util
+
+import android.util.Log
+import com.google.ai.client.generativeai.type.SerializationException
+import kotlin.reflect.KClass
+import kotlinx.serialization.KSerializer
+import kotlinx.serialization.SerialName
+import kotlinx.serialization.descriptors.SerialDescriptor
+import kotlinx.serialization.descriptors.buildClassSerialDescriptor
+import kotlinx.serialization.encoding.Decoder
+import kotlinx.serialization.encoding.Encoder
+
+/**
+ * Serializer for enums that defaults to the first ordinal on unknown types.
+ *
+ * Convention is that the first enum be named `UNKNOWN`, but any name is valid.
+ *
+ * When an unknown enum value is found, the enum itself will be logged to stderr with a message
+ * about opening an issue on GitHub regarding the new enum value.
+ */
+internal class FirstOrdinalSerializer<T : Enum<T>>(private val enumClass: KClass<T>) :
+  KSerializer<T> {
+  override val descriptor: SerialDescriptor = buildClassSerialDescriptor("FirstOrdinalSerializer")
+
+  override fun deserialize(decoder: Decoder): T {
+    val name = decoder.decodeString()
+    val values = enumClass.enumValues()
+
+    return values.firstOrNull { it.serialName == name }
+      ?: values.first().also { printWarning(name) }
+  }
+
+  private fun printWarning(name: String) {
+    Log.e(
+      "FirstOrdinalSerializer",
+      """
+        |Unknown enum value found: $name"
+        |This usually means the backend was updated, and the SDK needs to be updated to match it.
+        |Check if there's a new version for the SDK, otherwise please open an issue on our
+        |GitHub to bring it to our attention:
+        |https://github.com/google/google-ai-android
+       """
+        .trimMargin()
+    )
+  }
+
+  override fun serialize(encoder: Encoder, value: T) {
+    encoder.encodeString(value.serialName)
+  }
+}
+
+/**
+ * Provides the name to be used in serialization for this enum value.
+ *
+ * By default an enum is serialized to its [name][Enum.name], and can be overwritten by providing a
+ * [SerialName] annotation.
+ */
+internal val <T : Enum<T>> T.serialName: String
+  get() = declaringJavaClass.getField(name).getAnnotation<SerialName>()?.value ?: name
+
+/**
+ * Variant of [kotlin.enumValues] that provides support for [KClass] instances of enums.
+ *
+ * @throws SerializationException if the class is not a valid enum. Beyond runtime emily magic, this
+ *   shouldn't really be possible.
+ */
+internal fun <T : Enum<T>> KClass<T>.enumValues(): Array<T> =
+  java.enumConstants ?: throw SerializationException("$simpleName is not a valid enum type.")
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/java/ChatFutures.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/java/ChatFutures.kt
new file mode 100644
index 00000000..615f9cbd
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/java/ChatFutures.kt
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.java
+
+import androidx.concurrent.futures.SuspendToFutureAdapter
+import com.google.ai.client.generativeai.Chat
+import com.google.ai.client.generativeai.type.Content
+import com.google.ai.client.generativeai.type.GenerateContentResponse
+import com.google.common.util.concurrent.ListenableFuture
+import kotlinx.coroutines.reactive.asPublisher
+import org.reactivestreams.Publisher
+
+/**
+ * Helper method for interacting with a [Chat] from Java.
+ *
+ * @see from
+ */
+abstract class ChatFutures internal constructor() {
+
+  /**
+   * Generates a response from the backend with the provided [Content], and any previous ones
+   * sent/returned from this chat.
+   *
+   * @param prompt A [Content] to send to the model.
+   */
+  abstract fun sendMessage(prompt: Content): ListenableFuture<GenerateContentResponse>
+
+  /**
+   * Generates a streaming response from the backend with the provided [Content]s.
+   *
+   * @param prompt A [Content] to send to the model.
+   */
+  abstract fun sendMessageStream(prompt: Content): Publisher<GenerateContentResponse>
+
+  private class FuturesImpl(val chat: Chat) : ChatFutures() {
+    override fun sendMessage(prompt: Content): ListenableFuture<GenerateContentResponse> =
+      SuspendToFutureAdapter.launchFuture { chat.sendMessage(prompt) }
+
+    override fun sendMessageStream(prompt: Content): Publisher<GenerateContentResponse> =
+      chat.sendMessageStream(prompt).asPublisher()
+  }
+
+  companion object {
+
+    /** @return a [ChatFutures] created around the provided [Chat] */
+    @JvmStatic fun from(chat: Chat): ChatFutures = FuturesImpl(chat)
+  }
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/java/GenerativeModelFutures.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/java/GenerativeModelFutures.kt
new file mode 100644
index 00000000..36d2b34a
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/java/GenerativeModelFutures.kt
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.java
+
+import androidx.concurrent.futures.SuspendToFutureAdapter
+import com.google.ai.client.generativeai.GenerativeModel
+import com.google.ai.client.generativeai.java.ChatFutures.Companion.from
+import com.google.ai.client.generativeai.type.Content
+import com.google.ai.client.generativeai.type.CountTokensResponse
+import com.google.ai.client.generativeai.type.GenerateContentResponse
+import com.google.common.util.concurrent.ListenableFuture
+import kotlinx.coroutines.reactive.asPublisher
+import org.reactivestreams.Publisher
+
+/**
+ * Helper method for interacting with a [GenerativeModel] from Java.
+ *
+ * @see from
+ */
+abstract class GenerativeModelFutures internal constructor() {
+
+  /**
+   * Generates a response from the backend with the provided [Content]s.
+   *
+   * @param prompt A group of [Content]s to send to the model.
+   */
+  abstract fun generateContent(vararg prompt: Content): ListenableFuture<GenerateContentResponse>
+
+  /**
+   * Generates a streaming response from the backend with the provided [Content]s.
+   *
+   * @param prompt A group of [Content]s to send to the model.
+   */
+  abstract fun generateContentStream(vararg prompt: Content): Publisher<GenerateContentResponse>
+
+  /**
+   * Counts the number of tokens used in a prompt.
+   *
+   * @param prompt A group of [Content]s to count tokens of.
+   */
+  abstract fun countTokens(vararg prompt: Content): ListenableFuture<CountTokensResponse>
+
+  /** Creates a chat instance which internally tracks the ongoing conversation with the model */
+  abstract fun startChat(): ChatFutures
+
+  /**
+   * Creates a chat instance which internally tracks the ongoing conversation with the model
+   *
+   * @param history an existing history of context to use as a starting point
+   */
+  abstract fun startChat(history: List<Content>): ChatFutures
+
+  private class FuturesImpl(val model: GenerativeModel) : GenerativeModelFutures() {
+    override fun generateContent(
+      vararg prompt: Content
+    ): ListenableFuture<GenerateContentResponse> =
+      SuspendToFutureAdapter.launchFuture { model.generateContent(*prompt) }
+
+    override fun generateContentStream(vararg prompt: Content): Publisher<GenerateContentResponse> =
+      model.generateContentStream().asPublisher()
+
+    override fun countTokens(vararg prompt: Content): ListenableFuture<CountTokensResponse> =
+      SuspendToFutureAdapter.launchFuture { model.countTokens(*prompt) }
+
+    override fun startChat(): ChatFutures = startChat(emptyList())
+
+    override fun startChat(history: List<Content>): ChatFutures = from(model.startChat(history))
+  }
+
+  companion object {
+
+    /** @return a [GenerativeModelFutures] created around the provided [GenerativeModel] */
+    @JvmStatic fun from(model: GenerativeModel): GenerativeModelFutures = FuturesImpl(model)
+  }
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/BlockThreshold.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/BlockThreshold.kt
new file mode 100644
index 00000000..ab4ca534
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/BlockThreshold.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+/**
+ * Represents the threshold for some [HarmCategory] that is allowed and blocked by [SafetySetting]s.
+ */
+enum class BlockThreshold {
+  /** The threshold was not specified. */
+  UNSPECIFIED,
+
+  /** Content with negligible harm is allowed. */
+  LOW_AND_ABOVE,
+
+  /** Content with negligible to low harm is allowed. */
+  MEDIUM_AND_ABOVE,
+
+  /** Content with negligible to medium harm is allowed. */
+  ONLY_HIGH,
+
+  /** All content is allowed regardless of harm. */
+  NONE
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/Candidate.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/Candidate.kt
new file mode 100644
index 00000000..22b38b17
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/Candidate.kt
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+/**
+ * A piece of a response from the model. Contains [SafetyRating]s, [CitationMetadata], and an
+ * optional [FinishReason] in addition to the [Content] of the response.
+ */
+class Candidate
+internal constructor(
+  val content: Content,
+  val safetyRatings: List<SafetyRating>,
+  val citationMetadata: List<CitationMetadata>,
+  val finishReason: FinishReason?
+)
+
+/** Rating for a particular [HarmCategory] with a provided [HarmProbability]. */
+class SafetyRating(val category: HarmCategory, val probability: HarmProbability)
+
+/**
+ * Provides citation metadata for sourcing of content provided by the model between a given
+ * [startIndex] and [endIndex].
+ *
+ * @property startIndex The beginning of the citation.
+ * @property endIndex The end of the citation.
+ * @property uri The URI of the cited work.
+ * @property license The license under which the cited work is distributed.
+ */
+class CitationMetadata(
+  val startIndex: Int,
+  val endIndex: Int,
+  val uri: String,
+  val license: String
+)
+
+/** The reason for content finishing. */
+enum class FinishReason {
+  /** A new and not yet supported value. */
+  UNKNOWN,
+
+  /** Reason is unspecified. */
+  UNSPECIFIED,
+
+  /** Model finished successfully and stopped. */
+  STOP,
+
+  /** Model hit the token limit. */
+  MAX_TOKENS,
+
+  /** [SafetySetting]s prevented the model from outputting content. */
+  SAFETY,
+
+  /** Model began looping. */
+  RECITATION,
+
+  /** Model stopped for another reason. */
+  OTHER
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/Content.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/Content.kt
new file mode 100644
index 00000000..128bfada
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/Content.kt
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+import android.graphics.Bitmap
+
+/**
+ * Represents content sent to and received from the model.
+ *
+ * Contains a collection of text, image, and binary parts.
+ *
+ * @see content
+ */
+class Content @JvmOverloads constructor(val role: String? = null, val parts: List<Part>) {
+
+  class Builder {
+    var role: String? = null
+
+    var parts: MutableList<Part> = arrayListOf()
+
+    @JvmName("addPart") fun <T : Part> part(data: T) = apply { parts.add(data) }
+
+    @JvmName("addText") fun text(text: String) = part(TextPart(text))
+
+    @JvmName("addBlob") fun blob(mimeType: String, blob: ByteArray) = part(BlobPart(mimeType, blob))
+
+    @JvmName("addImage") fun image(image: Bitmap) = part(ImagePart(image))
+
+    fun build(): Content = Content(role, parts)
+  }
+}
+
+/**
+ * Function to construct content sent to and received in a DSL-like manner.
+ *
+ * Contains a collection of text, image, and binary parts.
+ *
+ * Example usage:
+ * ```
+ * content("user") {
+ *   text("Example string")
+ * )
+ * ```
+ */
+fun content(role: String? = null, init: Content.Builder.() -> Unit): Content {
+  val builder = Content.Builder()
+  builder.role = role
+  builder.init()
+  return builder.build()
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt
new file mode 100644
index 00000000..a2d9255e
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+/**
+ * Represents a response measuring model input.
+ *
+ * @property totalTokens A count of the number of tokens in the input
+ */
+class CountTokensResponse(val totalTokens: Int) {
+  operator fun component1() = totalTokens
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/Exceptions.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/Exceptions.kt
new file mode 100644
index 00000000..f8fefb68
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/Exceptions.kt
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+import com.google.ai.client.generativeai.GenerativeModel
+import io.ktor.serialization.JsonConvertException
+
+/** Parent class for any errors that occur from [GenerativeModel]. */
+sealed class GoogleGenerativeAIException(message: String, cause: Throwable? = null) :
+  RuntimeException(message, cause) {
+  companion object {
+
+    /**
+     * Converts a [Throwable] to a [GoogleGenerativeAIException].
+     *
+     * Will populate default messages as expected, and propagate the provided [cause] through the
+     * resulting exception.
+     */
+    fun from(cause: Throwable): GoogleGenerativeAIException =
+      when (cause) {
+        is GoogleGenerativeAIException -> cause
+        is JsonConvertException,
+        is kotlinx.serialization.SerializationException ->
+          SerializationException(
+            "Something went wrong while trying to deserialize a response from the server.",
+            cause
+          )
+        else -> UnknownException("Something unexpected happened.", cause)
+      }
+  }
+}
+
+/** Something went wrong while trying to deserialize a response from the server. */
+class SerializationException(message: String, cause: Throwable? = null) :
+  GoogleGenerativeAIException(message, cause)
+
+/** The server responded with a non 200 response code. */
+class ServerException(message: String, cause: Throwable? = null) :
+  GoogleGenerativeAIException(message, cause)
+
+/**
+ * A request was blocked for some reason.
+ *
+ * See the [response's][response] `promptFeedback.blockReason` for more information.
+ *
+ * @property response the full server response for the request.
+ */
+class PromptBlockedException(val response: GenerateContentResponse, cause: Throwable? = null) :
+  GoogleGenerativeAIException(
+    "Prompt was blocked: ${response.promptFeedback?.blockReason?.name}",
+    cause
+  )
+
+/**
+ * Some form of state occurred that shouldn't have.
+ *
+ * Usually indicative of consumer error.
+ */
+class InvalidStateException(message: String, cause: Throwable? = null) :
+  GoogleGenerativeAIException(message, cause)
+
+/**
+ * A request was stopped during generation for some reason.
+ *
+ * @property response the full server response for the request
+ */
+class ResponseStoppedException(val response: GenerateContentResponse, cause: Throwable? = null) :
+  GoogleGenerativeAIException(
+    "Content generation stopped. Reason: ${response.candidates.first().finishReason?.name}",
+    cause
+  )
+
+/** Catch all case for exceptions not explicitly expected. */
+class UnknownException(message: String, cause: Throwable? = null) :
+  GoogleGenerativeAIException(message, cause)
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/GenerateContentResponse.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/GenerateContentResponse.kt
new file mode 100644
index 00000000..9e33ce16
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/GenerateContentResponse.kt
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+import android.util.Log
+
+/**
+ * Represents a response from the model.
+ *
+ * @property candidates a list of possible responses generated from the model
+ * @property promptFeedback optional feedback for the given prompt. When streaming, it's only
+ *   populated in the first response.
+ */
+class GenerateContentResponse(
+  val candidates: List<Candidate>,
+  val promptFeedback: PromptFeedback?,
+) {
+  /** Convenience field representing the first text part in the response, if it exists. */
+  val text: String? by lazy { firstPartAs<TextPart>()?.text }
+
+  private inline fun <reified T : Part> firstPartAs(): T? {
+    if (candidates.isEmpty()) {
+      warn("No candidates were found, but was asked to get a candidate.")
+      return null
+    }
+
+    val (parts, otherParts) = candidates.first().content.parts.partition { it is T }
+    val type = T::class.simpleName ?: "of the part type you asked for"
+
+    if (parts.isEmpty()) {
+      if (otherParts.isNotEmpty()) {
+        warn(
+          "We didn't find any $type, but we did find other part types. Did you ask for the right type?"
+        )
+      }
+
+      return null
+    }
+
+    if (parts.size > 1) {
+      warn("Multiple $type were found, returning the first one.")
+    } else if (otherParts.isNotEmpty()) {
+      warn("Returning the only $type found, but other part types were present as well.")
+    }
+
+    return parts.first() as T
+  }
+
+  private fun warn(message: String) {
+    Log.w("GenerateContentResponse", message)
+  }
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/GenerationConfig.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/GenerationConfig.kt
new file mode 100644
index 00000000..f1ff79d7
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/GenerationConfig.kt
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+/**
+ * Configuration parameters to use for content generation.
+ *
+ * @property temperature The degree of randomness in token selection, typically between 0 and 1
+ * @property topK The sum of probabilities to collect to during token selection
+ * @property topP How many tokens to select amongst the highest probabilities
+ * @property candidateCount The max *unique* responses to return
+ * @property maxOutputTokens The max tokens to generate per response
+ * @property stopSequences A list of strings to stop generation on occurrence of
+ */
+class GenerationConfig
+private constructor(
+  val temperature: Float?,
+  val topK: Int?,
+  val topP: Float?,
+  val candidateCount: Int?,
+  val maxOutputTokens: Int?,
+  val stopSequences: List<String>?
+) {
+
+  class Builder {
+    @JvmField var temperature: Float? = null
+    @JvmField var topK: Int? = null
+    @JvmField var topP: Float? = null
+    @JvmField var candidateCount: Int? = null
+    @JvmField var maxOutputTokens: Int? = null
+    @JvmField var stopSequences: List<String>? = null
+
+    fun build() =
+      GenerationConfig(
+        temperature = temperature,
+        topK = topK,
+        topP = topP,
+        candidateCount = candidateCount,
+        maxOutputTokens = maxOutputTokens,
+        stopSequences = stopSequences
+      )
+  }
+
+  companion object {
+    fun builder() = Builder()
+  }
+}
+
+/**
+ * Helper method to construct a [GenerationConfig] in a DSL-like manner.
+ *
+ * Example Usage:
+ * ```
+ * generationConfig {
+ *   temperature = 0.75f
+ *   topP = 0.5f
+ *   topK = 30
+ *   candidateCount = 4
+ *   maxOutputTokens = 300
+ *   stopSequences = listOf("in conclusion", "-----", "do you need")
+ * }
+ * ```
+ */
+fun generationConfig(init: GenerationConfig.Builder.() -> Unit): GenerationConfig {
+  val builder = GenerationConfig.builder()
+  builder.init()
+  return builder.build()
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/HarmCategory.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/HarmCategory.kt
new file mode 100644
index 00000000..d4e9781f
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/HarmCategory.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+/** Category for a given harm rating. */
+enum class HarmCategory {
+  /** A new and not yet supported value. */
+  UNKNOWN,
+
+  /** Harassment content. */
+  HARASSMENT,
+
+  /** Hate speech and content. */
+  HATE_SPEECH,
+
+  /** Sexually explicit content. */
+  SEXUALLY_EXPLICIT,
+
+  /** Dangerous content. */
+  DANGEROUS_CONTENT
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/HarmProbability.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/HarmProbability.kt
new file mode 100644
index 00000000..020cf9c6
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/HarmProbability.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+/** Represents the probability that some [HarmCategory] is applicable in a [SafetyRating]. */
+enum class HarmProbability {
+  /** A new and not yet supported value. */
+  UNKNOWN,
+
+  /** Probability for harm is unspecified. */
+  UNSPECIFIED,
+
+  /** Probability for harm is negligible. */
+  NEGLIGIBLE,
+
+  /** Probability for harm is low. */
+  LOW,
+
+  /** Probability for harm is medium. */
+  MEDIUM,
+
+  /** Probability for harm is high. */
+  HIGH,
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/Part.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/Part.kt
new file mode 100644
index 00000000..d4b7a930
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/Part.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+import android.graphics.Bitmap
+
+/**
+ * Interface representing data sent to and received from requests.
+ *
+ * One of:
+ * * [TextPart] representing text or string based data.
+ * * [ImagePart] representing image data.
+ * * [BlobPart] representing MIME typed binary data.
+ */
+interface Part
+
+/** Represents text or string based data sent to and received from requests. */
+class TextPart(val text: String) : Part
+
+/** Represents image data sent to and received from requests. */
+class ImagePart(val image: Bitmap) : Part
+
+/** Represents binary data with an associated MIME type sent to and received from requests. */
+class BlobPart(val mimeType: String, val blob: ByteArray) : Part
+
+/** @return The part as a [String] if it represents text, and null otherwise */
+fun Part.asTextOrNull(): String? = (this as? TextPart)?.text
+
+/** @return The part as a [Bitmap] if it represents an image, and null otherwise */
+fun Part.asImageOrNull(): Bitmap? = (this as? ImagePart)?.image
+
+/** @return The part as a [BlobPart] if it represents a blob, and null otherwise */
+fun Part.asBlobPartOrNull(): BlobPart? = this as? BlobPart
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/PromptFeedback.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/PromptFeedback.kt
new file mode 100644
index 00000000..7dc981a7
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/PromptFeedback.kt
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+/**
+ * Feedback on the prompt provided in the request.
+ *
+ * @param blockReason The reason that content was blocked, if at all.
+ * @param safetyRatings A list of relevant [SafetyRating]s.
+ */
+class PromptFeedback(
+  val blockReason: BlockReason?,
+  val safetyRatings: List<SafetyRating>,
+)
+
+/** Describes why content was blocked. */
+enum class BlockReason {
+  /** A new and not yet supported value. */
+  UNKNOWN,
+
+  /** Content was blocked for an unspecified reason. */
+  UNSPECIFIED,
+
+  /** Content was blocked for violating provided [SafetySetting]s. */
+  SAFETY,
+
+  /** Content was blocked for another reason. */
+  OTHER
+}
diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/SafetySetting.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/SafetySetting.kt
new file mode 100644
index 00000000..8f4b62c9
--- /dev/null
+++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/SafetySetting.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.type
+
+/**
+ * A configuration for a [BlockThreshold] of some [HarmCategory] allowed and blocked in responses.
+ *
+ * @param harmCategory The relevant [HarmCategory].
+ * @param threshold The threshold form harm allowable.
+ */
+class SafetySetting(val harmCategory: HarmCategory, val threshold: BlockThreshold) {}
diff --git a/generativeai/src/test/java/com/google/ai/client/generativeai/GenerativeModelTests.kt b/generativeai/src/test/java/com/google/ai/client/generativeai/GenerativeModelTests.kt
new file mode 100644
index 00000000..da0e90b6
--- /dev/null
+++ b/generativeai/src/test/java/com/google/ai/client/generativeai/GenerativeModelTests.kt
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai
+
+import com.google.ai.client.generativeai.util.commonTest
+import com.google.ai.client.generativeai.util.createResponses
+import com.google.ai.client.generativeai.util.prepareStreamingResponse
+import io.kotest.matchers.shouldBe
+import io.ktor.utils.io.close
+import io.ktor.utils.io.writeFully
+import kotlin.time.Duration.Companion.seconds
+import kotlinx.coroutines.flow.collect
+import kotlinx.coroutines.withTimeout
+import org.junit.Test
+
+internal class GenerativeModelTests {
+  private val testTimeout = 5.seconds
+
+  @Test
+  fun `(generateContentStream) emits responses as they come in`() = commonTest {
+    val response = createResponses("The", " world", " is", " a", " beautiful", " place!")
+    val bytes = prepareStreamingResponse(response)
+
+    bytes.forEach { channel.writeFully(it) }
+    val responses = model.generateContentStream()
+
+    withTimeout(testTimeout) {
+      responses.collect {
+        it.candidates.isEmpty() shouldBe false
+        channel.close()
+      }
+    }
+  }
+}
diff --git a/generativeai/src/test/java/com/google/ai/client/generativeai/StreamingSnapshotTests.kt b/generativeai/src/test/java/com/google/ai/client/generativeai/StreamingSnapshotTests.kt
new file mode 100644
index 00000000..4deb16c9
--- /dev/null
+++ b/generativeai/src/test/java/com/google/ai/client/generativeai/StreamingSnapshotTests.kt
@@ -0,0 +1,154 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai
+
+import com.google.ai.client.generativeai.type.BlockReason
+import com.google.ai.client.generativeai.type.FinishReason
+import com.google.ai.client.generativeai.type.HarmCategory
+import com.google.ai.client.generativeai.type.PromptBlockedException
+import com.google.ai.client.generativeai.type.ResponseStoppedException
+import com.google.ai.client.generativeai.type.SerializationException
+import com.google.ai.client.generativeai.type.ServerException
+import com.google.ai.client.generativeai.util.goldenStreamingFile
+import io.kotest.assertions.throwables.shouldThrow
+import io.kotest.matchers.shouldBe
+import io.ktor.http.HttpStatusCode
+import kotlin.time.Duration.Companion.seconds
+import kotlinx.coroutines.flow.collect
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.flow.toList
+import kotlinx.coroutines.withTimeout
+import org.junit.Test
+
+internal class StreamingSnapshotTests {
+  private val testTimeout = 5.seconds
+
+  @Test
+  fun `short reply`() =
+    goldenStreamingFile("success-basic-reply-short.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) {
+        val responseList = responses.toList()
+        responseList.isEmpty() shouldBe false
+        responseList.first().candidates.first().finishReason shouldBe FinishReason.STOP
+        responseList.first().candidates.first().content.parts.isEmpty() shouldBe false
+        responseList.first().candidates.first().safetyRatings.isEmpty() shouldBe false
+      }
+    }
+
+  @Test
+  fun `long reply`() =
+    goldenStreamingFile("success-basic-reply-long.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) {
+        val responseList = responses.toList()
+        responseList.isEmpty() shouldBe false
+        responseList.forEach {
+          it.candidates.first().finishReason shouldBe FinishReason.STOP
+          it.candidates.first().content.parts.isEmpty() shouldBe false
+          it.candidates.first().safetyRatings.isEmpty() shouldBe false
+        }
+      }
+    }
+
+  @Test
+  fun `unknown enum`() =
+    goldenStreamingFile("success-unknown-enum.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) {
+        responses.first {
+          it.candidates.any { it.safetyRatings.any { it.category == HarmCategory.UNKNOWN } }
+        }
+      }
+    }
+
+  @Test
+  fun `quotes escaped`() =
+    goldenStreamingFile("success-quotes-escaped.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) {
+        val responseList = responses.toList()
+
+        responseList.isEmpty() shouldBe false
+        responseList.first().text!!.contains("\"")
+      }
+    }
+
+  @Test
+  fun `prompt blocked for safety`() =
+    goldenStreamingFile("failure-prompt-blocked-safety.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) {
+        val exception = shouldThrow<PromptBlockedException> { responses.collect() }
+        exception.response.promptFeedback?.blockReason shouldBe BlockReason.SAFETY
+      }
+    }
+
+  @Test
+  fun `empty content`() =
+    goldenStreamingFile("failure-empty-content.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) { shouldThrow<SerializationException> { responses.collect() } }
+    }
+
+  @Test
+  fun `http errors`() =
+    goldenStreamingFile("failure-http-error.txt", HttpStatusCode.PreconditionFailed) {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) { shouldThrow<ServerException> { responses.collect() } }
+    }
+
+  @Test
+  fun `stopped for safety`() =
+    goldenStreamingFile("failure-finish-reason-safety.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) {
+        val exception = shouldThrow<ResponseStoppedException> { responses.collect() }
+        exception.response.candidates.first().finishReason shouldBe FinishReason.SAFETY
+      }
+    }
+
+  @Test
+  fun `citation parsed correctly`() =
+    goldenStreamingFile("success-citations.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) {
+        val responseList = responses.toList()
+        responseList.any { it.candidates.any { it.citationMetadata.isNotEmpty() } } shouldBe true
+      }
+    }
+
+  @Test
+  fun `stopped for recitation`() =
+    goldenStreamingFile("failure-recitation-no-content.txt") {
+      val responses = model.generateContentStream()
+
+      withTimeout(testTimeout) {
+        val exception = shouldThrow<ResponseStoppedException> { responses.collect() }
+        exception.response.candidates.first().finishReason shouldBe FinishReason.RECITATION
+      }
+    }
+}
diff --git a/generativeai/src/test/java/com/google/ai/client/generativeai/UnarySnapshotTests.kt b/generativeai/src/test/java/com/google/ai/client/generativeai/UnarySnapshotTests.kt
new file mode 100644
index 00000000..5713a6d3
--- /dev/null
+++ b/generativeai/src/test/java/com/google/ai/client/generativeai/UnarySnapshotTests.kt
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai
+
+import com.google.ai.client.generativeai.type.BlockReason
+import com.google.ai.client.generativeai.type.FinishReason
+import com.google.ai.client.generativeai.type.HarmCategory
+import com.google.ai.client.generativeai.type.PromptBlockedException
+import com.google.ai.client.generativeai.type.ResponseStoppedException
+import com.google.ai.client.generativeai.type.SerializationException
+import com.google.ai.client.generativeai.type.ServerException
+import com.google.ai.client.generativeai.util.goldenUnaryFile
+import io.kotest.assertions.throwables.shouldThrow
+import io.kotest.matchers.should
+import io.kotest.matchers.shouldBe
+import io.ktor.http.HttpStatusCode
+import kotlin.time.Duration.Companion.seconds
+import kotlinx.coroutines.withTimeout
+import org.junit.Test
+
+internal class UnarySnapshotTests {
+  private val testTimeout = 5.seconds
+
+  @Test
+  fun `short reply`() =
+    goldenUnaryFile("success-basic-reply-short.json") {
+      withTimeout(testTimeout) {
+        val response = model.generateContent()
+
+        response.candidates.isEmpty() shouldBe false
+        response.candidates.first().finishReason shouldBe FinishReason.STOP
+        response.candidates.first().content.parts.isEmpty() shouldBe false
+        response.candidates.first().safetyRatings.isEmpty() shouldBe false
+      }
+    }
+
+  @Test
+  fun `long reply`() =
+    goldenUnaryFile("success-basic-reply-long.json") {
+      withTimeout(testTimeout) {
+        val response = model.generateContent()
+
+        response.candidates.isEmpty() shouldBe false
+        response.candidates.first().finishReason shouldBe FinishReason.STOP
+        response.candidates.first().content.parts.isEmpty() shouldBe false
+        response.candidates.first().safetyRatings.isEmpty() shouldBe false
+      }
+    }
+
+  @Test
+  fun `unknown enum`() =
+    goldenUnaryFile("success-unknown-enum.json") {
+      withTimeout(testTimeout) {
+        val response = model.generateContent()
+
+        response.candidates.first { it.safetyRatings.any { it.category == HarmCategory.UNKNOWN } }
+      }
+    }
+
+  @Test
+  fun `prompt blocked for safety`() =
+    goldenUnaryFile("failure-prompt-blocked-safety.json") {
+      withTimeout(testTimeout) {
+        shouldThrow<PromptBlockedException> { model.generateContent() } should
+          {
+            it.response.promptFeedback?.blockReason shouldBe BlockReason.SAFETY
+          }
+      }
+    }
+
+  @Test
+  fun `empty content`() =
+    goldenUnaryFile("failure-empty-content.json") {
+      withTimeout(testTimeout) { shouldThrow<SerializationException> { model.generateContent() } }
+    }
+
+  @Test
+  fun `http error`() =
+    goldenUnaryFile("failure-http-error.json", HttpStatusCode.PreconditionFailed) {
+      withTimeout(testTimeout) { shouldThrow<ServerException> { model.generateContent() } }
+    }
+
+  @Test
+  fun `stopped for safety`() =
+    goldenUnaryFile("failure-finish-reason-safety.json") {
+      withTimeout(testTimeout) {
+        val exception = shouldThrow<ResponseStoppedException> { model.generateContent() }
+        exception.response.candidates.first().finishReason shouldBe FinishReason.SAFETY
+      }
+    }
+
+  @Test
+  fun `citation returns correctly`() =
+    goldenUnaryFile("success-citation.json") {
+      withTimeout(testTimeout) {
+        val response = model.generateContent()
+
+        response.candidates.isEmpty() shouldBe false
+        response.candidates.first().citationMetadata.isNotEmpty() shouldBe true
+      }
+    }
+
+  @Test
+  fun `invalid response`() =
+    goldenUnaryFile("failure-invalid-response.json") {
+      withTimeout(testTimeout) { shouldThrow<SerializationException> { model.generateContent() } }
+    }
+
+  @Test
+  fun `malformed content`() =
+    goldenUnaryFile("failure-malformed-content.json") {
+      withTimeout(testTimeout) { shouldThrow<SerializationException> { model.generateContent() } }
+    }
+}
diff --git a/generativeai/src/test/java/com/google/ai/client/generativeai/util/kotlin.kt b/generativeai/src/test/java/com/google/ai/client/generativeai/util/kotlin.kt
new file mode 100644
index 00000000..259f72eb
--- /dev/null
+++ b/generativeai/src/test/java/com/google/ai/client/generativeai/util/kotlin.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.ai.client.generativeai.util
+
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.runBlocking
+
+/**
+ * Runs the given [block] using [runBlocking] on the current thread for side effect.
+ *
+ * Using this function is like [runBlocking] with default context (which runs the given block on the
+ * calling thread) but forces the return type to be `Unit`, which is helpful when implementing
+ * suspending tests as expression functions:
+ * ```
+ * @Test
+ * fun myTest() = doBlocking {...}
+ * ```
+ */
+internal fun doBlocking(block: suspend CoroutineScope.() -> Unit) {
+  runBlocking(block = block)
+}
diff --git a/generativeai/src/test/java/com/google/ai/client/generativeai/util/tests.kt b/generativeai/src/test/java/com/google/ai/client/generativeai/util/tests.kt
new file mode 100644
index 00000000..fe498754
--- /dev/null
+++ b/generativeai/src/test/java/com/google/ai/client/generativeai/util/tests.kt
@@ -0,0 +1,175 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:Suppress("DEPRECATION") // a replacement for our purposes has not been published yet
+
+package com.google.ai.client.generativeai.util
+
+import com.google.ai.client.generativeai.GenerativeModel
+import com.google.ai.client.generativeai.internal.api.APIController
+import com.google.ai.client.generativeai.internal.api.GenerateContentRequest
+import com.google.ai.client.generativeai.internal.api.GenerateContentResponse
+import com.google.ai.client.generativeai.internal.api.JSON
+import com.google.ai.client.generativeai.internal.api.server.Candidate
+import com.google.ai.client.generativeai.internal.api.shared.Content
+import com.google.ai.client.generativeai.internal.api.shared.TextPart
+import com.google.ai.client.generativeai.internal.util.SSE_SEPARATOR
+import com.google.ai.client.generativeai.internal.util.send
+import io.ktor.client.engine.mock.MockEngine
+import io.ktor.client.engine.mock.respond
+import io.ktor.http.HttpHeaders
+import io.ktor.http.HttpStatusCode
+import io.ktor.http.headersOf
+import io.ktor.utils.io.ByteChannel
+import io.ktor.utils.io.close
+import io.ktor.utils.io.writeFully
+import java.io.File
+import kotlinx.coroutines.launch
+import kotlinx.serialization.encodeToString
+
+internal fun prepareStreamingResponse(response: List<GenerateContentResponse>): List<ByteArray> =
+  response.map { "data: ${JSON.encodeToString(it)}$SSE_SEPARATOR".toByteArray() }
+
+internal fun prepareResponse(response: GenerateContentResponse) =
+  JSON.encodeToString(response).toByteArray()
+
+internal fun createRequest(vararg text: String): GenerateContentRequest {
+  val contents = text.map { Content(parts = listOf(TextPart(it))) }
+
+  return GenerateContentRequest("gemini", contents)
+}
+
+internal fun createResponse(text: String) = createResponses(text).single()
+
+internal fun createResponses(vararg text: String): List<GenerateContentResponse> {
+  val candidates = text.map { Candidate(Content(parts = listOf(TextPart(it)))) }
+
+  return candidates.map { GenerateContentResponse(candidates = listOf(it)) }
+}
+
+/**
+ * Wrapper around common instances needed in tests.
+ *
+ * @param channel A [ByteChannel] for sending responses through the mock HTTP engine
+ * @param model A [GenerativeModel] that consumes the [channel]
+ * @see commonTest
+ * @see send
+ */
+internal data class CommonTestScope(val channel: ByteChannel, val model: GenerativeModel)
+
+/** A test that runs under a [CommonTestScope]. */
+internal typealias CommonTest = suspend CommonTestScope.() -> Unit
+
+/**
+ * Common test block for providing a [CommonTestScope] during tests.
+ *
+ * Example usage:
+ * ```
+ * @Test
+ * fun `(generateContent) generates a proper response`() = commonTest {
+ *   val request = createRequest("say something nice")
+ *   val response = createResponse("The world is a beautiful place!")
+ *
+ *   channel.send(prepareResponse(response))
+ *
+ *   withTimeout(testTimeout) {
+ *     val data = controller.generateContent(request)
+ *     data.candidates.shouldNotBeEmpty()
+ *   }
+ * }
+ * ```
+ *
+ * @param status An optional [HttpStatusCode] to return as a response
+ * @param block The test contents themselves, with the [CommonTestScope] implicitly provided
+ * @see CommonTestScope
+ */
+internal fun commonTest(status: HttpStatusCode = HttpStatusCode.OK, block: CommonTest) =
+  doBlocking {
+    val channel = ByteChannel(autoFlush = true)
+    val mockEngine = MockEngine {
+      respond(channel, status, headersOf(HttpHeaders.ContentType, "application/json"))
+    }
+    val controller = APIController("super_cool_test_key", "gemini-pro", mockEngine)
+    val model = GenerativeModel("gemini-pro", "super_cool_test_key", controller = controller)
+    CommonTestScope(channel, model).block()
+  }
+
+/**
+ * A variant of [commonTest] for performing *streaming-based* snapshot tests.
+ *
+ * Loads the *Golden File* and automatically parses the messages from it; providing it to the
+ * channel.
+ *
+ * @param name The name of the *Golden File* to load
+ * @param httpStatusCode An optional [HttpStatusCode] to return as a response
+ * @param block The test contents themselves, with a [CommonTestScope] implicitly provided
+ * @see goldenUnaryFile
+ */
+internal fun goldenStreamingFile(
+  name: String,
+  httpStatusCode: HttpStatusCode = HttpStatusCode.OK,
+  block: CommonTest
+) = doBlocking {
+  val goldenFile = loadGoldenFile("streaming/$name")
+  val messages = goldenFile.readLines().filter { it.isNotBlank() }
+
+  commonTest(httpStatusCode) {
+    launch {
+      for (message in messages) {
+        channel.writeFully("$message$SSE_SEPARATOR".toByteArray())
+      }
+      channel.close()
+    }
+
+    block()
+  }
+}
+
+/**
+ * A variant of [commonTest] for performing snapshot tests.
+ *
+ * Loads the *Golden File* and automatically provides it to the channel.
+ *
+ * @param name The name of the *Golden File* to load
+ * @param httpStatusCode An optional [HttpStatusCode] to return as a response
+ * @param block The test contents themselves, with a [CommonTestScope] implicitly provided
+ * @see goldenStreamingFile
+ */
+internal fun goldenUnaryFile(
+  name: String,
+  httpStatusCode: HttpStatusCode = HttpStatusCode.OK,
+  block: CommonTest
+) =
+  commonTest(httpStatusCode) {
+    val goldenFile = loadGoldenFile("unary/$name")
+    val message = goldenFile.readText()
+
+    channel.send(message.toByteArray())
+
+    block()
+  }
+
+/**
+ * Loads a *Golden File* from the resource directory.
+ *
+ * Expects golden files to live under `golden-files` in the resource files.
+ *
+ * @see goldenUnaryFile
+ */
+internal fun loadGoldenFile(path: String): File = loadResourceFile("golden-files/$path")
+
+/** Loads a file from the test resources directory. */
+internal fun loadResourceFile(path: String) = File("src/test/resources/$path")
diff --git a/generativeai/src/test/resources/golden-files/streaming/failure-empty-content.txt b/generativeai/src/test/resources/golden-files/streaming/failure-empty-content.txt
new file mode 100644
index 00000000..5762b515
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/failure-empty-content.txt
@@ -0,0 +1 @@
+data: {"candidates": [{"content": {},"index": 0}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}
diff --git a/generativeai/src/test/resources/golden-files/streaming/failure-finish-reason-safety.txt b/generativeai/src/test/resources/golden-files/streaming/failure-finish-reason-safety.txt
new file mode 100644
index 00000000..05e09361
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/failure-finish-reason-safety.txt
@@ -0,0 +1,2 @@
+data: {"candidates": [{"content": {"parts": [{"text": "<redacted>"}],"role": "model"},"finishReason": "SAFETY","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "HIGH"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}
+
diff --git a/generativeai/src/test/resources/golden-files/streaming/failure-http-error.txt b/generativeai/src/test/resources/golden-files/streaming/failure-http-error.txt
new file mode 100644
index 00000000..9179f6cc
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/failure-http-error.txt
@@ -0,0 +1,13 @@
+{
+  "error": {
+  "code": 400,
+  "message": "$grpcMessage",
+  "status": "FAILED_PRECONDITION",
+  "details": [
+  {
+    "@type": "type.googleapis.com/google.rpc.DebugInfo",
+    "detail": "[ORIGINAL ERROR] generic::failed_precondition: User location is not supported for the API use. [google.rpc.error_details_ext] { message: \"User location is not supported for the API use.\" }"
+  }
+  ]
+}
+}
\ No newline at end of file
diff --git a/generativeai/src/test/resources/golden-files/streaming/failure-prompt-blocked-safety.txt b/generativeai/src/test/resources/golden-files/streaming/failure-prompt-blocked-safety.txt
new file mode 100644
index 00000000..58c914af
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/failure-prompt-blocked-safety.txt
@@ -0,0 +1,2 @@
+data: {"promptFeedback": {"blockReason": "SAFETY","safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "HIGH"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}
+
diff --git a/generativeai/src/test/resources/golden-files/streaming/failure-recitation-no-content.txt b/generativeai/src/test/resources/golden-files/streaming/failure-recitation-no-content.txt
new file mode 100644
index 00000000..6d69b64e
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/failure-recitation-no-content.txt
@@ -0,0 +1,6 @@
+data: {"candidates": [{"content": {"parts": [{"text": "PLACEHOLDER"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}
+
+data: {"candidates": [{"content": {"parts": [{"text": "PLACEHOLDER"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "LOW"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citationSources": [{"startIndex": 30,"endIndex": 179,"uri": "https://example.com","license": ""}]}}]}
+
+data: {"candidates": [{"finishReason": "RECITATION","index": 0}]}
+
diff --git a/generativeai/src/test/resources/golden-files/streaming/success-basic-reply-long.txt b/generativeai/src/test/resources/golden-files/streaming/success-basic-reply-long.txt
new file mode 100644
index 00000000..268f75d7
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/success-basic-reply-long.txt
@@ -0,0 +1,12 @@
+data: {"candidates": [{"content": {"parts": [{"text": "**Cats:**\n\n1. **Anatomy and Appearance:**\n   - Cats have"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}
+
+data: {"candidates": [{"content": {"parts": [{"text": " flexible bodies with a long tail, sharp retractable claws, and soft fur.\n   - Their eyes are adapted for low-light conditions and have a vertical slit"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": "-like pupil.\n   - Cats come in a wide variety of breeds, each with distinct physical characteristics.\n\n2. **Behavior and Personality:**\n   - Cats are known for their independence and solitary nature.\n   - They are often described as aloof and mysterious, but they can also be affectionate and playful."}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": "\n   - Cats are territorial and communicate through body language, vocalizations, and scent marking.\n\n3. **Diet and Nutrition:**\n   - Cats are obligate carnivores, meaning they require animal-based protein for survival.\n   - Their diet should consist primarily of high-quality cat food that meets their nutritional needs.\n   - Cats are prone to obesity, so portion control and regular exercise are important.\n\n4. **Health and Care:**\n   - Cats require regular veterinary checkups, vaccinations, and parasite control.\n   - They should be brushed regularly to prevent matting and shedding.\n   - Providing"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": " a clean litter box and fresh water is essential for their well-being.\n\n5. **Lifespan:**\n   - The average lifespan of a cat is 12-15 years, although some cats can live longer with proper care.\n\n**Dogs:**\n\n1. **Anatomy and Appearance:**\n   - Dogs have a diverse range of sizes, shapes, and coat types depending on their breed.\n   - They have strong jaws with sharp teeth adapted for chewing and tearing.\n   - Dogs' ears are typically floppy or erect and can be used to express emotions.\n\n2. **Behavior and Personality:**\n   - Dogs are known for their loyalty, companionship, and trainability.\n   - They are social animals that thrive on human interaction and form strong bonds with their owners.\n   - Dogs communicate through barking, whining, growling, and body language.\n\n3. **Diet and Nutrition:**\n   - Dogs are omnivores and can eat a variety of foods, including meat, grains, fruits, and vegetables.\n   - Their diet should be balanced and meet their nutritional requirements based on age, size, and activity level.\n   - Obesity is a common problem in dogs, so portion control and exercise are important.\n\n4"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": ". **Health and Care:**\n   - Dogs require regular veterinary checkups, vaccinations, and parasite control.\n   - They should be brushed regularly to maintain a healthy coat and prevent shedding.\n   - Providing adequate exercise, mental stimulation, and socialization is essential for their well-being.\n\n5. **Lifespan:**\n   - The average lifespan of a dog varies depending on breed, size, and overall health.\n   - Smaller breeds tend to live longer than larger breeds, with an average lifespan of 10-15 years."}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
diff --git a/generativeai/src/test/resources/golden-files/streaming/success-basic-reply-short.txt b/generativeai/src/test/resources/golden-files/streaming/success-basic-reply-short.txt
new file mode 100644
index 00000000..b3c07628
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/success-basic-reply-short.txt
@@ -0,0 +1,2 @@
+data: {"candidates": [{"content": {"parts": [{"text": "Cheyenne"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}
+
diff --git a/generativeai/src/test/resources/golden-files/streaming/success-citations.txt b/generativeai/src/test/resources/golden-files/streaming/success-citations.txt
new file mode 100644
index 00000000..3bb76e3d
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/success-citations.txt
@@ -0,0 +1,12 @@
+data: {"candidates": [{"content": {"parts": [{"text": "placeholder"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}
+
+data: {"candidates": [{"content": {"parts": [{"text": "placeholder"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": "placeholder"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": "placeholder"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citationSources": [{"startIndex": 574,"endIndex": 705,"uri": "https://example.com","license": ""},{"startIndex": 899,"endIndex": 1026,"uri": "https://example.com","license": ""}]}}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": "placeholder"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citationSources": [{"startIndex": 574,"endIndex": 705,"uri": "https://example.com","license": ""},{"startIndex": 899,"endIndex": 1026,"uri": "https://example.com","license": ""}]}}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": "placeholder"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citationSources": [{"startIndex": 574,"endIndex": 705,"uri": "https://example.com","license": ""},{"startIndex": 899,"endIndex": 1026,"uri": "https://example.com","license": ""}]}}]}
+
diff --git a/generativeai/src/test/resources/golden-files/streaming/success-quotes-escaped.txt b/generativeai/src/test/resources/golden-files/streaming/success-quotes-escaped.txt
new file mode 100644
index 00000000..0c48e4c4
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/success-quotes-escaped.txt
@@ -0,0 +1,7 @@
+data: {"candidates": [{"content": {"parts": [{"text": " Pineapples and bananas are two different types of fruit. Pineapples grow on a"}]},"index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_TOXICITY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUAL","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_VIOLENCE","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DEROGATORY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_TOXICITY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUAL","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_VIOLENCE","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DEROGATORY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS","probability": "NEGLIGIBLE"}]}}
+
+data: {"candidates": [{"content": {"parts": [{"text": " tropical plant with a rosette of long, pointed leaves. Bananas grow on a herbaceous"}]},"index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_TOXICITY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUAL","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_VIOLENCE","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DEROGATORY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": " plant with large, broad leaves. The two plants are not related, and pin"}]},"index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_TOXICITY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUAL","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_VIOLENCE","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DEROGATORY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": "eapples do not grow on banana plants."}]},"index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_TOXICITY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUAL","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_VIOLENCE","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DEROGATORY","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS","probability": "NEGLIGIBLE"}]}]}
diff --git a/generativeai/src/test/resources/golden-files/streaming/success-unknown-enum.txt b/generativeai/src/test/resources/golden-files/streaming/success-unknown-enum.txt
new file mode 100644
index 00000000..0f3da8eb
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/streaming/success-unknown-enum.txt
@@ -0,0 +1,11 @@
+data: {"candidates": [{"content": {"parts": [{"text": "**Cats:**\n\n- **Physical Characteristics:**\n  - Size: Cats come"}]},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}
+
+data: {"candidates": [{"content": {"parts": [{"text": " in a wide range of sizes, from small breeds like the Singapura to large breeds like the Maine Coon.\n  - Fur: Cats have soft, furry coats"}]},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": " that can vary in length and texture depending on the breed.\n  - Eyes: Cats have large, expressive eyes that can be various colors, including green, blue, yellow, and hazel.\n  - Ears: Cats have pointed, erect ears that are sensitive to sound.\n  - Tail: Cats have long"}]},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": ", flexible tails that they use for balance and communication.\n\n- **Behavior and Personality:**\n  - Independent: Cats are often described as independent animals that enjoy spending time alone.\n  - Affectionate: Despite their independent nature, cats can be very affectionate and form strong bonds with their owners.\n  - Playful: Cats are naturally playful and enjoy engaging in activities such as chasing toys, climbing, and pouncing.\n  - Curious: Cats are curious creatures that love to explore their surroundings.\n  - Vocal: Cats communicate through a variety of vocalizations, including meows, purrs, hisses, and grow"}]},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": "ls.\n\n- **Health and Care:**\n  - Diet: Cats are obligate carnivores, meaning they require animal-based protein for optimal health.\n  - Grooming: Cats spend a significant amount of time grooming themselves to keep their fur clean and free of mats.\n  - Exercise: Cats need regular exercise to stay healthy and active. This can be achieved through play sessions or access to outdoor space.\n  - Veterinary Care: Regular veterinary checkups are essential for maintaining a cat's health and detecting any potential health issues early on.\n\n**Dogs:**\n\n- **Physical Characteristics:**\n  - Size: Dogs come in a wide range of sizes, from small breeds like the Chihuahua to giant breeds like the Great Dane.\n  - Fur: Dogs have fur coats that can vary in length, texture, and color depending on the breed.\n  - Eyes: Dogs have expressive eyes that can be various colors, including brown, blue, green, and hazel.\n  - Ears: Dogs have floppy or erect ears that are sensitive to sound.\n  - Tail: Dogs have long, wagging tails that they use for communication and expressing emotions.\n\n- **Behavior and Personality:**\n  - Loyal: Dogs are known for their loyalty and"}]},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
+
+data: {"candidates": [{"content": {"parts": [{"text": " devotion to their owners.\n  - Friendly: Dogs are generally friendly and outgoing animals that enjoy interacting with people and other animals.\n  - Playful: Dogs are playful and energetic creatures that love to engage in activities such as fetching, running, and playing with toys.\n  - Trainable: Dogs are highly trainable and can learn a variety of commands and tricks.\n  - Vocal: Dogs communicate through a variety of vocalizations, including barking, howling, whining, and growling.\n\n- **Health and Care:**\n  - Diet: Dogs are omnivores and can eat a variety of foods, including meat, vegetables, and grains.\n  - Grooming: Dogs require regular grooming to keep their fur clean and free of mats. The frequency of grooming depends on the breed and coat type.\n  - Exercise: Dogs need regular exercise to stay healthy and active. The amount of exercise required varies depending on the breed and age of the dog.\n  - Veterinary Care: Regular veterinary checkups are essential for maintaining a dog's health and detecting any potential health issues early on."}]},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT_NEW_ENUM","probability": "NEGLIGIBLE_UNKNOWN_ENUM"}]}]}
diff --git a/generativeai/src/test/resources/golden-files/unary/failure-empty-content.json b/generativeai/src/test/resources/golden-files/unary/failure-empty-content.json
new file mode 100644
index 00000000..4e188966
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/failure-empty-content.json
@@ -0,0 +1,28 @@
+{
+  "candidates": [
+    {
+      "content": {},
+      "index": 0
+    }
+  ],
+  "promptFeedback": {
+    "safetyRatings": [
+      {
+        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HATE_SPEECH",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HARASSMENT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+        "probability": "NEGLIGIBLE"
+      }
+    ]
+  }
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/failure-finish-reason-safety.json b/generativeai/src/test/resources/golden-files/unary/failure-finish-reason-safety.json
new file mode 100644
index 00000000..111e33de
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/failure-finish-reason-safety.json
@@ -0,0 +1,54 @@
+{
+  "candidates": [
+    {
+      "content": {
+        "parts": [
+          {
+            "text": "<redacted>"
+          }
+        ],
+        "role": "model"
+      },
+      "finishReason": "SAFETY",
+      "index": 0,
+      "safetyRatings": [
+        {
+          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HATE_SPEECH",
+          "probability": "HIGH"
+        },
+        {
+          "category": "HARM_CATEGORY_HARASSMENT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+          "probability": "NEGLIGIBLE"
+        }
+      ]
+    }
+  ],
+  "promptFeedback": {
+    "safetyRatings": [
+      {
+        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HATE_SPEECH",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HARASSMENT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+        "probability": "NEGLIGIBLE"
+      }
+    ]
+  }
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/failure-http-error.json b/generativeai/src/test/resources/golden-files/unary/failure-http-error.json
new file mode 100644
index 00000000..9179f6cc
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/failure-http-error.json
@@ -0,0 +1,13 @@
+{
+  "error": {
+  "code": 400,
+  "message": "$grpcMessage",
+  "status": "FAILED_PRECONDITION",
+  "details": [
+  {
+    "@type": "type.googleapis.com/google.rpc.DebugInfo",
+    "detail": "[ORIGINAL ERROR] generic::failed_precondition: User location is not supported for the API use. [google.rpc.error_details_ext] { message: \"User location is not supported for the API use.\" }"
+  }
+  ]
+}
+}
\ No newline at end of file
diff --git a/generativeai/src/test/resources/golden-files/unary/failure-invalid-response.json b/generativeai/src/test/resources/golden-files/unary/failure-invalid-response.json
new file mode 100644
index 00000000..49d05e18
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/failure-invalid-response.json
@@ -0,0 +1,14 @@
+{
+  "this": [
+    {
+      "is": {
+        "not": [
+          {
+            "a": "valid"
+          }
+        ]
+      },
+      "response": {}
+    }
+  ]
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/failure-malformed-content.json b/generativeai/src/test/resources/golden-files/unary/failure-malformed-content.json
new file mode 100644
index 00000000..737f2e08
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/failure-malformed-content.json
@@ -0,0 +1,30 @@
+{
+  "candidates": [
+    {
+      "content": {
+        "invalid-field": true
+      },
+      "index": 0
+    }
+  ],
+  "promptFeedback": {
+    "safetyRatings": [
+      {
+        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HATE_SPEECH",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HARASSMENT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+        "probability": "NEGLIGIBLE"
+      }
+    ]
+  }
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/failure-prompt-blocked-safety.json b/generativeai/src/test/resources/golden-files/unary/failure-prompt-blocked-safety.json
new file mode 100644
index 00000000..9d2abbb2
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/failure-prompt-blocked-safety.json
@@ -0,0 +1,23 @@
+{
+  "promptFeedback": {
+    "blockReason": "SAFETY",
+    "safetyRatings": [
+      {
+        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HATE_SPEECH",
+        "probability": "HIGH"
+      },
+      {
+        "category": "HARM_CATEGORY_HARASSMENT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+        "probability": "NEGLIGIBLE"
+      }
+    ]
+  }
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/success-basic-reply-long.json b/generativeai/src/test/resources/golden-files/unary/success-basic-reply-long.json
new file mode 100644
index 00000000..8a7f3cd3
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/success-basic-reply-long.json
@@ -0,0 +1,54 @@
+{
+  "candidates": [
+    {
+      "content": {
+        "parts": [
+          {
+            "text": "1. **Use Freshly Ground Coffee**:\n   - Grind your coffee beans just before brewing to preserve their flavor and aroma.\n   - Use a burr grinder for a consistent grind size.\n\n2. **Choose the Right Water**:\n   - Use filtered or spring water for the best taste.\n   - Avoid using tap water, as it may contain impurities that can affect the flavor.\n\n3. **Measure Accurately**:\n   - Use a kitchen scale to measure your coffee and water precisely.\n   - A general rule of thumb is to use 1:16 ratio of coffee to water (e.g., 15 grams of coffee to 240 grams of water).\n\n4. **Preheat Your Equipment**:\n   - Preheat your coffee maker or espresso machine before brewing to ensure a consistent temperature.\n\n5. **Control the Water Temperature**:\n   - The ideal water temperature for brewing coffee is between 195°F (90°C) and 205°F (96°C).\n   - Too hot water can extract bitter flavors, while too cold water won't extract enough flavor.\n\n6. **Steep the Coffee**:\n   - For drip coffee, let the water slowly drip through the coffee grounds for optimal extraction.\n   - For espresso, maintain a steady pressure and flow rate during the extraction process.\n\n7. **Clean Your Equipment**:\n   - Regularly clean your coffee maker or espresso machine to remove any residual oils or coffee grounds that can affect the taste.\n\n8. **Experiment with Different Coffee Beans**:\n   - Try different coffee beans from various regions and roasts to find your preferred flavor profile.\n\n9. **Store Coffee Properly**:\n   - Store your coffee beans in an airtight container in a cool, dark place to preserve their freshness.\n\n10. **Enjoy Freshly Brewed Coffee**:\n    - Drink your coffee as soon as possible after brewing to savor its peak flavor and aroma."
+          }
+        ],
+        "role": "model"
+      },
+      "finishReason": "STOP",
+      "index": 0,
+      "safetyRatings": [
+        {
+          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HATE_SPEECH",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HARASSMENT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+          "probability": "NEGLIGIBLE"
+        }
+      ]
+    }
+  ],
+  "promptFeedback": {
+    "safetyRatings": [
+      {
+        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HATE_SPEECH",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HARASSMENT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+        "probability": "NEGLIGIBLE"
+      }
+    ]
+  }
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/success-basic-reply-short.json b/generativeai/src/test/resources/golden-files/unary/success-basic-reply-short.json
new file mode 100644
index 00000000..40a9a6da
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/success-basic-reply-short.json
@@ -0,0 +1,54 @@
+{
+  "candidates": [
+    {
+      "content": {
+        "parts": [
+          {
+            "text": "Mountain View, California, United States"
+          }
+        ],
+        "role": "model"
+      },
+      "finishReason": "STOP",
+      "index": 0,
+      "safetyRatings": [
+        {
+          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HATE_SPEECH",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HARASSMENT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+          "probability": "NEGLIGIBLE"
+        }
+      ]
+    }
+  ],
+  "promptFeedback": {
+    "safetyRatings": [
+      {
+        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HATE_SPEECH",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HARASSMENT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+        "probability": "NEGLIGIBLE"
+      }
+    ]
+  }
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/success-citation.json b/generativeai/src/test/resources/golden-files/unary/success-citation.json
new file mode 100644
index 00000000..2a765ace
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/success-citation.json
@@ -0,0 +1,70 @@
+{
+  "candidates": [
+    {
+      "content": {
+        "parts": [
+          {
+            "text": "placeholder"
+          }
+        ],
+        "role": "model"
+      },
+      "finishReason": "STOP",
+      "index": 0,
+      "safetyRatings": [
+        {
+          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HATE_SPEECH",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HARASSMENT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+          "probability": "NEGLIGIBLE"
+        }
+      ],
+      "citationMetadata": {
+        "citationSources": [
+          {
+            "startIndex": 574,
+            "endIndex": 705,
+            "uri": "https://example.com/",
+            "license": ""
+          },
+          {
+            "startIndex": 899,
+            "endIndex": 1026,
+            "uri": "https://example.com/",
+            "license": ""
+          }
+        ]
+      }
+    }
+  ],
+  "promptFeedback": {
+    "safetyRatings": [
+      {
+        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HATE_SPEECH",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HARASSMENT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+        "probability": "NEGLIGIBLE"
+      }
+    ]
+  }
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/success-quote-reply.json b/generativeai/src/test/resources/golden-files/unary/success-quote-reply.json
new file mode 100644
index 00000000..f1e5331e
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/success-quote-reply.json
@@ -0,0 +1,54 @@
+{
+  "candidates": [
+    {
+      "content": {
+        "parts": [
+          {
+            "text": "1. \"The greatest glory in living lies not in never falling, but in rising every time we fall.\" - Nelson Mandela\n2. \"The future belongs to those who believe in the beauty of their dreams.\" - Eleanor Roosevelt\n3. \"It does not matter how slow you go so long as you do not stop.\" - Confucius\n4. \"If you want to live a happy life, tie it to a goal, not to people or things.\" - Albert Einstein\n5. \"The only person you are destined to become is the person you decide to be.\" - Ralph Waldo Emerson\n6. \"It's not how much you have, but how much you enjoy that makes happiness.\" - Charles Spurgeon\n7. \"The greatest wealth is to live content with little.\" - Plato\n8. \"The only way to do great work is to love what you do.\" - Steve Jobs\n9. \"Don't be afraid to fail. Be afraid not to try.\" - Michael Jordan\n10. \"The best way to predict the future is to create it.\" - Abraham Lincoln"
+          }
+        ],
+        "role": "model"
+      },
+      "finishReason": "STOP",
+      "index": 0,
+      "safetyRatings": [
+        {
+          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HATE_SPEECH",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_HARASSMENT",
+          "probability": "NEGLIGIBLE"
+        },
+        {
+          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+          "probability": "NEGLIGIBLE"
+        }
+      ]
+    }
+  ],
+  "promptFeedback": {
+    "safetyRatings": [
+      {
+        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HATE_SPEECH",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_HARASSMENT",
+        "probability": "NEGLIGIBLE"
+      },
+      {
+        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+        "probability": "NEGLIGIBLE"
+      }
+    ]
+  }
+}
diff --git a/generativeai/src/test/resources/golden-files/unary/success-unknown-enum.json b/generativeai/src/test/resources/golden-files/unary/success-unknown-enum.json
new file mode 100644
index 00000000..b27a11ae
--- /dev/null
+++ b/generativeai/src/test/resources/golden-files/unary/success-unknown-enum.json
@@ -0,0 +1,52 @@
+{
+    "candidates": [
+        {
+            "content": {
+                "parts": [
+                    {
+                        "text": "1. **Use Freshly Ground Coffee**:\n   - Grind your coffee beans just before brewing to preserve their flavor and aroma.\n   - Use a burr grinder for a consistent grind size.\n\n\n2. **Choose the Right Water**:\n   - Use filtered or spring water for the best taste.\n   - Avoid using tap water, as it may contain impurities that can affect the flavor.\n\n\n3. **Measure Accurately**:\n   - Use a kitchen scale to measure your coffee and water precisely.\n   - A general rule of thumb is to use 1:16 ratio of coffee to water (e.g., 15 grams of coffee to 240 grams of water).\n\n\n4. **Preheat Your Equipment**:\n   - Preheat your coffee maker or espresso machine before brewing to ensure a consistent temperature.\n\n\n5. **Control the Water Temperature**:\n   - The ideal water temperature for brewing coffee is between 195°F (90°C) and 205°F (96°C).\n   - Too hot water can extract bitter flavors, while too cold water won't extract enough flavor.\n\n\n6. **Steep the Coffee**:\n   - For drip coffee, let the water slowly drip through the coffee grounds for optimal extraction.\n   - For pour-over coffee, pour the water in a circular motion over the coffee grounds, allowing it to steep for 30-45 seconds before continuing.\n\n\n7. **Clean Your Equipment**:\n   - Regularly clean your coffee maker or espresso machine to prevent the buildup of oils and residue that can affect the taste of your coffee.\n\n\n8. **Experiment with Different Coffee Beans**:\n   - Try different coffee beans from various regions and roasts to find your preferred flavor profile.\n   - Experiment with different grind sizes and brewing methods to optimize the flavor of your chosen beans.\n\n\n9. **Store Coffee Properly**:\n   - Store your coffee beans in an airtight container in a cool, dark place to preserve their freshness and flavor.\n   - Avoid storing coffee in the refrigerator or freezer, as this can cause condensation and affect the taste.\n\n\n10. **Enjoy Freshly Brewed Coffee**:\n    - Drink your coffee as soon as possible after brewing to enjoy its peak flavor and aroma.\n    - Coffee starts to lose its flavor and aroma within 30 minutes of brewing."
+                    }
+                ]
+            },
+            "index": 0,
+            "safetyRatings": [
+                {
+                    "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT_ENUM_NEW",
+                    "probability": "NEGLIGIBLE"
+                },
+                {
+                    "category": "HARM_CATEGORY_HATE_SPEECH",
+                    "probability": "NEGLIGIBLE"
+                },
+                {
+                    "category": "HARM_CATEGORY_HARASSMENT",
+                    "probability": "NEGLIGIBLE"
+                },
+                {
+                    "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
+                    "probability": "NEGLIGIBLE"
+                }
+            ]
+        }
+    ],
+    "promptFeedback": {
+        "safetyRatings": [
+            {
+                "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
+                "probability": "NEGLIGIBLE"
+            },
+            {
+                "category": "HARM_CATEGORY_HATE_SPEECH",
+                "probability": "NEGLIGIBLE"
+            },
+            {
+                "category": "HARM_CATEGORY_HARASSMENT",
+                "probability": "NEGLIGIBLE"
+            },
+            {
+                "category": "HARM_CATEGORY_DANGEROUS_CONTENT_LIKE_A_NEW_ENUM",
+                "probability": "NEGLIGIBLE_NEW_ENUM"
+            }
+        ]
+    }
+}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 00000000..c0123bf7
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,25 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Kotlin code style for this project: "official" or "obsolete":
+kotlin.code.style=official
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
+# No currently stable versions of AGP are tested against compileSdk 34
+android.suppressUnsupportedCompileSdk=34
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f
GIT binary patch
literal 59203
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
E2O(~oYXATM

literal 0
HcmV?d00001

diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..95644b24
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Nov 06 13:03:44 PST 2023
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755
index 00000000..4f906e0c
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=`expr $i + 1`
+    done
+    case $i in
+        0) set -- ;;
+        1) set -- "$args0" ;;
+        2) set -- "$args0" "$args1" ;;
+        3) set -- "$args0" "$args1" "$args2" ;;
+        4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 00000000..ac1b06f9
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem      https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/licenses/APACHE-2.0 b/licenses/APACHE-2.0
new file mode 100644
index 00000000..38c92ab3
--- /dev/null
+++ b/licenses/APACHE-2.0
@@ -0,0 +1,15 @@
+/*
+ * Copyright ${YEAR} Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
diff --git a/plugins/README.md b/plugins/README.md
new file mode 100644
index 00000000..fe6e91db
--- /dev/null
+++ b/plugins/README.md
@@ -0,0 +1,74 @@
+# Plugins
+
+This composite module houses the gradle plugins that are used in the main SDK; to assist in a 
+number of monotonous tasks. You can read more on these plugins and the tasks they create below.
+
+## ChangelogPlugin
+
+Creates and manages changelog files. These files are used to signify changes made to the repo that
+should invoke a release, alongside text to display in the release notes at release time.
+
+Change files are (by default) created under the `.changes` directory at the root of the repo.
+These files are json encoded variants of a [Changelog](./src/main/java/com/google/gradle/types/Changelog.kt) instance- 
+which is just an organization of what impact the change had (will it invoke a patch, minor, or 
+major bump?) and an (optional) end-user readable message to show alongside the other changes at 
+release time. By default, the files are saved as a random sequence of four words (to avoid 
+collisions).
+
+During a release cycle, the `.changes` directory will be filled with change files. When it comes to
+release time, these changes will be combined into a single `release_notes.md` file that contains
+all the changes made- in a consumable format. After a release, the `.changes` directory will be
+wiped, and the cycle will continue.
+
+To assist in this endeavour, the ChangelogPlugin registers an internal plugin and a few tasks:
+
+### APIPlugin
+
+An internal plugin (automatically added, and cannot be explicitly applied) that facilitates the
+generation of `.api` files.
+
+#### Tasks
+
+The APIPlugin registers the two following tasks to facilitate this process:
+
+- [buildApi](./src/main/java/com/google/gradle/plugins/ApiPlugin.kt) -> Creates a `.api` file 
+containing the public API of the project.
+- [updateApi](./src/main/java/com/google/gradle/plugins/ApiPlugin.kt) -> Updates (or creates) the 
+`public.api` file at the project directory; keeping track of the currently released/public api. 
+
+### Tasks
+
+The ChangelogPlugin registers the four following tasks:
+
+- [findChanges](./src/main/java/com/google/gradle/tasks/FindChangesTask.kt) -> Creates a new `.api` 
+file for the current project, and compares it to the existing `public.api` to create a diff of 
+changes made to the public api.
+- [makeChange](./src/main/java/com/google/gradle/tasks/MakeChangeTask.kt) -> Creates a new `.json` 
+file in the `.changes` directory with an optional message, including the version impact inferred 
+from `findChanges`.
+- [warnAboutApiChanges](./src/main/java/com/google/gradle/tasks/WarnAboutApiChangesTask.kt) -> If 
+`findChanges` finds changes that will have version implications, this task will create a 
+`api_changes.md` in the root project's build directory, with a message to display to the developer 
+regarding what they changed, and the impact it will have on the public API. If no public API changes 
+are found, this task will just skip itself.
+- [deleteChangeFiles](./src/main/java/com/google/gradle/tasks/MakeReleaseNotesTask.kt) -> Deletes 
+all the change files in the `.changes` directory, intended to be used after the release notes have 
+been created- or otherwise during a cleanup stage of the release.
+- [makeReleaseNotes](./src/main/java/com/google/gradle/tasks/MakeReleaseNotesTask.kt) -> Creates a 
+`release_notes.md` in the root project's build directory, containing a collection of all the changes 
+in the `.changes` directory; including the new project version at the top of file (inferred from the 
+highest impact change).
+
+
+## LicensePlugin
+
+Handles the checking and adding of license headers to the top of all source files.
+
+### Tasks
+
+The LicensePlugin registers the two following tasks to facilitate this process:
+
+- [validateLicense](./src/main/java/com/google/gradle/tasks/ValidateLicenseTask.kt) -> Validate that 
+a license header in present in a set of files.
+- [ApplyLicenseTask](./src/main/java/com/google/gradle/tasks/ApplyLicenseTask.kt) -> Applies a 
+license header to a set of files.
diff --git a/plugins/build.gradle.kts b/plugins/build.gradle.kts
new file mode 100644
index 00000000..55bed7c0
--- /dev/null
+++ b/plugins/build.gradle.kts
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+plugins {
+    `java-library`
+    `java-gradle-plugin`
+    `kotlin-dsl`
+    kotlin("jvm") version "1.8.22"
+    id("com.ncorti.ktfmt.gradle") version "0.15.1"
+    id("org.jetbrains.kotlinx.binary-compatibility-validator") version "0.13.2"
+    kotlin("plugin.serialization") version "1.9.0"
+}
+
+ktfmt {
+    googleStyle()
+}
+
+kotlin {
+    jvmToolchain(17)
+    compilerOptions {
+        freeCompilerArgs.add("-Xcontext-receivers")
+    }
+}
+
+gradlePlugin {
+    plugins {
+        register("license-plugin") {
+            id = "license-plugin"
+            implementationClass = "com.google.gradle.plugins.LicensePlugin"
+        }
+        register("changelog-plugin") {
+            id = "changelog-plugin"
+            implementationClass = "com.google.gradle.plugins.ChangelogPlugin"
+        }
+    }
+}
+
+dependencies {
+    implementation("com.android.tools.build:gradle:8.1.3")
+    implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22")
+    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
+    implementation("org.jetbrains.kotlinx.binary-compatibility-validator:org.jetbrains.kotlinx.binary-compatibility-validator.gradle.plugin:0.13.2")
+}
diff --git a/plugins/settings.gradle.kts b/plugins/settings.gradle.kts
new file mode 100644
index 00000000..f57dedd8
--- /dev/null
+++ b/plugins/settings.gradle.kts
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+pluginManagement {
+    repositories {
+        google()
+        mavenCentral()
+        gradlePluginPortal()
+    }
+}
+
+dependencyResolutionManagement {
+    repositories {
+        google()
+        mavenCentral()
+    }
+}
+
+rootProject.name = "plugins"
diff --git a/plugins/src/main/java/com/google/gradle/plugins/ApiPlugin.kt b/plugins/src/main/java/com/google/gradle/plugins/ApiPlugin.kt
new file mode 100644
index 00000000..a2dc2b26
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/plugins/ApiPlugin.kt
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.plugins
+
+import com.google.gradle.util.android
+import com.google.gradle.util.release
+import com.google.gradle.util.tempFile
+import java.io.File
+import kotlinx.validation.KotlinApiBuildTask
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.Copy
+import org.gradle.api.tasks.Optional
+import org.gradle.kotlin.dsl.create
+import org.gradle.kotlin.dsl.register
+
+/**
+ * A Gradle plugin for creating `.api` files; representing the public API of the project.
+ *
+ * By default, a `public.api` file (at the root of the project) will be used as a base for the
+ * released api.
+ *
+ * Registers two tasks:
+ * - `buildApi` -> creates a `.api` file containing the *current* public API of the project.
+ * - `updateApi` -> updates the `public.api` file at the project root to match the one generated by
+ *   `buildApi`; effectively saying that the released api is up to date with the current repo state.
+ *
+ * @see ApiPluginExtension
+ * @see ChangelogPluginExtension
+ */
+abstract class ApiPlugin : Plugin<Project> {
+  override fun apply(project: Project) {
+    with(project) {
+      val extension = extensions.create<ApiPluginExtension>("api").apply { commonConfiguration() }
+
+      val buildApi = registerBuildApiTask()
+
+      tasks.register<Copy>("updateApi") {
+        val fileName = extension.apiFile.map { it.name }
+        val filePath = extension.apiFile.map { it.parent }
+
+        from(buildApi)
+        into(filePath)
+
+        rename { fileName.get() }
+      }
+    }
+  }
+
+  private fun Project.registerBuildApiTask() =
+    tasks.register<KotlinApiBuildTask>("buildApi") {
+      val classes = provider { android.release.output.classesDirs }
+
+      inputClassesDirs = files(classes)
+      inputDependencies = files(classes)
+      outputApiDir = tempFile("api").get()
+    }
+
+  context(Project)
+  private fun ApiPluginExtension.commonConfiguration() {
+    apiFile.convention(file("public.api"))
+  }
+}
+
+/**
+ * Extension properties for the [ApiPlugin].
+ *
+ * @property apiFile The file to reference as (and save to) in regards to the publicly released api.
+ */
+abstract class ApiPluginExtension {
+  @get:Optional abstract val apiFile: Property<File>
+}
diff --git a/plugins/src/main/java/com/google/gradle/plugins/ChangelogPlugin.kt b/plugins/src/main/java/com/google/gradle/plugins/ChangelogPlugin.kt
new file mode 100644
index 00000000..e3285b70
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/plugins/ChangelogPlugin.kt
@@ -0,0 +1,144 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.plugins
+
+import com.google.gradle.tasks.FindChangesTask
+import com.google.gradle.tasks.MakeChangeTask
+import com.google.gradle.tasks.MakeReleaseNotesTask
+import com.google.gradle.tasks.WarnAboutApiChangesTask
+import com.google.gradle.types.Changelog
+import com.google.gradle.types.ModuleVersion
+import com.google.gradle.types.RandomWordsGenerator
+import com.google.gradle.util.apply
+import com.google.gradle.util.buildDir
+import com.google.gradle.util.childFile
+import com.google.gradle.util.outputFile
+import com.google.gradle.util.provideProperty
+import com.google.gradle.util.tempFile
+import java.io.File
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.Delete
+import org.gradle.api.tasks.Optional
+import org.gradle.kotlin.dsl.apply
+import org.gradle.kotlin.dsl.create
+import org.gradle.kotlin.dsl.getByType
+import org.gradle.kotlin.dsl.register
+import org.gradle.kotlin.dsl.support.listFilesOrdered
+
+/**
+ * A Gradle plugin for managing and creating [Changelog] files.
+ *
+ * By default, the root `.changes` directory will be used to save change files.
+ *
+ * Will also register the [ApiPlugin] if it's not already present, as it will handle the actual
+ * generation of the API files.
+ *
+ * Registers four tasks:
+ * - `findChanges`
+ * - `makeChange`
+ * - `warnAboutApiChanges`
+ * - `deleteChangeFiles`
+ * - `makeReleaseNotes`
+ *
+ * You can learn more about these tasks by visiting their respective docs below.
+ *
+ * @see ChangelogPluginExtension
+ * @see FindChangesTask
+ * @see MakeChangeTask
+ * @see WarnAboutApiChangesTask
+ * @see MakeReleaseNotesTask
+ */
+abstract class ChangelogPlugin : Plugin<Project> {
+  override fun apply(project: Project) {
+    with(project) {
+      val extension =
+        extensions.create<ChangelogPluginExtension>("changelog").apply { commonConfiguration() }
+      val releasedApiFile = apiPlugin.apiFile
+      val newApiFile = tasks.named("buildApi").outputFile
+
+      val findChanges =
+        tasks.register<FindChangesTask>("findChanges") {
+          old.set(releasedApiFile)
+          new.set(newApiFile)
+          outputFile.set(tempFile("changes"))
+        }
+
+      val fileChanges = findChanges.outputFile
+
+      tasks.register<MakeChangeTask>("makeChange") {
+        val changeMessage = provideProperty<String>("changeMessage")
+        val changeName = RandomWordsGenerator.generateString()
+        val changeOutput = extension.outputDirectory.childFile("$changeName.json")
+
+        changesFile.set(fileChanges)
+        message.set(changeMessage)
+        outputFile.set(changeOutput)
+      }
+
+      tasks.register<WarnAboutApiChangesTask>("warnAboutApiChanges") {
+        changesFile.set(fileChanges)
+        outputFile.set(rootProject.buildDir("api_changes.md"))
+      }
+
+      val changelogFiles =
+        extension.outputDirectory.map { it.listFilesOrdered { it.extension == "json" } }
+
+      val deleteChangeFiles =
+        tasks.register<Delete>("deleteChangeFiles") {
+          group = "cleanup"
+
+          delete(changelogFiles)
+        }
+
+      tasks.register<MakeReleaseNotesTask>("makeReleaseNotes") {
+        onlyIf("No changelog files found") { changelogFiles.get().isNotEmpty() }
+        changeFiles.set(changelogFiles)
+        version.set(ModuleVersion.fromStringOrNull(project.version.toString()))
+        outputFile.set(rootProject.buildDir("release_notes.md"))
+
+        finalizedBy(deleteChangeFiles)
+      }
+    }
+  }
+
+  context(Project)
+  private fun ChangelogPluginExtension.commonConfiguration() {
+    outputDirectory.convention(rootProject.file(".changes"))
+  }
+}
+
+/**
+ * Extension properties for the [ChangelogPlugin].
+ *
+ * @property outputDirectory The directory into which to store the [Changelog] files
+ */
+abstract class ChangelogPluginExtension {
+  @get:Optional abstract val outputDirectory: Property<File>
+}
+
+/**
+ * Helper mapping to the [ApiPluginExtension].
+ *
+ * Automatically applies the [ApiPlugin] if not already present.
+ */
+private val Project.apiPlugin: ApiPluginExtension
+  get() {
+    plugins.apply<ApiPlugin>()
+    return extensions.getByType()
+  }
diff --git a/plugins/src/main/java/com/google/gradle/plugins/LicensePlugin.kt b/plugins/src/main/java/com/google/gradle/plugins/LicensePlugin.kt
new file mode 100644
index 00000000..7209dca7
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/plugins/LicensePlugin.kt
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.plugins
+
+import com.google.gradle.tasks.ApplyLicenseTask
+import com.google.gradle.tasks.ValidateLicenseTask
+import java.io.File
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.api.provider.ListProperty
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.Optional
+import org.gradle.kotlin.dsl.create
+import org.gradle.kotlin.dsl.register
+
+/**
+ * A Gradle plugin for managing and applying license headers to source files.
+ *
+ * By default, all files matching the `src/**/*.kt` file path pattern will be processed.
+ *
+ * Registers two tasks:
+ * - `validateLicense`
+ * - `applyLicense`
+ *
+ * You can learn more about these tasks by visiting their respective docs below.
+ *
+ * @see LicensePluginExtension
+ * @see ValidateLicenseTask
+ * @see ApplyLicenseTask
+ */
+abstract class LicensePlugin : Plugin<Project> {
+  override fun apply(project: Project) {
+    with(project) {
+      val extension =
+        extensions.create<LicensePluginExtension>("license").apply { commonConfiguration() }
+
+      val licenseTemplate = extension.template.map { it.readText() }
+      val inputFiles =
+        extension.include.map {
+          fileTree(".") {
+              include(it)
+              exclude(extension.exclude.get())
+            }
+            .files
+        }
+
+      tasks.register<ValidateLicenseTask>("validateLicense") {
+        group = "licensing"
+        files.set(inputFiles)
+        template.set(licenseTemplate)
+      }
+
+      tasks.register<ApplyLicenseTask>("applyLicense") {
+        group = "licensing"
+        files.set(inputFiles)
+        template.set(licenseTemplate)
+      }
+    }
+  }
+
+  private fun LicensePluginExtension.commonConfiguration() {
+    include.convention(listOf("src/**/*.kt"))
+    exclude.convention(listOf())
+  }
+}
+
+/**
+ * Extension properties for the [LicensePlugin].
+ *
+ * @property include Files to include in processing. Can be a file path pattern.
+ * @property exclude Files to exclude from processing. Can be a file path pattern.
+ */
+abstract class LicensePluginExtension {
+  @get:Optional abstract val include: ListProperty<String>
+  @get:Optional abstract val exclude: ListProperty<String>
+  @get:Optional abstract val template: Property<File>
+}
diff --git a/plugins/src/main/java/com/google/gradle/tasks/ApplyLicenseTask.kt b/plugins/src/main/java/com/google/gradle/tasks/ApplyLicenseTask.kt
new file mode 100644
index 00000000..e5254dc9
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/tasks/ApplyLicenseTask.kt
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.tasks
+
+import com.google.gradle.types.LicenseTemplate
+import com.google.gradle.util.submit
+import java.io.File
+import javax.inject.Inject
+import org.gradle.api.DefaultTask
+import org.gradle.api.provider.ListProperty
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.InputFiles
+import org.gradle.api.tasks.TaskAction
+import org.gradle.workers.WorkAction
+import org.gradle.workers.WorkParameters
+import org.gradle.workers.WorkerExecutor
+
+/**
+ * A Gradle task to apply a license header to a set of files.
+ *
+ * This task is idempotent and will not add the license header if already present, and preserves
+ * shebangs.
+ *
+ * Additionally, the files are processed in parallel through an injected [WorkerExecutor].
+ *
+ * @property files The files to which the license template will be applied.
+ * @property template The [LicenseTemplate] to be applied to the files.
+ */
+abstract class ApplyLicenseTask @Inject constructor(private val workerExecutor: WorkerExecutor) :
+  DefaultTask() {
+  @get:InputFiles abstract val files: ListProperty<File>
+
+  @get:Input abstract val template: Property<String>
+
+  @TaskAction
+  fun add() {
+    val queue = workerExecutor.noIsolation()
+
+    for (currentFile in files.get()) {
+      queue.submit<ApplyLicenseWorkAction, ApplyLicenseWorkParameters> {
+        file.set(currentFile)
+        license.set(template)
+      }
+    }
+  }
+}
+
+/**
+ * Parameters for the [ApplyLicenseWorkAction].
+ *
+ * @property file the file to apply the [license] to.
+ * @property license a [LicenseTemplate] to use in applying a license header.
+ */
+interface ApplyLicenseWorkParameters : WorkParameters {
+  val file: Property<File>
+  val license: Property<String>
+}
+
+/**
+ * The work action to apply a license template to an individual file.
+ *
+ * @see ApplyLicenseWorkParameters
+ * @see ApplyLicenseTask
+ */
+abstract class ApplyLicenseWorkAction : WorkAction<ApplyLicenseWorkParameters> {
+  override fun execute() {
+    val template = LicenseTemplate(parameters.license.get())
+    val file = parameters.file.get()
+
+    if (!template.matches(file)) {
+      template.applyToFile(file)
+      println("Applied license to file: ${file.name}")
+    }
+  }
+}
diff --git a/plugins/src/main/java/com/google/gradle/tasks/FindChangesTask.kt b/plugins/src/main/java/com/google/gradle/tasks/FindChangesTask.kt
new file mode 100644
index 00000000..54d09621
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/tasks/FindChangesTask.kt
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.tasks
+
+import com.google.gradle.types.LinesChanged
+import com.google.gradle.types.changedFrom
+import java.io.File
+import org.gradle.api.DefaultTask
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.InputFile
+import org.gradle.api.tasks.OutputFile
+import org.gradle.api.tasks.TaskAction
+
+/**
+ * A Gradle task to find the changes in the public api between the [old] and [new] api files.
+ *
+ * The changes are represented as [LinesChanged]; with a list of added and removed lines between the
+ * files. These are saved in `.json` format in the [outputFile].
+ *
+ * @property old the previously released api file (typically `public.api)
+ * @property new the current API pending release (generated from the state of the repo as is)
+ * @property outputFile where to save the diff to
+ */
+abstract class FindChangesTask : DefaultTask() {
+  @get:InputFile abstract val old: Property<File>
+
+  @get:InputFile abstract val new: Property<File>
+
+  @get:OutputFile abstract val outputFile: Property<File>
+
+  @TaskAction
+  fun add() {
+    val diff = old.get().changedFrom(new.get())
+
+    diff.toFile(outputFile.get())
+  }
+}
diff --git a/plugins/src/main/java/com/google/gradle/tasks/MakeChangeTask.kt b/plugins/src/main/java/com/google/gradle/tasks/MakeChangeTask.kt
new file mode 100644
index 00000000..06d84f30
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/tasks/MakeChangeTask.kt
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.tasks
+
+import com.google.gradle.types.Changelog
+import com.google.gradle.types.LinesChanged
+import com.google.gradle.types.RandomWordsGenerator
+import com.google.gradle.types.VersionType
+import java.io.File
+import org.gradle.api.DefaultTask
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.InputFile
+import org.gradle.api.tasks.Optional
+import org.gradle.api.tasks.OutputFile
+import org.gradle.api.tasks.TaskAction
+
+/**
+ * A Gradle task to create [Changelog] files.
+ *
+ * By default, the output is a `.json` file with a random sequence of four words as the file name
+ * (to avoid collisions). This file will contain the impact of the changes ([VersionType] wise), and
+ * optionally the message provided; otherwise absent.
+ *
+ * @property changesFile a file contained a [LinesChanged]; representing the changes made in this
+ *   repo
+ * @property message an optional string message to provide to the end user in the compiled
+ *   [Changelog] file; to be displayed at release time in the release notes.
+ * @property outputFile where to save the serialized [Changelog] to
+ * @see [RandomWordsGenerator]
+ */
+abstract class MakeChangeTask : DefaultTask() {
+  @get:InputFile abstract val changesFile: Property<File>
+
+  @get:[Optional Input]
+  abstract val message: Property<String>
+
+  @get:OutputFile abstract val outputFile: Property<File>
+
+  @TaskAction
+  fun add() {
+    val diff = LinesChanged.fromFile(changesFile.get())
+    val changelog = Changelog(diff.bump, listOfNotNull(message.orNull))
+
+    changelog.toFile(outputFile.get())
+  }
+}
diff --git a/plugins/src/main/java/com/google/gradle/tasks/MakeReleaseNotesTask.kt b/plugins/src/main/java/com/google/gradle/tasks/MakeReleaseNotesTask.kt
new file mode 100644
index 00000000..6c73c7e0
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/tasks/MakeReleaseNotesTask.kt
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.tasks
+
+import com.google.gradle.types.Changelog
+import com.google.gradle.types.ModuleVersion
+import com.google.gradle.types.VersionType
+import java.io.File
+import org.gradle.api.DefaultTask
+import org.gradle.api.provider.ListProperty
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.InputFiles
+import org.gradle.api.tasks.OutputFile
+import org.gradle.api.tasks.TaskAction
+
+/**
+ * A Gradle task to make the release notes for a release.
+ *
+ * By default, saved in the root project's build directory under `release_notes.md`. The release
+ * notes are a collection of all the messages provided by [changes][Changelog] before a release, in
+ * a markdown list.
+ *
+ * The markdown file will also have a header representing the version to be released, bumped from
+ * the provided [version] according to the highest impact [VersionType] from the list of changes.
+ *
+ * Note, that the version is ONLY bumped if the impact of any given change is more than a
+ * [patch][VersionType.PATCH], as the repo's current version is set to a patch bump higher than the
+ * currently released version by default to avoid cache conflicts when testing locally.
+ *
+ * @property changeFiles the [Changelog] files to use in the release
+ * @property version a [ModuleVersion] representing the current version of the project
+ * @property outputFile where to save the serialized release notes to
+ */
+abstract class MakeReleaseNotesTask : DefaultTask() {
+  @get:InputFiles abstract val changeFiles: ListProperty<File>
+
+  @get:Input abstract val version: Property<ModuleVersion>
+
+  @get:OutputFile abstract val outputFile: Property<File>
+
+  @TaskAction
+  fun add() {
+    val changelogs = changeFiles.get().map { Changelog.fromFile(it) }
+
+    val changes = changelogs.flatMap { it.changes }
+
+    val bump = changelogs.minBy { it.type.ordinal }.type
+
+    val version = if (bump >= VersionType.PATCH) version.get() else version.get().bump(bump)
+
+    outputFile
+      .get()
+      .writeText(
+        """
+            | # $version
+            | 
+            | - ${changes.joinToString("\n - ")}
+        """
+          .trimMargin()
+      )
+  }
+}
diff --git a/plugins/src/main/java/com/google/gradle/tasks/ValidateLicenseTask.kt b/plugins/src/main/java/com/google/gradle/tasks/ValidateLicenseTask.kt
new file mode 100644
index 00000000..313b1112
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/tasks/ValidateLicenseTask.kt
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.tasks
+
+import com.google.gradle.types.LicenseTemplate
+import com.google.gradle.util.submit
+import java.io.File
+import javax.inject.Inject
+import org.gradle.api.DefaultTask
+import org.gradle.api.provider.ListProperty
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.InputFiles
+import org.gradle.api.tasks.StopExecutionException
+import org.gradle.api.tasks.TaskAction
+import org.gradle.workers.WorkAction
+import org.gradle.workers.WorkParameters
+import org.gradle.workers.WorkerExecutor
+
+/**
+ * A Gradle task to validate that a license header in present in a set of files.
+ *
+ * The files are processed in parallel through an injected [WorkerExecutor].
+ *
+ * When a file is found to be missing the license header, it will throw a [StopExecutionException]
+ * with the file path. Since the files are evaluated in parallel- one file missing the license
+ * header will not cause the other files to not be processed.
+ *
+ * @property files The files to check for a license header.
+ * @property template A [LicenseTemplate] to use for checking if a license header is present.
+ */
+abstract class ValidateLicenseTask @Inject constructor(private val workerExecutor: WorkerExecutor) :
+  DefaultTask() {
+  @get:InputFiles abstract val files: ListProperty<File>
+
+  @get:Input abstract val template: Property<String>
+
+  @TaskAction
+  fun add() {
+    val queue = workerExecutor.noIsolation()
+
+    for (currentFile in files.get()) {
+      queue.submit<ValidateLicenseWorkAction, ValidateLicenseWorkParameters> {
+        file.set(currentFile)
+        license.set(template)
+      }
+    }
+  }
+}
+
+/**
+ * Parameters for the [ValidateLicenseWorkAction].
+ *
+ * @property file the file to check for a license header in.
+ * @property license a [LicenseTemplate] to use for checking if a license header is present.
+ */
+interface ValidateLicenseWorkParameters : WorkParameters {
+  val file: Property<File>
+  val license: Property<String>
+}
+
+/**
+ * The work action to verify a license header is present in an individual file.
+ *
+ * @throws StopExecutionException if a file is missing a license header
+ * @see ValidateLicenseWorkParameters
+ * @see ValidateLicenseTask
+ */
+abstract class ValidateLicenseWorkAction : WorkAction<ValidateLicenseWorkParameters> {
+  override fun execute() {
+    val template = LicenseTemplate(parameters.license.get())
+    val file = parameters.file.get()
+
+    if (!template.matches(file)) {
+      throw StopExecutionException("File is missing a license header: ${file.canonicalPath}")
+    }
+  }
+}
diff --git a/plugins/src/main/java/com/google/gradle/tasks/WarnAboutApiChangesTask.kt b/plugins/src/main/java/com/google/gradle/tasks/WarnAboutApiChangesTask.kt
new file mode 100644
index 00000000..fa44f40a
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/tasks/WarnAboutApiChangesTask.kt
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.tasks
+
+import com.google.gradle.types.LinesChanged
+import com.google.gradle.types.VersionType.*
+import com.google.gradle.util.SkipTask
+import java.io.File
+import org.gradle.api.DefaultTask
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.InputFile
+import org.gradle.api.tasks.OutputFile
+import org.gradle.api.tasks.TaskAction
+
+/**
+ * A Gradle task to warn about API changes made during development.
+ *
+ * By default, saved in the root project's build directory under `api_changes.md`. The task uses the
+ * provided [changesFile] to infer if merging the changes currently present in the repo will have an
+ * impact on the public api.
+ *
+ * This should help developers avoid accidentally leaking internal implementation details into the
+ * public API, and causing breaking changes without noticing.
+ *
+ * The generated message is intended to be safe to display straight to the developer.
+ *
+ * If no public api changes are found, then no message will be generated and the task will skip
+ * itself.
+ *
+ * @property changesFile a file contained a [LinesChanged]; representing the changes made in this
+ *   repo
+ * @property outputFile where to save the warning message to
+ * @throws SkipTask if no public api changes are found
+ */
+abstract class WarnAboutApiChangesTask : DefaultTask() {
+  @get:InputFile abstract val changesFile: Property<File>
+
+  @get:OutputFile abstract val outputFile: Property<File>
+
+  @TaskAction
+  fun add() {
+    val diff = LinesChanged.fromFile(changesFile.get())
+
+    val added = spoiler("APIs Added", diff.added.joinToString("\n\n") { it.trim() })
+    val removed = spoiler("APIs Removed", diff.removed.joinToString("\n\n") { it.trim() })
+
+    val message =
+      when (diff.bump) {
+        MAJOR ->
+          """
+                |You've removed things from the public API. This means your change will cause a
+                |**major** version bump during release time. If you're okay with this, you can ignore
+                |this message.
+                | 
+                |${removed.takeUnless { diff.removed.isEmpty() }.orEmpty()}
+                |${added.takeUnless { diff.added.isEmpty() }.orEmpty()}
+            """
+            .trimMargin()
+        MINOR ->
+          """
+                |You've added things to the public API. This means your change will cause a
+                |**minor** version bump during release time. If you're okay with this, you can ignore
+                |this message.
+                | 
+                |${added.takeUnless { diff.added.isEmpty() }.orEmpty()}
+            """
+            .trimMargin()
+        else -> throw SkipTask("No public api changes found")
+      }
+
+    outputFile.get().writeText(message)
+  }
+
+  private fun spoiler(title: String, content: String) =
+    """
+        |<details>
+        |<summary> $title </summary>
+        |   
+        |```
+        |$content
+        |```
+        |   
+        |</details>
+    """
+      .trimMargin()
+}
diff --git a/plugins/src/main/java/com/google/gradle/types/Changelog.kt b/plugins/src/main/java/com/google/gradle/types/Changelog.kt
new file mode 100644
index 00000000..ff2452a3
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/types/Changelog.kt
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.types
+
+import java.io.File
+import kotlinx.serialization.Serializable
+import kotlinx.serialization.encodeToString
+import kotlinx.serialization.json.Json
+
+/**
+ * A sequence of changes, to be displayed to the end user after a release.
+ *
+ * @property type the version bump implications this change has the project, represented as a
+ *   [VersionType]
+ * @property changes a list of changes made; to be displayed in the release notes
+ * @see toFile
+ * @see fromFile
+ */
+@Serializable
+data class Changelog(val type: VersionType, val changes: List<String>) {
+
+  /**
+   * Saves this instance a given file in JSON format.
+   *
+   * @param file the file to write the data to
+   */
+  fun toFile(file: File) = file.writeText(Json.encodeToString(this) + '\n')
+
+  companion object {
+
+    /**
+     * Parses a [Changelog] object from a `.json` file.
+     *
+     * @param file a `.json` file to parse from
+     */
+    fun fromFile(file: File): Changelog = Json.decodeFromString(file.readText())
+  }
+}
diff --git a/plugins/src/main/java/com/google/gradle/types/LicenseTemplate.kt b/plugins/src/main/java/com/google/gradle/types/LicenseTemplate.kt
new file mode 100644
index 00000000..28a2009a
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/types/LicenseTemplate.kt
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.types
+
+import com.google.gradle.util.appendLines
+import com.google.gradle.util.dropIf
+import com.google.gradle.util.remove
+import java.io.File
+import java.time.LocalDate
+
+/**
+ * Represents a license header template.
+ *
+ * License templates can have variables in the form of `${VARIABLE}`.
+ *
+ * When [matching a file][matches] to see if it has a license header, all variables are ignored.
+ *
+ * When [applying the license to a file][applyToFile], all variables are removed with the exception
+ * for any `${YEAR}` variables- which will be replaced with the current year provided by
+ * [LocalDate].
+ *
+ * @property template string template to use for matching license headers.
+ * @see matches
+ * @see applyToFile
+ */
+data class LicenseTemplate(val template: String) {
+
+  /** [Regex] pattern to identify template variables. */
+  private val variableRegex = """\$\{.*?}""".toRegex()
+
+  /** Compiled variant of [template] as a [Regex] pattern. */
+  private val pattern: Regex = makePattern()
+
+  /**
+   * Checks if the content of a file matches the pattern derived from the template.
+   *
+   * @param other The file whose content is to be matched against the pattern.
+   */
+  fun matches(other: File) = pattern.containsMatchIn(other.readText())
+
+  /**
+   * Applies the license template to a file. Preserves the shebang line if present and appends the
+   * processed template.
+   *
+   * @param file The file to which the template is to be applied.
+   */
+  fun applyToFile(file: File) {
+    val lines = file.readLines()
+
+    val shebang = lines.firstOrNull()?.takeIf { it.startsWith("#!") }
+    val contentWithoutShebang = lines.dropIf(shebang)
+
+    file.writeText(
+      buildString {
+        shebang?.let { appendLine(it) }
+        appendLine(prepareTemplate())
+        appendLines(contentWithoutShebang)
+      }
+    )
+  }
+
+  /**
+   * Prepares the [template] for usage in an actual file.
+   *
+   * The only feature we currently support is variable substitution, as described in
+   * [LicenseTemplate].
+   */
+  private fun prepareTemplate() =
+    template.replace("\${YEAR}", LocalDate.now().year.toString()).remove(variableRegex)
+
+  /**
+   * Converts [template] into a [Regex] pattern to be used for matching.
+   *
+   * It does this by splitting the text around any template variables (`${}`), replacing them with
+   * regex to match 0 or more words (`\w*`), and then joining the rest of the text around them as
+   * escaped regex.
+   *
+   * For example, given the input:
+   * ```
+   * Hello ${}, and good ${TIME}!
+   * ```
+   *
+   * It would create the following pattern:
+   * ```
+   * \QHello \E\w*\Q, and good \E\w*\Q!\E
+   * ```
+   *
+   * With `\Q` and `\E` wrapping string literals.
+   */
+  private fun makePattern(): Regex {
+    val parts = template.split(variableRegex)
+    val pattern = parts.joinToString("\\w*") { Regex.escape(it) }
+    return pattern.toRegex()
+  }
+}
diff --git a/plugins/src/main/java/com/google/gradle/types/LinesChanged.kt b/plugins/src/main/java/com/google/gradle/types/LinesChanged.kt
new file mode 100644
index 00000000..a97645cc
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/types/LinesChanged.kt
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.types
+
+import com.google.gradle.util.readTextOrNull
+import java.io.File
+import kotlinx.serialization.Serializable
+import kotlinx.serialization.encodeToString
+import kotlinx.serialization.json.Json
+
+/**
+ * Serializable representation of changes made to a file.
+ *
+ * Typically used for `.api` files in comparing api changes.
+ *
+ * @property added list of strings representing new lines that were added
+ * @property removed list of strings representing old lines that were deleted
+ * @property bump the version bump type calculated based on the changes.
+ * @see toFile
+ * @see fromFile
+ */
+@Serializable
+data class LinesChanged(val added: List<String>, val removed: List<String>) {
+  val bump = calculateBumpType()
+
+  /**
+   * Saves this instance a given file in JSON format.
+   *
+   * @param file the file to write the data to
+   */
+  fun toFile(file: File) = file.writeText(Json.encodeToString(this))
+
+  private fun calculateBumpType(): VersionType {
+    if (removed.isNotEmpty()) return VersionType.MAJOR
+    if (added.isNotEmpty()) return VersionType.MINOR
+
+    return VersionType.PATCH
+  }
+
+  companion object {
+
+    /**
+     * Parses a [LinesChanged] object from a `.json` file.
+     *
+     * If the file doesn't exist, or does not have any content- a [LinesChanged] with empty lists
+     * will be returned.
+     *
+     * @param file a `.json` file to parse from
+     */
+    fun fromFile(file: File): LinesChanged {
+      val content = file.readTextOrNull()
+
+      if (content.isNullOrBlank()) return LinesChanged(emptyList(), emptyList())
+
+      return Json.decodeFromString(content)
+    }
+  }
+}
+
+/**
+ * Compares the content of this file with another file and determines the changes as [LinesChanged].
+ *
+ * @param other the file to compare against
+ * @receiver File the file whose changes are to be determined from
+ */
+fun File.changedFrom(other: File): LinesChanged {
+  val myLines = readLines().filter { it.isNotBlank() }
+  val otherLines = other.readLines().filter { it.isNotBlank() }
+
+  val added = otherLines - myLines.toSet()
+  val removed = myLines - otherLines.toSet()
+
+  return LinesChanged(added, removed)
+}
diff --git a/plugins/src/main/java/com/google/gradle/types/ModuleVersion.kt b/plugins/src/main/java/com/google/gradle/types/ModuleVersion.kt
new file mode 100644
index 00000000..ad89770d
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/types/ModuleVersion.kt
@@ -0,0 +1,233 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.types
+
+import java.io.Serializable
+
+/**
+ * Possible version types in a SemVer versioning scheme.
+ *
+ * @see ModuleVersion
+ */
+enum class VersionType {
+  MAJOR,
+  MINOR,
+  PATCH,
+  PRE
+}
+
+/**
+ * Type-Safe representation of pre-release identifiers.
+ *
+ * The following priority is established, in order of newest to oldest:
+ *
+ * `RC > EAP > BETA > ALPHA`
+ *
+ * @see PreReleaseVersion
+ */
+enum class PreReleaseVersionType {
+  ALPHA,
+  BETA,
+  EAP,
+  RC
+}
+
+/**
+ * Type-Safe representation of pre-release [Versions][VersionType] for [ModuleVersion].
+ *
+ * Pre-Release versions (otherwise known as [pre][VersionType.PRE]) indicates changes that are worth
+ * releasing- but not stable enough to satisfy a full release.
+ *
+ * Pre-Release versions should be in the format of:
+ *
+ * `(Type)(Build)`
+ *
+ * Where `Type` is a case insensitive string of any [PreReleaseVersionType], and `Build` is a two
+ * digit number (single digits should have a leading zero).
+ *
+ * Note that `build` will always be present as starting at one by defalt. That is, the following
+ * transform occurs:
+ * ```
+ * "12.13.1-beta" // 12.13.1-beta01
+ * ```
+ *
+ * @property type an enum of [PreReleaseVersionType] that identifies the pre-release identifier
+ * @property build an [Int] that specifies the build number; defaults to one
+ * @see fromStringsOrNull
+ */
+data class PreReleaseVersion(val type: PreReleaseVersionType, val build: Int = 1) :
+  Comparable<PreReleaseVersion>, Serializable {
+
+  companion object {
+
+    /**
+     * Converts a string of [type] and [build] into a valid [PreReleaseVersion].
+     *
+     * To learn more about what is considered a valid string and not, take a look at
+     * [PreReleaseVersion].
+     *
+     * Example Usage:
+     * ```
+     * PreReleaseVersion.fromStringsOrNull("alpha", "6") // PreReleaseVersion(ALPHA, 6)
+     * PreReleaseVersion.fromStringsOrNull("Beta", "") // PreReleaseVersion(BETA, 1)
+     * PreReleaseVersion.fromStringsOrNull("", "13") // null
+     * ```
+     *
+     * @param type a case insensitive string of any [PreReleaseVersionType]
+     * @param build a string number; gets automatically converted to double digits, and defaults to
+     *   one if blank
+     * @return a [PreReleaseVersion] created from the string, or null if the string was invalid.
+     */
+    fun fromStringsOrNull(type: String, build: String): PreReleaseVersion? =
+      runCatching {
+          val preType = PreReleaseVersionType.valueOf(type.uppercase())
+          val buildNumber = build.takeUnless { it.isBlank() }?.toInt() ?: 1
+
+          PreReleaseVersion(preType, buildNumber)
+        }
+        .getOrNull()
+  }
+
+  override fun compareTo(other: PreReleaseVersion) =
+    compareValuesBy(this, other, { it.type }, { it.build })
+
+  /** Returns a copy of this [PreReleaseVersion], with the [build] increased by one. */
+  fun bump() = copy(build = build + 1)
+
+  /**
+   * Formatted as `TypeBuild`
+   *
+   * For example:
+   * ```
+   * PreReleaseVersion(ALPHA, 5).toString() // "alpha05"
+   * PreReleaseVersion(RC, 12).toString() // "rc12"
+   * ```
+   */
+  override fun toString() = "${type.name.lowercase()}${build.toString().padStart(2, '0')}"
+}
+
+/**
+ * Type-Safe representation of your standard [SemVer](https://semver.org/) versioning scheme.
+ *
+ * All versions should fall under your standard `MAJOR.MINOR.PATCH-PRE` format, where `PRE` is
+ * optional.
+ *
+ * To see rules about pre-release (`PRE`) formatting, see [PreReleaseVersion].
+ *
+ * @property major An update that represents breaking changes
+ * @property minor An update that represents new functionality
+ * @property patch An update that represents bug fixes
+ * @property pre An update that represents unstable changes not ready for a full release
+ * @see fromStringOrNull
+ */
+data class ModuleVersion(
+  val major: Int,
+  val minor: Int,
+  val patch: Int,
+  val pre: PreReleaseVersion? = null
+) : Comparable<ModuleVersion>, Serializable {
+
+  /** Formatted as `MAJOR.MINOR.PATCH-PRE` */
+  override fun toString() = "$major.$minor.$patch${pre?.let { "-$it" } ?: ""}"
+
+  override fun compareTo(other: ModuleVersion) =
+    compareValuesBy(
+      this,
+      other,
+      { it.major },
+      { it.minor },
+      { it.patch },
+      { it.pre == null }, // a version with no prerelease version takes precedence
+      { it.pre }
+    )
+
+  companion object {
+    /**
+     * Regex used in matching SemVer versions.
+     *
+     * The regex can be broken down as such:
+     *
+     * `(N digits).(N digits).(N digits)-(maybe letters)(maybe numbers)`
+     *
+     * For example, the following would be valid matches:
+     * ```
+     * "13.1.5" // valid
+     * "5.0.5-beta" // valid
+     * "19.45.12-rc09" // valid
+     * ```
+     *
+     * While the following would not be:
+     * ```
+     * "1.3.4-" // invalid
+     * "16.2.3-01" // invalid
+     * "5.1.c" // invalid
+     * ```
+     */
+    val VERSION_REGEX =
+      "(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)(?:\\-\\b)?(?<pre>\\w\\D+)?(?<build>\\B\\d+)?"
+        .toRegex()
+
+    /**
+     * Extrapolates the version variables from a provided [String], and turns them into a
+     * [ModuleVersion].
+     *
+     * The String should be in the format of `MAJOR.MINOR.PATCH-PRE`.
+     *
+     * ```
+     * ModuleVersion.fromString("1.2.3") // ModuleVersion(1,2,3)
+     * ModuleVersion.fromString("16.12.3-alpha") // ModuleVersion(16,12,3, ...)
+     * ModuleVersion.fromString("5.4.1-beta01") // ModuleVersion(5,4,1, ...)
+     * ModuleVersion.fromString("a.b.c") // null
+     * ```
+     *
+     * @param str a [String] that matches the SemVer format.
+     * @return a [ModuleVersion] created from the string, or null if the string was invalid.
+     */
+    fun fromStringOrNull(str: String): ModuleVersion? =
+      runCatching {
+          VERSION_REGEX.matchEntire(str)?.let {
+            val (major, minor, patch, pre, build) = it.destructured
+            ModuleVersion(
+                major.toInt(),
+                minor.toInt(),
+                patch.toInt(),
+                PreReleaseVersion.fromStringsOrNull(pre, build)
+              )
+              .takeUnless { it.pre == null && (pre.isNotEmpty() || build.isNotEmpty()) }
+          }
+        }
+        .getOrNull()
+  }
+
+  /**
+   * Returns a copy of this [ModuleVersion], with the given [VersionType] increased by one.
+   *
+   * @param version the [VersionType] to increase; defaults to the lowest valid version ([pre] else
+   *   [patch]).
+   */
+  fun bump(version: VersionType? = null) =
+    version
+      .let { it ?: if (pre != null) VersionType.PRE else VersionType.PATCH }
+      .let {
+        when (it) {
+          VersionType.MAJOR -> copy(major = major + 1, minor = 0, patch = 0)
+          VersionType.MINOR -> copy(minor = minor + 1, patch = 0)
+          VersionType.PATCH -> copy(patch = patch + 1)
+          VersionType.PRE -> copy(pre = pre?.bump())
+        }
+      }
+}
diff --git a/plugins/src/main/java/com/google/gradle/types/RandomWordsGenerator.kt b/plugins/src/main/java/com/google/gradle/types/RandomWordsGenerator.kt
new file mode 100644
index 00000000..37d70bd8
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/types/RandomWordsGenerator.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.types
+
+import com.google.gradle.util.readResourceFile
+import org.gradle.kotlin.dsl.provideDelegate
+
+/**
+ * Object for generating a sequence of random words from a preset list.
+ *
+ * Useful in avoiding file collisions, while still easily consumable file names.
+ *
+ * @see generate
+ * @see generateString
+ */
+object RandomWordsGenerator {
+
+  /**
+   * Generates a random list of words.
+   *
+   * @param wordCount how many words to generate
+   */
+  fun generate(wordCount: Int = 4): List<String> = (1..wordCount).map { words.random() }
+
+  /**
+   * Generates a file name safe string representation of a random list of words.
+   *
+   * The words will be separated by a `"-"`
+   *
+   * @param wordCount how many words to generate
+   */
+  fun generateString(wordCount: Int = 4): String = generate(wordCount).joinToString("-")
+
+  private val words by lazy { readResourceFile("/words.txt").filter { it.isNotBlank() } }
+}
diff --git a/plugins/src/main/java/com/google/gradle/util/gradle.kt b/plugins/src/main/java/com/google/gradle/util/gradle.kt
new file mode 100644
index 00000000..8c4d95a9
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/util/gradle.kt
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.util
+
+import java.io.File
+import org.gradle.api.DefaultTask
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.api.plugins.PluginContainer
+import org.gradle.api.provider.Provider
+import org.gradle.api.tasks.StopActionException
+import org.gradle.api.tasks.TaskProvider
+import org.gradle.kotlin.dsl.apply
+import org.gradle.kotlin.dsl.getByType
+import org.gradle.workers.WorkAction
+import org.gradle.workers.WorkParameters
+import org.gradle.workers.WorkQueue
+import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
+import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
+import org.jetbrains.kotlin.gradle.utils.provider
+
+/** Creates a file [Provider] mapped for the build directory. */
+fun Project.buildDir(path: String) = layout.buildDirectory.asFile.childFile(path)
+
+/**
+ * Submits a piece of work to be executed asynchronously.
+ *
+ * More Kotlin friendly variant of the existing [WorkQueue.submit]
+ *
+ * Syntax sugar for:
+ * ```kotlin
+ * submit(T::class.java, paramAction)
+ * ```
+ */
+inline fun <reified T : WorkAction<C>, C : WorkParameters> WorkQueue.submit(
+  noinline action: C.() -> Unit
+) {
+  submit(T::class.java, action)
+}
+
+/**
+ * Maps a file provider to another file provider as a sub directory.
+ *
+ * Syntax sugar for:
+ * ```
+ * fileProvider.map { File("${it.path}/$path") }
+ * ```
+ */
+fun Provider<File>.childFile(path: String) = map { File("${it.path}/$path") }
+
+/**
+ * Returns a new [File] under the given sub directory.
+ *
+ * Syntax sugar for:
+ * ```
+ * File("$path/$childPath")
+ * ```
+ */
+fun File.childFile(childPath: String) = File("$path/$childPath")
+
+/**
+ * Provides a temporary file for use during the task.
+ *
+ * Creates a file under the [temporaryDir][DefaultTask.getTemporaryDir] of the task, and should be
+ * preferred to defining an explicit [File]. This will allow Gradle to make better optimizations on
+ * our part, and helps us avoid edge-case scenarios like conflicting file names.
+ */
+fun DefaultTask.tempFile(path: String): Provider<File> =
+  project.provider { temporaryDir.childFile(path) }
+
+/**
+ * Syntax sugar for:
+ * ```kotlin
+ * plugins.apply(T::class)
+ * ```
+ */
+inline fun <reified T : Plugin<*>> PluginContainer.apply() = apply(T::class)
+
+/**
+ * Represents an exception used to skip a Gradle task.
+ *
+ * Provides a more semantic way to refer to [StopActionException] when skipping tasks; as folks seem
+ * to infer from the exception name that it stops *all* execution- when that's not the case.
+ */
+typealias SkipTask = StopActionException
+
+/**
+ * Retrieves the output file of a Gradle task, as a [Provider].
+ *
+ * Allows for easy access to the primary output file of a task, when tasks output a directory
+ * instead of a single file. It filters out directories and returns the first file in the task's
+ * outputs.
+ */
+val TaskProvider<*>.outputFile: Provider<File>
+  get() = map { it.outputs.files.asFileTree.first { !it.isDirectory } }
+
+/** The Android extension specific for Kotlin projects within Gradle. */
+val Project.android: KotlinAndroidProjectExtension
+  get() = extensions.getByType<KotlinAndroidProjectExtension>()
+
+/**
+ * The `"release"` compilation target of a Kotlin Android project.
+ *
+ * In non android projects, this would be referred to as the main source set.
+ */
+val KotlinAndroidProjectExtension.release: KotlinJvmAndroidCompilation
+  get() = target.compilations.getByName("release")
+
+/**
+ * Provides a project property as the specified type, or null otherwise.
+ *
+ * Utilizing a safe cast, an attempt is made to cast the project property (if found) to the receiver
+ * type. Should this cast fail, the resulting value will be null.
+ *
+ * Keep in mind that is provided lazily via a [Provider], so evaluation does not occur until the
+ * value is needed.
+ *
+ * @param property the name of the property to look for
+ */
+inline fun <reified T> Project.provideProperty(property: String) = provider {
+  findProperty(property) as? T
+}
diff --git a/plugins/src/main/java/com/google/gradle/util/kotlin.kt b/plugins/src/main/java/com/google/gradle/util/kotlin.kt
new file mode 100644
index 00000000..4c0ceee2
--- /dev/null
+++ b/plugins/src/main/java/com/google/gradle/util/kotlin.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.gradle.util
+
+import java.io.File
+
+/* Replaces all matching substrings with an empty string (nothing) */
+fun String.remove(regex: Regex) = replace(regex, "")
+
+/**
+ * Conditionally drops the first element of the list if the provided value is null.
+ *
+ * @param T The type of elements in the list.
+ * @param V The type of the value to be checked.
+ * @param value The value to check against.
+ */
+fun <T, V> List<T>.dropIf(value: V?) = takeUnless { value != null } ?: drop(1)
+
+/**
+ * Appends a list of strings to a [StringBuilder], each on a new line.
+ *
+ * @param lines A list of strings to be appended.
+ */
+fun StringBuilder.appendLines(lines: List<String>) = appendLine(lines.joinToString("\n"))
+
+/** Reads the text from a file in the resource directory. */
+fun readResourceFile(path: String): List<String> {
+  return object {}.javaClass.getResourceAsStream(path)?.bufferedReader()?.use { it.readLines() }
+    ?: throw RuntimeException("Couldn't find resource file: $path")
+}
+
+/** Reads the text from a file if it exists, otherwise returns null. */
+fun File.readTextOrNull(): String? = takeIf { exists() }?.readText()
diff --git a/plugins/src/main/resources/words.txt b/plugins/src/main/resources/words.txt
new file mode 100644
index 00000000..b636add7
--- /dev/null
+++ b/plugins/src/main/resources/words.txt
@@ -0,0 +1,251 @@
+account
+achiever
+actor
+addition
+adjustment
+advertisement
+advice
+aftermath
+agreement
+airplane
+airport
+alarm
+amount
+amusement
+angle
+animal
+answer
+ant
+apparatus
+apparel
+apple
+appliance
+approval
+arch
+argument
+arithmetic
+arm
+army
+art
+attack
+attempt
+attention
+attraction
+aunt
+authority
+baby
+back
+badge
+bag
+bait
+balance
+ball
+balloon
+banana
+band
+base
+baseball
+basket
+basketball
+bat
+bath
+battle
+bead
+beam
+bean
+bear
+beast
+bed
+bedroom
+bee
+beef
+beetle
+beggar
+beginner
+behavior
+belief
+believe
+bell
+berry
+bike
+bird
+birth
+birthday
+bit
+bite
+blade
+blood
+blow
+board
+boat
+body
+bomb
+bone
+book
+boot
+border
+bottle
+boundary
+box
+boy
+brain
+brake
+branch
+brass
+bread
+breakfast
+breath
+brick
+bridge
+brother
+brush
+bubble
+bucket
+building
+bulb
+bun
+burn
+burst
+business
+butto
+cabbage
+cable
+cactus
+cake
+cakes
+calculator
+calendar
+camera
+camp
+can
+cannon
+canvas
+cap
+caption
+car
+card
+carpenter
+carriage
+cart
+cast
+cat
+cattle
+cause
+cave
+celery
+cellar
+cemetery
+cent
+chain
+chair
+chalk
+chance
+change
+channel
+cheese
+cherry
+chess
+chicken
+children
+chin
+church
+circle
+clam
+clock
+cloth
+cloud
+clover
+club
+coach
+coal
+coast
+coat
+cobweb
+coil
+collar
+color
+comb
+comfort
+committee
+company
+competition
+condition
+connection
+control
+cook
+copper
+copy
+cord
+cork
+corn
+cough
+country
+cover
+cow
+crack
+cracker
+crate
+crayon
+cream
+creator
+creature
+credit
+crib
+crime
+crook
+crow
+crowd
+crown
+crush
+cry
+cub
+cup
+current
+curtain
+curve
+cushion
+dad
+daughter
+day
+death
+debt
+decision
+deer
+degree
+design
+desire
+desk
+destruction
+detail
+development
+digestion
+dime
+dinner
+dinosaurs
+direction
+dirt
+discovery
+discussion
+disease
+disgust
+distance
+distribution
+division
+dock
+doctor
+dog
+dogs
+doll
+donkey
+door
+downtown
+drain
+drawer
+dress
+drink
+driving
+drop
+drug
+drum
+duck
+dust
diff --git a/settings.gradle.kts b/settings.gradle.kts
new file mode 100644
index 00000000..44f363aa
--- /dev/null
+++ b/settings.gradle.kts
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+pluginManagement {
+    repositories {
+        google()
+        mavenCentral()
+        gradlePluginPortal()
+    }
+}
+dependencyResolutionManagement {
+    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+    repositories {
+        google()
+        mavenCentral()
+    }
+}
+
+rootProject.name = "generativeai"
+include(":generativeai")
+includeBuild("./plugins")