├── .github ├── dependabot.yml └── workflows │ └── dependabot-auto-merge.yml ├── .gitignore ├── LICENSE ├── README.md ├── evi ├── evi-flutter │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── analysis_options.yaml │ ├── android │ │ ├── .gitignore │ │ ├── app │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ ├── debug │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── kotlin │ │ │ │ │ └── com │ │ │ │ │ │ └── example │ │ │ │ │ │ └── evi_example │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ └── res │ │ │ │ │ ├── drawable-v21 │ │ │ │ │ └── launch_background.xml │ │ │ │ │ ├── drawable │ │ │ │ │ └── launch_background.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── values-night │ │ │ │ │ └── styles.xml │ │ │ │ │ └── values │ │ │ │ │ └── styles.xml │ │ │ │ └── profile │ │ │ │ └── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ └── gradle-wrapper.properties │ │ └── settings.gradle │ ├── audio │ │ ├── .gitignore │ │ ├── .metadata │ │ ├── ios │ │ │ ├── .gitignore │ │ │ ├── Assets │ │ │ │ └── .gitkeep │ │ │ ├── Classes │ │ │ │ ├── AudioPlugin.swift │ │ │ │ ├── Microphone.swift │ │ │ │ └── SoundPlayer.swift │ │ │ ├── Resources │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ └── audio.podspec │ │ ├── lib │ │ │ ├── audio.dart │ │ │ ├── audio_method_channel.dart │ │ │ ├── audio_platform_interface.dart │ │ │ └── dart_audio.dart │ │ ├── pubspec.yaml │ │ └── test │ │ │ ├── audio_method_channel_test.dart │ │ │ └── audio_test.dart │ ├── host-audio-screenshot.png │ ├── ios │ │ ├── .gitignore │ │ ├── Flutter │ │ │ ├── AppFrameworkInfo.plist │ │ │ ├── Debug.xcconfig │ │ │ └── Release.xcconfig │ │ ├── Podfile │ │ ├── Runner.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── Runner.xcscheme │ │ ├── Runner.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ ├── Runner │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ │ └── LaunchImage.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchImage.png │ │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ │ └── README.md │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ └── Runner-Bridging-Header.h │ │ ├── RunnerTests │ │ │ └── RunnerTests.swift │ │ └── build │ │ │ └── ios │ │ │ └── XCBuildData │ │ │ └── PIFCache │ │ │ └── workspace │ │ │ └── WORKSPACE@v11_hash=(null)_subobjects=4483c0dac1d2a63621e8a5d74e580a19-json │ ├── lib │ │ ├── chat_card.dart │ │ ├── evi_message.dart │ │ ├── main.dart │ │ └── theme.dart │ ├── pubspec.yaml │ ├── test │ │ └── widget_test.dart │ └── web │ │ ├── favicon.png │ │ ├── icons │ │ ├── Icon-192.png │ │ ├── Icon-512.png │ │ ├── Icon-maskable-192.png │ │ └── Icon-maskable-512.png │ │ ├── index.html │ │ └── manifest.json ├── evi-next-js-app-router-quickstart │ ├── .env.example │ ├── .eslintrc.json │ ├── .gitignore │ ├── .prettierrc.json │ ├── README.md │ ├── app │ │ ├── error.tsx │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx │ ├── components.json │ ├── components │ │ ├── Chat.tsx │ │ ├── Controls.tsx │ │ ├── Expressions.tsx │ │ ├── Messages.tsx │ │ ├── MicFFT.tsx │ │ ├── Nav.tsx │ │ ├── StartCall.tsx │ │ ├── logos │ │ │ ├── GitHub.tsx │ │ │ └── Hume.tsx │ │ └── ui │ │ │ ├── button.tsx │ │ │ └── toggle.tsx │ ├── package-lock.json │ ├── package.json │ ├── pnpm-lock.yaml │ ├── postcss.config.mjs │ ├── preview.png │ ├── public │ │ ├── next.svg │ │ └── vercel.svg │ ├── tailwind.config.ts │ ├── tsconfig.json │ └── utils │ │ ├── expressionColors.ts │ │ ├── getHumeAccessToken.ts │ │ └── index.ts ├── evi-next-js-function-calling │ ├── .env.example │ ├── .eslintrc.json │ ├── .gitignore │ ├── .prettierrc.json │ ├── README.md │ ├── app │ │ ├── api │ │ │ └── fetchWeather │ │ │ │ └── route.ts │ │ ├── error.tsx │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx │ ├── components.json │ ├── components │ │ ├── Chat.tsx │ │ ├── Controls.tsx │ │ ├── Expressions.tsx │ │ ├── Messages.tsx │ │ ├── MicFFT.tsx │ │ ├── Nav.tsx │ │ ├── StartCall.tsx │ │ ├── logos │ │ │ ├── GitHub.tsx │ │ │ └── Hume.tsx │ │ └── ui │ │ │ ├── button.tsx │ │ │ └── toggle.tsx │ ├── package-lock.json │ ├── package.json │ ├── pnpm-lock.yaml │ ├── postcss.config.mjs │ ├── preview.png │ ├── public │ │ ├── next.svg │ │ └── vercel.svg │ ├── tailwind.config.ts │ ├── tsconfig.json │ └── utils │ │ ├── expressionColors.ts │ │ ├── fetchWeather.ts │ │ ├── getHumeAccessToken.ts │ │ └── index.ts ├── evi-next-js-pages-router-quickstart │ ├── .env.example │ ├── .eslintrc.json │ ├── .gitignore │ ├── .prettierrc.json │ ├── README.md │ ├── components.json │ ├── components │ │ ├── Chat.tsx │ │ ├── Controls.tsx │ │ ├── Expressions.tsx │ │ ├── Messages.tsx │ │ ├── MicFFT.tsx │ │ ├── Nav.tsx │ │ ├── StartCall.tsx │ │ ├── logos │ │ │ ├── GitHub.tsx │ │ │ └── Hume.tsx │ │ └── ui │ │ │ ├── button.tsx │ │ │ └── toggle.tsx │ ├── next.config.js │ ├── package.json │ ├── pages │ │ ├── 500.tsx │ │ ├── _app.tsx │ │ ├── _document.tsx │ │ └── index.tsx │ ├── pnpm-lock.yaml │ ├── postcss.config.mjs │ ├── preview.png │ ├── public │ │ ├── favicon.ico │ │ ├── next.svg │ │ └── vercel.svg │ ├── styles │ │ └── globals.css │ ├── tailwind.config.ts │ ├── tsconfig.json │ └── utils │ │ ├── expressionColors.ts │ │ ├── getHumeAccessToken.ts │ │ └── index.ts ├── evi-prompting-examples │ ├── README.md │ ├── deeper_questions_prompt.txt │ └── default_prompt.txt ├── evi-python-chat-history │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── main.py │ ├── poetry.lock │ ├── pyproject.toml │ └── transcript_4d720063-d4ab-4407-ad22-e41079373d79.txt ├── evi-python-clm-sse │ ├── README.md │ ├── openai_sse.py │ ├── poetry.lock │ └── pyproject.toml ├── evi-python-clm-wss │ ├── LICENSE │ ├── README.md │ ├── agent.py │ ├── docs │ │ └── detailed-install-instructions-mac.md │ ├── img │ │ ├── custom-language-model-config.jpg │ │ └── custom-language-model-config.png │ ├── main.py │ ├── poetry.lock │ └── pyproject.toml ├── evi-python-function-calling │ ├── .env.example │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── main.py │ └── utils.py ├── evi-python-quickstart │ ├── .env.example │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ └── quickstart.py ├── evi-python-raw-api │ ├── .env.example │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── requirements_linux.txt │ ├── requirements_mac.txt │ └── src │ │ ├── authenticator.py │ │ ├── connection.py │ │ ├── devices.py │ │ └── main.py ├── evi-python-webhooks │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── app.py │ ├── poetry.lock │ ├── pyproject.toml │ └── utils.py ├── evi-python-wss-clm-endpoint │ ├── .dockerignore │ ├── Dockerfile │ ├── README.md │ ├── agent.py │ ├── app.py │ ├── cdk │ │ ├── README.md │ │ ├── app.py │ │ ├── cdk.json │ │ ├── cdk.out │ │ │ ├── .cache │ │ │ │ └── ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a.zip │ │ │ ├── ElizaStack.assets.json │ │ │ ├── ElizaStack.template.json │ │ │ ├── asset.689e46f5ffafa1e0f81f114b5dfd7694d2d1e291d9bd855e4f7b601d2b2403d0 │ │ │ │ ├── .dockerignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── agent.py │ │ │ │ ├── app.py │ │ │ │ ├── modal │ │ │ │ │ ├── README.md │ │ │ │ │ └── modal_app.py │ │ │ │ ├── poetry.lock │ │ │ │ └── pyproject.toml │ │ │ ├── asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a │ │ │ │ ├── __entrypoint__.js │ │ │ │ └── index.js │ │ │ ├── asset.f372550efb96be7f549f1d0346e8646080c1fe2b15c7c2e3b1dceb07b6656c54 │ │ │ │ ├── .dockerignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── agent.py │ │ │ │ ├── app.py │ │ │ │ ├── modal_app.py │ │ │ │ ├── poetry.lock │ │ │ │ └── pyproject.toml │ │ │ ├── cdk.out │ │ │ ├── manifest.json │ │ │ └── tree.json │ │ ├── cdk │ │ │ ├── __init__.py │ │ │ └── eliza_stack.py │ │ └── requirements.txt │ ├── modal │ │ ├── README.md │ │ └── modal_app.py │ ├── modal_app.py │ ├── poetry.lock │ └── pyproject.toml ├── evi-react-native │ ├── .env.example │ ├── .gitignore │ ├── .npmrc │ ├── App.tsx │ ├── README.md │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── index.ts │ ├── modules │ │ └── audio │ │ │ ├── expo-module.config.json │ │ │ ├── index.ts │ │ │ ├── ios │ │ │ ├── Audio.podspec │ │ │ ├── AudioModule.swift │ │ │ ├── Microphone.swift │ │ │ └── SoundPlayer.swift │ │ │ └── src │ │ │ ├── Audio.types.ts │ │ │ ├── AudioModule.ts │ │ │ └── AudioModule.web.ts │ ├── package.json │ └── tsconfig.json ├── evi-touchdesigner │ ├── .gitignore │ ├── HumeTD.tox │ ├── HumeTDDemo.toe │ ├── README.md │ ├── Scripts │ │ ├── HumeTD.py │ │ └── MessagePlaback.py │ ├── setup.png │ └── simple.png ├── evi-typescript-chat-history │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json ├── evi-typescript-function-calling │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── pnpm-lock.yaml │ ├── src │ │ ├── handleToolCall.ts │ │ ├── main.ts │ │ ├── styles.css │ │ └── vite-env.d.ts │ └── tsconfig.json ├── evi-typescript-quickstart │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── pnpm-lock.yaml │ ├── preview.png │ ├── public │ │ └── favicon.ico │ ├── src │ │ ├── lib │ │ │ ├── audio.ts │ │ │ ├── evi.ts │ │ │ ├── index.ts │ │ │ └── ui.ts │ │ ├── main.ts │ │ ├── styles │ │ │ └── globals.css │ │ └── vite-env.d.ts │ └── tsconfig.json ├── evi-typescript-webhooks │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── pnpm-lock.yaml │ ├── src │ │ ├── main.ts │ │ └── util.ts │ └── tsconfig.json └── evi-vue-widget │ ├── .env.example │ ├── .gitignore │ ├── .nvmrc │ ├── .vscode │ └── extensions.json │ ├── README.md │ ├── index.html │ ├── package.json │ ├── pnpm-lock.yaml │ ├── src │ ├── App.vue │ ├── components │ │ └── HumeEmbed.vue │ ├── main.ts │ ├── style.css │ └── vite-env.d.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── expression-measurement ├── batch │ ├── next-js-emotional-language │ │ ├── .env.example │ │ ├── .eslintrc.json │ │ ├── .github │ │ │ └── preview.png │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode │ │ │ └── settings.json │ │ ├── README.md │ │ ├── next.config.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── public │ │ │ └── favicon.ico │ │ ├── src │ │ │ ├── assets │ │ │ │ └── hume-logo.svg │ │ │ ├── components │ │ │ │ ├── Introduction.tsx │ │ │ │ ├── TextRender.tsx │ │ │ │ └── Tooltip.tsx │ │ │ ├── lib │ │ │ │ ├── client.ts │ │ │ │ ├── env.ts │ │ │ │ ├── mutations │ │ │ │ │ └── processTextFile.ts │ │ │ │ ├── schemas │ │ │ │ │ └── index.ts │ │ │ │ └── utils.ts │ │ │ ├── pages │ │ │ │ ├── _app.tsx │ │ │ │ ├── _document.tsx │ │ │ │ ├── api │ │ │ │ │ ├── results.ts │ │ │ │ │ └── send.ts │ │ │ │ └── index.tsx │ │ │ └── styles │ │ │ │ └── globals.css │ │ ├── tailwind.config.js │ │ └── tsconfig.json │ ├── python-top-emotions │ │ ├── .env.example │ │ ├── README.md │ │ └── top_emotions.py │ └── typescript-raw-text-processor │ │ ├── .env.example │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ └── index.ts │ │ └── tsconfig.json ├── streaming │ ├── next-js-streaming-example │ │ ├── .gitignore │ │ ├── .vscode │ │ │ ├── extensions.json │ │ │ └── settings.json │ │ ├── README.md │ │ ├── components │ │ │ ├── inputs │ │ │ │ ├── Button.tsx │ │ │ │ ├── TextArea.tsx │ │ │ │ └── TextBox.tsx │ │ │ ├── menu │ │ │ │ ├── Auth.tsx │ │ │ │ ├── Login.tsx │ │ │ │ ├── Nav.tsx │ │ │ │ └── Toolbar.tsx │ │ │ └── widgets │ │ │ │ ├── AudioWidgets.tsx │ │ │ │ ├── BurstWidgets.tsx │ │ │ │ ├── Descriptor.tsx │ │ │ │ ├── DiscreteTimeline.tsx │ │ │ │ ├── FaceTrackedVideo.tsx │ │ │ │ ├── FaceWidgets.tsx │ │ │ │ ├── LanguageWidgets.tsx │ │ │ │ ├── Loader.tsx │ │ │ │ ├── LoaderSet.tsx │ │ │ │ ├── ProsodyWidgets.tsx │ │ │ │ └── TopEmotions.tsx │ │ ├── lib │ │ │ ├── data │ │ │ │ ├── audioPrediction.ts │ │ │ │ ├── boundingBox.ts │ │ │ │ ├── characterRange.ts │ │ │ │ ├── embedding.ts │ │ │ │ ├── emotion.ts │ │ │ │ ├── facePrediction.ts │ │ │ │ ├── languagePrediction.ts │ │ │ │ ├── range.ts │ │ │ │ ├── timeRange.ts │ │ │ │ └── trackedFace.ts │ │ │ ├── hooks │ │ │ │ ├── keyPress.ts │ │ │ │ ├── stability.ts │ │ │ │ └── storage.ts │ │ │ ├── media │ │ │ │ ├── audioRecorder.ts │ │ │ │ └── videoRecorder.ts │ │ │ └── utilities │ │ │ │ ├── asyncUtilities.ts │ │ │ │ ├── blobUtilities.ts │ │ │ │ ├── embeddingUtilities.ts │ │ │ │ ├── emotionUtilities.ts │ │ │ │ ├── environmentUtilities.ts │ │ │ │ ├── scalingUtilities.ts │ │ │ │ ├── styleUtilities.ts │ │ │ │ └── typeUtilities.ts │ │ ├── next.config.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── pages │ │ │ ├── _app.tsx │ │ │ ├── burst │ │ │ │ ├── index.tsx │ │ │ │ └── timeline │ │ │ │ │ └── index.tsx │ │ │ ├── face │ │ │ │ ├── calibrate │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── index.tsx │ │ │ ├── language │ │ │ │ └── index.tsx │ │ │ └── prosody │ │ │ │ └── index.tsx │ │ ├── postcss.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── hume-logo.png │ │ │ └── hume-logo.svg │ │ ├── styles │ │ │ └── globals.css │ │ ├── tailwind.config.js │ │ └── tsconfig.json │ └── python-streaming-example │ │ ├── .env.example │ │ ├── .gitignore │ │ ├── README.md │ │ ├── main.py │ │ ├── pyproject.toml │ │ └── uv.lock └── visualization-example │ ├── example-notebook.ipynb │ └── predictions.json ├── monorepo.code-workspace ├── package-lock.json └── tts ├── tts-next-js-chat ├── .env.example ├── .gitignore ├── README.md ├── bun.lock ├── eslint.config.mjs ├── next.config.ts ├── package.json ├── pnpm-lock.yaml ├── postcss.config.mjs ├── preview.png ├── src │ └── app │ │ ├── api │ │ ├── chat │ │ │ └── route.ts │ │ ├── transcribe │ │ │ └── route.ts │ │ ├── tts │ │ │ └── route.ts │ │ └── voices │ │ │ └── route.ts │ │ ├── components │ │ ├── AudioPlayer.tsx │ │ ├── Chat.tsx │ │ ├── ControlsPanel.tsx │ │ ├── VoiceSelector.tsx │ │ └── logos │ │ │ └── Hume.tsx │ │ ├── context │ │ └── VoiceSettingsContext.tsx │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── hooks │ │ ├── useRecording.ts │ │ ├── useTts.ts │ │ └── useVoices.ts │ │ ├── layout.tsx │ │ ├── lib │ │ └── humeClient.ts │ │ └── page.tsx └── tsconfig.json ├── tts-python-livekit ├── .env.example ├── .gitignore ├── .python-version ├── README.md ├── main.py ├── pyproject.toml ├── settings.py ├── utils.py └── uv.lock ├── tts-python-quickstart ├── .env.example ├── .gitignore ├── README.md ├── app.py ├── pyproject.toml └── uv.lock └── tts-typescript-quickstart ├── .env.example ├── .gitignore ├── README.md ├── index.ts ├── package-lock.json ├── package.json └── tsconfig.json /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | updates: 4 | # check for updated versions of github actions on a weekly basis 5 | - package-ecosystem: 'github-actions' 6 | directory: '/' 7 | schedule: 8 | interval: 'weekly' 9 | day: 'monday' 10 | time: '06:00' 11 | timezone: 'America/New_York' 12 | commit-message: 13 | prefix: '[github actions] ' 14 | open-pull-requests-limit: 20 15 | 16 | # check for updated versions of npm dependencies on a daily basis 17 | - package-ecosystem: 'npm' 18 | directory: '/' 19 | schedule: 20 | interval: 'daily' 21 | time: '06:00' 22 | timezone: 'America/New_York' 23 | commit-message: 24 | prefix: '[npm] ' 25 | open-pull-requests-limit: 20 26 | versioning-strategy: 'increase' 27 | -------------------------------------------------------------------------------- /.github/workflows/dependabot-auto-merge.yml: -------------------------------------------------------------------------------- 1 | # reference: 2 | # https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#enable-auto-merge-on-a-pull-request 3 | 4 | name: Dependabot auto-merge 5 | 6 | on: 7 | pull_request: 8 | types: ['opened', 'reopened', 'ready_for_review', 'synchronize'] 9 | 10 | permissions: 11 | contents: write 12 | pull-requests: write 13 | 14 | jobs: 15 | dependabot-auto-merge: 16 | runs-on: ubuntu-latest 17 | 18 | # only runs if PR is opened by "dependabot[bot]" 19 | if: ${{ github.actor == 'dependabot[bot]' }} 20 | 21 | steps: 22 | - name: Dependabot metadata 23 | id: metadata 24 | uses: dependabot/fetch-metadata@v1.6.0 25 | with: 26 | github-token: '${{ secrets.HUME_BOT_TOKEN }}' 27 | 28 | - name: Approve a PR 29 | env: 30 | PR_URL: ${{github.event.pull_request.html_url}} 31 | GITHUB_TOKEN: ${{secrets.HUME_BOT_TOKEN}} 32 | run: gh pr review --approve "$PR_URL" 33 | 34 | - name: Enable auto-merge for Dependabot PRs 35 | env: 36 | PR_URL: ${{github.event.pull_request.html_url}} 37 | GITHUB_TOKEN: ${{secrets.HUME_BOT_TOKEN}} 38 | run: gh pr merge --auto --squash "$PR_URL" 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .hume/ 2 | __pycache__/ 3 | .venv/ 4 | .DS_Store 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Hume AI 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /evi/evi-flutter/.env.example: -------------------------------------------------------------------------------- 1 | # Note: in a production app, you should avoid hardcoding your API key in client code 2 | # and instead retrieve an access token from a backend server. 3 | # See https://dev.hume.ai/docs/introduction/api-key for more information. 4 | HUME_API_KEY="" 5 | 6 | # (Optional, use this to customize EVI, see https://dev.hume.ai/docs/empathic-voice-interface-evi/configuration) 7 | HUME_CONFIG_ID="" 8 | 9 | # Uncomment the following line to use an endpoint on your own server for authentication 10 | # MY_SERVER_AUTH_URL="http://localhost:8080/auth" 11 | -------------------------------------------------------------------------------- /evi/evi-flutter/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .build/ 9 | .buildlog/ 10 | .history 11 | .svn/ 12 | .swiftpm/ 13 | migrate_working_dir/ 14 | 15 | # Environment variables related 16 | .env 17 | 18 | # IntelliJ related 19 | *.iml 20 | *.ipr 21 | *.iws 22 | .idea/ 23 | 24 | # The .vscode folder contains launch configuration and tasks you configure in 25 | # VS Code which you may wish to be included in version control, so this line 26 | # is commented out by default. 27 | #.vscode/ 28 | 29 | # Flutter/Dart/Pub related 30 | **/doc/api/ 31 | **/ios/Flutter/.last_build_id 32 | .dart_tool/ 33 | .flutter-plugins 34 | .flutter-plugins-dependencies 35 | .pub-cache/ 36 | .pub/ 37 | /build/ 38 | 39 | # Symbolication related 40 | app.*.symbols 41 | 42 | # Obfuscation related 43 | app.*.map.json 44 | 45 | # Android Studio will place build artifacts here 46 | /android/app/debug 47 | /android/app/profile 48 | /android/app/release 49 | 50 | /pubspec.lock 51 | 52 | 53 | ios/Podfile.lock 54 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/to/reference-keystore 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/kotlin/com/example/evi_example/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.evi_example 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() 6 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | } 7 | 8 | rootProject.buildDir = "../build" 9 | subprojects { 10 | project.buildDir = "${rootProject.buildDir}/${project.name}" 11 | } 12 | subprojects { 13 | project.evaluationDependsOn(":app") 14 | } 15 | 16 | tasks.register("clean", Delete) { 17 | delete rootProject.buildDir 18 | } 19 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip 6 | -------------------------------------------------------------------------------- /evi/evi-flutter/android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | def flutterSdkPath = { 3 | def properties = new Properties() 4 | file("local.properties").withInputStream { properties.load(it) } 5 | def flutterSdkPath = properties.getProperty("flutter.sdk") 6 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 7 | return flutterSdkPath 8 | }() 9 | 10 | includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") 11 | 12 | repositories { 13 | google() 14 | mavenCentral() 15 | gradlePluginPortal() 16 | } 17 | } 18 | 19 | plugins { 20 | id "dev.flutter.flutter-plugin-loader" version "1.0.0" 21 | id "com.android.application" version "8.1.0" apply false 22 | id "org.jetbrains.kotlin.android" version "1.8.22" apply false 23 | } 24 | 25 | include ":app" 26 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | migrate_working_dir/ 12 | 13 | # IntelliJ related 14 | *.iml 15 | *.ipr 16 | *.iws 17 | .idea/ 18 | 19 | # The .vscode folder contains launch configuration and tasks you configure in 20 | # VS Code which you may wish to be included in version control, so this line 21 | # is commented out by default. 22 | #.vscode/ 23 | 24 | # Flutter/Dart/Pub related 25 | # Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. 26 | /pubspec.lock 27 | **/doc/api/ 28 | .dart_tool/ 29 | build/ 30 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: "nixpkgs000000000000000000000000000000000" 8 | channel: "stable" 9 | 10 | project_type: plugin 11 | 12 | # Tracks metadata for the flutter migrate command 13 | migration: 14 | platforms: 15 | - platform: root 16 | create_revision: nixpkgs000000000000000000000000000000000 17 | base_revision: nixpkgs000000000000000000000000000000000 18 | - platform: ios 19 | create_revision: nixpkgs000000000000000000000000000000000 20 | base_revision: nixpkgs000000000000000000000000000000000 21 | 22 | # User provided section 23 | 24 | # List of Local paths (relative to this file) that should be 25 | # ignored by the migrate tool. 26 | # 27 | # Files that are not part of the templates will be ignored by default. 28 | unmanaged_files: 29 | - 'lib/main.dart' 30 | - 'ios/Runner.xcodeproj/project.pbxproj' 31 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/ios/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .vagrant/ 3 | .sconsign.dblite 4 | .svn/ 5 | 6 | .DS_Store 7 | *.swp 8 | profile 9 | 10 | DerivedData/ 11 | build/ 12 | GeneratedPluginRegistrant.h 13 | GeneratedPluginRegistrant.m 14 | 15 | .generated/ 16 | 17 | *.pbxuser 18 | *.mode1v3 19 | *.mode2v3 20 | *.perspectivev3 21 | 22 | !default.pbxuser 23 | !default.mode1v3 24 | !default.mode2v3 25 | !default.perspectivev3 26 | 27 | xcuserdata 28 | 29 | *.moved-aside 30 | 31 | *.pyc 32 | *sync/ 33 | Icon? 34 | .tags* 35 | 36 | /Flutter/Generated.xcconfig 37 | /Flutter/ephemeral/ 38 | /Flutter/flutter_export_environment.sh 39 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/ios/Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/audio/ios/Assets/.gitkeep -------------------------------------------------------------------------------- /evi/evi-flutter/audio/ios/Resources/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyTrackingDomains 6 | 7 | NSPrivacyAccessedAPITypes 8 | 9 | NSPrivacyCollectedDataTypes 10 | 11 | NSPrivacyTracking 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/ios/audio.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. 3 | # Run `pod lib lint audio.podspec` to validate before publishing. 4 | # 5 | Pod::Spec.new do |s| 6 | s.name = 'audio' 7 | s.version = '0.0.1' 8 | s.summary = 'A new Flutter plugin project.' 9 | s.description = <<-DESC 10 | A new Flutter plugin project. 11 | DESC 12 | s.homepage = 'http://example.com' 13 | s.license = { :file => '../LICENSE' } 14 | s.author = { 'Your Company' => 'email@example.com' } 15 | s.source = { :path => '.' } 16 | s.source_files = 'Classes/**/*' 17 | s.dependency 'Flutter' 18 | s.platform = :ios, '13.0' 19 | 20 | # Flutter.framework does not contain a i386 slice. 21 | s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } 22 | s.swift_version = '5.0' 23 | 24 | # If your plugin requires a privacy manifest, for example if it uses any 25 | # required reason APIs, update the PrivacyInfo.xcprivacy file to describe your 26 | # plugin's privacy impact, and then uncomment this line. For more information, 27 | # see https://developer.apple.com/documentation/bundleresources/privacy_manifest_files 28 | # s.resource_bundles = {'audio_privacy' => ['Resources/PrivacyInfo.xcprivacy']} 29 | end 30 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/lib/audio_method_channel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/foundation.dart'; 2 | import 'package:flutter/services.dart'; 3 | 4 | import 'audio_platform_interface.dart'; 5 | 6 | /// An implementation of [AudioPlatform] that uses method channels. 7 | class MethodChannelAudio extends AudioPlatform { 8 | /// The method channel used to interact with the native platform. 9 | @visibleForTesting 10 | final methodChannel = const MethodChannel('audio'); 11 | 12 | @override 13 | Future getPlatformVersion() async { 14 | final version = await methodChannel.invokeMethod('getPlatformVersion'); 15 | return version; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/lib/audio_platform_interface.dart: -------------------------------------------------------------------------------- 1 | import 'package:plugin_platform_interface/plugin_platform_interface.dart'; 2 | 3 | import 'audio_method_channel.dart'; 4 | 5 | abstract class AudioPlatform extends PlatformInterface { 6 | /// Constructs a AudioPlatform. 7 | AudioPlatform() : super(token: _token); 8 | 9 | static final Object _token = Object(); 10 | 11 | static AudioPlatform _instance = MethodChannelAudio(); 12 | 13 | /// The default instance of [AudioPlatform] to use. 14 | /// 15 | /// Defaults to [MethodChannelAudio]. 16 | static AudioPlatform get instance => _instance; 17 | 18 | /// Platform-specific implementations should set this with their own 19 | /// platform-specific class that extends [AudioPlatform] when 20 | /// they register themselves. 21 | static set instance(AudioPlatform instance) { 22 | PlatformInterface.verifyToken(instance, _token); 23 | _instance = instance; 24 | } 25 | 26 | Future getPlatformVersion() { 27 | throw UnimplementedError('platformVersion() has not been implemented.'); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/test/audio_method_channel_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import 'package:audio/audio_method_channel.dart'; 4 | 5 | void main() { 6 | TestWidgetsFlutterBinding.ensureInitialized(); 7 | 8 | MethodChannelAudio platform = MethodChannelAudio(); 9 | const MethodChannel channel = MethodChannel('audio'); 10 | 11 | setUp(() { 12 | TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler( 13 | channel, 14 | (MethodCall methodCall) async { 15 | return '42'; 16 | }, 17 | ); 18 | }); 19 | 20 | tearDown(() { 21 | TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); 22 | }); 23 | 24 | test('getPlatformVersion', () async { 25 | expect(await platform.getPlatformVersion(), '42'); 26 | }); 27 | } 28 | -------------------------------------------------------------------------------- /evi/evi-flutter/audio/test/audio_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_test/flutter_test.dart'; 2 | import 'package:audio/audio.dart'; 3 | import 'package:audio/audio_platform_interface.dart'; 4 | import 'package:audio/audio_method_channel.dart'; 5 | import 'package:plugin_platform_interface/plugin_platform_interface.dart'; 6 | 7 | class MockAudioPlatform 8 | with MockPlatformInterfaceMixin 9 | implements AudioPlatform { 10 | 11 | @override 12 | Future getPlatformVersion() => Future.value('42'); 13 | } 14 | 15 | void main() { 16 | final AudioPlatform initialPlatform = AudioPlatform.instance; 17 | 18 | test('$MethodChannelAudio is the default instance', () { 19 | expect(initialPlatform, isInstanceOf()); 20 | }); 21 | 22 | test('getPlatformVersion', () async { 23 | Audio audioPlugin = Audio(); 24 | MockAudioPlatform fakePlatform = MockAudioPlatform(); 25 | AudioPlatform.instance = fakePlatform; 26 | 27 | expect(await audioPlugin.getPlatformVersion(), '42'); 28 | }); 29 | } 30 | -------------------------------------------------------------------------------- /evi/evi-flutter/host-audio-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/host-audio-screenshot.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 12.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | 4 | @main 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /evi/evi-flutter/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /evi/evi-flutter/ios/build/ios/XCBuildData/PIFCache/workspace/WORKSPACE@v11_hash=(null)_subobjects=4483c0dac1d2a63621e8a5d74e580a19-json: -------------------------------------------------------------------------------- 1 | {"guid":"dc4b70c03e8043e50e38f2068887b1d4","name":"Pods","path":"/Users/twitchard/dev/hume-api-examples/evi-flutter-example/ios/Pods/Pods.xcodeproj/project.xcworkspace","projects":["PROJECT@v11_mod=1737593281.485423_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1"]} -------------------------------------------------------------------------------- /evi/evi-flutter/lib/theme.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | // From CSS variables on hume.ai 4 | const Color white = Color.fromRGBO(255, 255, 255, 1); 5 | const Color humeBlack900 = Color.fromRGBO(26, 26, 26, 1); 6 | const Color humeTan400 = Color.fromRGBO(255, 244, 232, 1); 7 | const Color accentOrange200 = Color.fromRGBO(255, 219, 176, 1); 8 | const Color accentBlue200 = Color.fromRGBO(209, 226, 243, 1); 9 | 10 | ThemeData appTheme = ThemeData( 11 | scaffoldBackgroundColor: humeTan400, 12 | colorScheme: ColorScheme.light( 13 | primary: white, 14 | inversePrimary: accentOrange200, 15 | surface: humeBlack900, 16 | ), 17 | ); 18 | -------------------------------------------------------------------------------- /evi/evi-flutter/test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility in the flutter_test package. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_test/flutter_test.dart'; 10 | 11 | import 'package:evi_example/main.dart'; 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(const MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /evi/evi-flutter/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/web/favicon.png -------------------------------------------------------------------------------- /evi/evi-flutter/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/web/icons/Icon-192.png -------------------------------------------------------------------------------- /evi/evi-flutter/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/web/icons/Icon-512.png -------------------------------------------------------------------------------- /evi/evi-flutter/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /evi/evi-flutter/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-flutter/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /evi/evi-flutter/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | evi_example 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /evi/evi-flutter/web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "evi_example", 3 | "short_name": "evi_example", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "A new Flutter project.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | }, 22 | { 23 | "src": "icons/Icon-maskable-192.png", 24 | "sizes": "192x192", 25 | "type": "image/png", 26 | "purpose": "maskable" 27 | }, 28 | { 29 | "src": "icons/Icon-maskable-512.png", 30 | "sizes": "512x512", 31 | "type": "image/png", 32 | "purpose": "maskable" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /evi/evi-next-js-app-router-quickstart/.env.example: -------------------------------------------------------------------------------- 1 | HUME_API_KEY="" 2 | HUME_SECRET_KEY="" -------------------------------------------------------------------------------- /evi/evi-next-js-app-router-quickstart/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /evi/evi-next-js-app-router-quickstart/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | .env 31 | 32 | # vercel 33 | .vercel 34 | 35 | # typescript 36 | *.tsbuildinfo 37 | next-env.d.ts 38 | -------------------------------------------------------------------------------- /evi/evi-next-js-app-router-quickstart/.prettierrc.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /evi/evi-next-js-app-router-quickstart/app/error.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | export default function Error() { 4 | return ( 5 |
6 |
7 |

An unexpected error occurred

8 |

Please try again later

9 |
10 |
11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /evi/evi-next-js-app-router-quickstart/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HumeAI/hume-api-examples/f076b50689ecc6e12270fdd1f84558f8ba3726c5/evi/evi-next-js-app-router-quickstart/app/favicon.ico -------------------------------------------------------------------------------- /evi/evi-next-js-app-router-quickstart/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import { GeistSans } from "geist/font/sans"; 3 | import { GeistMono } from "geist/font/mono"; 4 | import "./globals.css"; 5 | import { Nav } from "@/components/Nav"; 6 | import { cn } from "@/utils"; 7 | 8 | export const metadata: Metadata = { 9 | title: "Hume AI - EVI - Next.js Starter", 10 | description: "A Next.js starter using Hume AI's Empathic Voice Interface", 11 | }; 12 | 13 | export default function RootLayout({ 14 | children, 15 | }: Readonly<{ 16 | children: React.ReactNode; 17 | }>) { 18 | return ( 19 | 20 | 27 |