├── .env.example ├── .gitignore ├── .npmrc ├── .vscode └── settings.json ├── README.md ├── agents ├── customerSupportAgent.ts ├── facebookAgent.ts ├── index.ts └── twitterAgent.ts ├── app.vue ├── chrome-extension ├── background.js ├── icon128.png ├── icon16.png ├── icon48.png ├── manifest.json ├── popup.html └── popup.js ├── components ├── AppLoading.vue ├── CardFacebook.vue ├── CardGeneric.vue ├── CardImages.vue ├── CardTwitter.vue ├── ChatBox.vue ├── ChatBubble.vue ├── ChatWidget.vue ├── IconChat.vue ├── ImageCanvas.vue ├── ImagePlaceholder.vue ├── SocialMediaPostGenerator.vue ├── TemperatureSelector.vue └── UrlForm.vue ├── composables ├── useChatAi.ts ├── useImageAI.ts └── useIsExtension.ts ├── cypress.config.js ├── cypress ├── e2e │ └── chat.cy.js ├── fixtures │ ├── chatbot-response.json │ └── example.json └── support │ ├── commands.js │ └── e2e.js ├── nuxt.config.ts ├── package.json ├── public ├── avatar.jpg ├── bot.jpg ├── favicon.ico └── image-background.jpg ├── requests.http ├── server └── api │ ├── ai.post.ts │ ├── image.post.ts │ └── scrape.post.ts ├── tailwind.config.ts ├── tsconfig.json ├── types └── index.ts └── utils └── index.ts /.env.example: -------------------------------------------------------------------------------- 1 | NUXT_OPENAI_API_KEY="sk-xxx" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/.gitignore -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | strict-peer-dependencies=false 3 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "dotenv.enableAutocloaking": false 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/README.md -------------------------------------------------------------------------------- /agents/customerSupportAgent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/agents/customerSupportAgent.ts -------------------------------------------------------------------------------- /agents/facebookAgent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/agents/facebookAgent.ts -------------------------------------------------------------------------------- /agents/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/agents/index.ts -------------------------------------------------------------------------------- /agents/twitterAgent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/agents/twitterAgent.ts -------------------------------------------------------------------------------- /app.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/app.vue -------------------------------------------------------------------------------- /chrome-extension/background.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/chrome-extension/background.js -------------------------------------------------------------------------------- /chrome-extension/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/chrome-extension/icon128.png -------------------------------------------------------------------------------- /chrome-extension/icon16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/chrome-extension/icon16.png -------------------------------------------------------------------------------- /chrome-extension/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/chrome-extension/icon48.png -------------------------------------------------------------------------------- /chrome-extension/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/chrome-extension/manifest.json -------------------------------------------------------------------------------- /chrome-extension/popup.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/chrome-extension/popup.html -------------------------------------------------------------------------------- /chrome-extension/popup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/chrome-extension/popup.js -------------------------------------------------------------------------------- /components/AppLoading.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/AppLoading.vue -------------------------------------------------------------------------------- /components/CardFacebook.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/CardFacebook.vue -------------------------------------------------------------------------------- /components/CardGeneric.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/CardGeneric.vue -------------------------------------------------------------------------------- /components/CardImages.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/CardImages.vue -------------------------------------------------------------------------------- /components/CardTwitter.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/CardTwitter.vue -------------------------------------------------------------------------------- /components/ChatBox.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/ChatBox.vue -------------------------------------------------------------------------------- /components/ChatBubble.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/ChatBubble.vue -------------------------------------------------------------------------------- /components/ChatWidget.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/ChatWidget.vue -------------------------------------------------------------------------------- /components/IconChat.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/IconChat.vue -------------------------------------------------------------------------------- /components/ImageCanvas.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/ImageCanvas.vue -------------------------------------------------------------------------------- /components/ImagePlaceholder.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/ImagePlaceholder.vue -------------------------------------------------------------------------------- /components/SocialMediaPostGenerator.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/SocialMediaPostGenerator.vue -------------------------------------------------------------------------------- /components/TemperatureSelector.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/TemperatureSelector.vue -------------------------------------------------------------------------------- /components/UrlForm.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/components/UrlForm.vue -------------------------------------------------------------------------------- /composables/useChatAi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/composables/useChatAi.ts -------------------------------------------------------------------------------- /composables/useImageAI.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/composables/useImageAI.ts -------------------------------------------------------------------------------- /composables/useIsExtension.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/composables/useIsExtension.ts -------------------------------------------------------------------------------- /cypress.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/cypress.config.js -------------------------------------------------------------------------------- /cypress/e2e/chat.cy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/cypress/e2e/chat.cy.js -------------------------------------------------------------------------------- /cypress/fixtures/chatbot-response.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/cypress/fixtures/chatbot-response.json -------------------------------------------------------------------------------- /cypress/fixtures/example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/cypress/fixtures/example.json -------------------------------------------------------------------------------- /cypress/support/commands.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/cypress/support/commands.js -------------------------------------------------------------------------------- /cypress/support/e2e.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/cypress/support/e2e.js -------------------------------------------------------------------------------- /nuxt.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/nuxt.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/package.json -------------------------------------------------------------------------------- /public/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/public/avatar.jpg -------------------------------------------------------------------------------- /public/bot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/public/bot.jpg -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/image-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/public/image-background.jpg -------------------------------------------------------------------------------- /requests.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/requests.http -------------------------------------------------------------------------------- /server/api/ai.post.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/server/api/ai.post.ts -------------------------------------------------------------------------------- /server/api/image.post.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/server/api/image.post.ts -------------------------------------------------------------------------------- /server/api/scrape.post.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/server/api/scrape.post.ts -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/tailwind.config.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/tsconfig.json -------------------------------------------------------------------------------- /types/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/types/index.ts -------------------------------------------------------------------------------- /utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vueschool/vue-forge-episode-3/HEAD/utils/index.ts --------------------------------------------------------------------------------