Repository: miurla/morphic Branch: main Commit: 42f5d8029c12 Files: 295 Total size: 1012.7 KB Directory structure: gitextract_mowel1np/ ├── .eslintrc.json ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ └── feature_request.yml │ └── workflows/ │ ├── ci.yml │ ├── docker-build.yml │ └── release.yml ├── .gitignore ├── .mcp.json ├── .prettierignore ├── .vscode/ │ └── settings.json ├── AGENTS.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── app/ │ ├── api/ │ │ ├── advanced-search/ │ │ │ └── route.ts │ │ ├── chat/ │ │ │ └── route.ts │ │ ├── chats/ │ │ │ └── route.ts │ │ ├── feedback/ │ │ │ ├── __tests__/ │ │ │ │ └── route.test.ts │ │ │ └── route.ts │ │ └── upload/ │ │ └── route.ts │ ├── auth/ │ │ ├── confirm/ │ │ │ └── route.ts │ │ ├── error/ │ │ │ └── page.tsx │ │ ├── forgot-password/ │ │ │ └── page.tsx │ │ ├── login/ │ │ │ └── page.tsx │ │ ├── oauth/ │ │ │ └── route.ts │ │ ├── sign-up/ │ │ │ └── page.tsx │ │ ├── sign-up-success/ │ │ │ └── page.tsx │ │ └── update-password/ │ │ └── page.tsx │ ├── globals.css │ ├── layout.tsx │ ├── page.tsx │ └── search/ │ ├── [id]/ │ │ └── page.tsx │ ├── loading.tsx │ └── page.tsx ├── components/ │ ├── __tests__/ │ │ └── research-process-section.test.tsx │ ├── action-buttons.tsx │ ├── answer-section.tsx │ ├── app-sidebar.tsx │ ├── artifact/ │ │ ├── artifact-content.tsx │ │ ├── artifact-context.tsx │ │ ├── artifact-root.tsx │ │ ├── chat-artifact-container.tsx │ │ ├── reasoning-content.tsx │ │ ├── search-artifact-content.tsx │ │ ├── todo-invocation-content.tsx │ │ └── tool-invocation-content.tsx │ ├── attachment-preview.tsx │ ├── auth-modal.tsx │ ├── chat-error.tsx │ ├── chat-messages.tsx │ ├── chat-panel.tsx │ ├── chat-share.tsx │ ├── chat.tsx │ ├── citation-context.tsx │ ├── citation-link.tsx │ ├── collapsible-message.tsx │ ├── current-user-avatar.tsx │ ├── custom-link.tsx │ ├── data-section.tsx │ ├── default-skeleton.tsx │ ├── drag-overlay.tsx │ ├── dynamic-tool-display.tsx │ ├── error-modal.tsx │ ├── external-link-items.tsx │ ├── feedback-modal.tsx │ ├── fetch-section.tsx │ ├── file-upload-button.tsx │ ├── forgot-password-form.tsx │ ├── guest-menu.tsx │ ├── header.tsx │ ├── inspector/ │ │ ├── inspector-drawer.tsx │ │ └── inspector-panel.tsx │ ├── login-form.tsx │ ├── message-actions.tsx │ ├── message.tsx │ ├── model-type-selector.tsx │ ├── process-header.tsx │ ├── process-rail.tsx │ ├── question-confirmation.tsx │ ├── reasoning-section.tsx │ ├── related-questions.tsx │ ├── render-message.tsx │ ├── research-process-section.tsx │ ├── retry-button.tsx │ ├── search-mode-selector.tsx │ ├── search-results-image.tsx │ ├── search-results.tsx │ ├── search-section.tsx │ ├── section.tsx │ ├── sidebar/ │ │ ├── chat-history-client.tsx │ │ ├── chat-history-section.tsx │ │ ├── chat-history-skeleton.tsx │ │ ├── chat-menu-item.tsx │ │ └── clear-history-action.tsx │ ├── sign-up-form.tsx │ ├── source-favicons.tsx │ ├── theme-menu-items.tsx │ ├── theme-provider.tsx │ ├── todo-list-content.tsx │ ├── tool-badge.tsx │ ├── tool-section.tsx │ ├── tool-todo-display.tsx │ ├── ui/ │ │ ├── alert-dialog.tsx │ │ ├── animated-logo.tsx │ │ ├── avatar.tsx │ │ ├── badge.tsx │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── carousel.tsx │ │ ├── checkbox.tsx │ │ ├── collapsible.tsx │ │ ├── command.tsx │ │ ├── dialog.tsx │ │ ├── drawer.tsx │ │ ├── dropdown-menu.tsx │ │ ├── hover-card.tsx │ │ ├── icons.tsx │ │ ├── index.ts │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── password-input.tsx │ │ ├── popover.tsx │ │ ├── select.tsx │ │ ├── separator.tsx │ │ ├── sheet.tsx │ │ ├── sidebar.tsx │ │ ├── skeleton.tsx │ │ ├── slider.tsx │ │ ├── sonner.tsx │ │ ├── spinner.tsx │ │ ├── status-indicator.tsx │ │ ├── switch.tsx │ │ ├── textarea.tsx │ │ ├── toggle.tsx │ │ ├── tooltip-button.tsx │ │ └── tooltip.tsx │ ├── update-password-form.tsx │ ├── uploaded-file-list.tsx │ ├── user-file-section.tsx │ ├── user-menu.tsx │ ├── user-text-section.tsx │ ├── video-carousel-dialog.tsx │ ├── video-result-grid.tsx │ └── video-search-results.tsx ├── components.json ├── config/ │ └── models/ │ ├── cloud.json │ └── default.json ├── docker-compose.yaml ├── docs/ │ ├── CONFIGURATION.md │ └── DOCKER.md ├── drizzle/ │ ├── 0000_black_lifeguard.sql │ ├── 0001_thin_supreme_intelligence.sql │ ├── 0002_material_crystal.sql │ ├── 0003_heavy_whirlwind.sql │ ├── 0004_natural_wallow.sql │ ├── 0005_awesome_riptide.sql │ ├── 0006_brainy_wrecking_crew.sql │ ├── 0007_illegal_mephistopheles.sql │ ├── 0008_glamorous_riptide.sql │ ├── 0009_thankful_may_parker.sql │ ├── 0010_lonely_kang.sql │ ├── meta/ │ │ ├── 0000_snapshot.json │ │ ├── 0001_snapshot.json │ │ ├── 0002_snapshot.json │ │ ├── 0003_snapshot.json │ │ ├── 0004_snapshot.json │ │ ├── 0005_snapshot.json │ │ ├── 0006_snapshot.json │ │ ├── 0007_snapshot.json │ │ ├── 0008_snapshot.json │ │ ├── 0009_snapshot.json │ │ ├── 0010_snapshot.json │ │ └── _journal.json │ ├── relations.ts │ └── schema.ts ├── drizzle.config.ts ├── hooks/ │ ├── use-auth-check.tsx │ ├── use-current-user-image.ts │ ├── use-current-user-name.ts │ ├── use-file-dropzone.ts │ └── use-mobile.tsx ├── instrumentation.ts ├── lib/ │ ├── actions/ │ │ ├── __tests__/ │ │ │ ├── chat.test.ts │ │ │ └── feedback.test.ts │ │ ├── chat.ts │ │ ├── feedback.ts │ │ └── site-feedback.ts │ ├── agents/ │ │ ├── generate-related-questions.ts │ │ ├── prompts/ │ │ │ ├── related-questions-prompt.ts │ │ │ └── search-mode-prompts.ts │ │ ├── researcher.ts │ │ └── title-generator.ts │ ├── analytics/ │ │ ├── index.ts │ │ ├── track-chat-event.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── auth/ │ │ └── get-current-user.ts │ ├── config/ │ │ ├── load-models-config.ts │ │ ├── model-types.ts │ │ ├── ollama-validator.ts │ │ └── search-modes.ts │ ├── constants/ │ │ └── index.ts │ ├── contexts/ │ │ └── user-context.tsx │ ├── db/ │ │ ├── __tests__/ │ │ │ ├── rls-policies.integration.test.ts │ │ │ └── with-rls.test.ts │ │ ├── actions.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── relations.ts │ │ ├── schema.ts │ │ └── with-rls.ts │ ├── firecrawl/ │ │ ├── client.ts │ │ ├── index.ts │ │ └── types.ts │ ├── hooks/ │ │ ├── use-copy-to-clipboard.ts │ │ └── use-media-query.ts │ ├── ollama/ │ │ ├── client.ts │ │ └── types.ts │ ├── rate-limit/ │ │ ├── __tests__/ │ │ │ └── guest-limit.test.ts │ │ ├── chat-limits.ts │ │ └── guest-limit.ts │ ├── schema/ │ │ ├── fetch.tsx │ │ ├── question.ts │ │ ├── related.tsx │ │ └── search.tsx │ ├── storage/ │ │ └── r2-client.ts │ ├── streaming/ │ │ ├── __tests__/ │ │ │ ├── create-ephemeral-chat-stream-response.test.ts │ │ │ └── prune-messages-integration.test.ts │ │ ├── create-chat-stream-response.ts │ │ ├── create-ephemeral-chat-stream-response.ts │ │ ├── helpers/ │ │ │ ├── __tests__/ │ │ │ │ └── prepare-messages.test.ts │ │ │ ├── persist-stream-results.ts │ │ │ ├── prepare-messages.ts │ │ │ ├── stream-related-questions.ts │ │ │ ├── strip-reasoning-parts.ts │ │ │ └── types.ts │ │ └── types.ts │ ├── supabase/ │ │ ├── client.ts │ │ ├── middleware.ts │ │ └── server.ts │ ├── tools/ │ │ ├── dynamic.ts │ │ ├── fetch.ts │ │ ├── question.ts │ │ ├── search/ │ │ │ └── providers/ │ │ │ ├── base.ts │ │ │ ├── brave.ts │ │ │ ├── exa.ts │ │ │ ├── firecrawl.ts │ │ │ ├── index.ts │ │ │ ├── searxng.ts │ │ │ └── tavily.ts │ │ ├── search.ts │ │ └── todo.ts │ ├── types/ │ │ ├── agent.ts │ │ ├── ai.ts │ │ ├── dynamic-tools.ts │ │ ├── index.ts │ │ ├── message-persistence.ts │ │ ├── model-type.ts │ │ ├── models.ts │ │ └── search.ts │ └── utils/ │ ├── __tests__/ │ │ ├── citation.test.ts │ │ ├── context-window.test.ts │ │ ├── domain.test.ts │ │ └── model-selection.test.ts │ ├── citation.ts │ ├── context-window.ts │ ├── cookies.ts │ ├── domain.ts │ ├── index.ts │ ├── message-mapping.ts │ ├── message-utils.ts │ ├── model-selection.ts │ ├── perf-logging.ts │ ├── perf-tracking.ts │ ├── registry.ts │ ├── retry.ts │ ├── search-config.ts │ ├── telemetry.ts │ └── url.ts ├── next.config.mjs ├── package.json ├── postcss.config.mjs ├── prettier.config.js ├── proxy.ts ├── scripts/ │ ├── README.md │ ├── chat-cli.ts │ └── test-cache-performance.ts ├── searxng-limiter.toml ├── searxng-settings.yml ├── tsconfig.json ├── vitest.config.mts └── vitest.setup.ts ================================================ FILE CONTENTS ================================================ ================================================ FILE: .eslintrc.json ================================================ { "extends": "next/core-web-vitals", "plugins": ["simple-import-sort"], "rules": { "simple-import-sort/imports": [ "error", { "groups": [ // React and Next.js imports ["^react", "^next"], // Third party imports ["^@?\\w"], // Internal imports ["^@/types"], ["^@/config"], ["^@/lib"], ["^@/hooks"], ["^@/components/ui"], ["^@/components"], ["^@/registry"], ["^@/styles"], ["^@/app"], // Side effect imports ["^\\u0000"], // Parent imports ["^\\.\\.(?!/?$)", "^\\.\\./?$"], // Other relative imports ["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"], // Style imports ["^.+\\.s?css$"] ] } ], "simple-import-sort/exports": "error" } } ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: miurla ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.yml ================================================ name: 🐞 Bug description: File a bug/issue title: '[BUG]
Code error: {params.error}
) : (An unspecified error occurred.
)}You've successfully signed up. Please check your email to confirm your account before signing in.
{errorMessage}