gitextract_pf42qdrs/ ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.md │ ├── actions/ │ │ └── setup-and-build/ │ │ └── action.yaml │ └── workflows/ │ ├── ci.yaml │ └── semantic-pr.yaml ├── .gitignore ├── .husky/ │ └── commit-msg ├── .prettierignore ├── .prettierrc ├── .tool-versions ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── app/ │ ├── components/ │ │ ├── chat/ │ │ │ ├── Artifact.tsx │ │ │ ├── AssistantMessage.tsx │ │ │ ├── BaseChat.module.scss │ │ │ ├── BaseChat.tsx │ │ │ ├── Chat.client.tsx │ │ │ ├── CodeBlock.module.scss │ │ │ ├── CodeBlock.tsx │ │ │ ├── Markdown.module.scss │ │ │ ├── Markdown.tsx │ │ │ ├── Messages.client.tsx │ │ │ ├── SendButton.client.tsx │ │ │ └── UserMessage.tsx │ │ ├── editor/ │ │ │ └── codemirror/ │ │ │ ├── BinaryContent.tsx │ │ │ ├── CodeMirrorEditor.tsx │ │ │ ├── cm-theme.ts │ │ │ ├── indent.ts │ │ │ └── languages.ts │ │ ├── header/ │ │ │ ├── Header.tsx │ │ │ └── HeaderActionButtons.client.tsx │ │ ├── sidebar/ │ │ │ ├── HistoryItem.tsx │ │ │ ├── Menu.client.tsx │ │ │ └── date-binning.ts │ │ ├── ui/ │ │ │ ├── Dialog.tsx │ │ │ ├── IconButton.tsx │ │ │ ├── LoadingDots.tsx │ │ │ ├── PanelHeader.tsx │ │ │ ├── PanelHeaderButton.tsx │ │ │ ├── Slider.tsx │ │ │ └── ThemeSwitch.tsx │ │ └── workbench/ │ │ ├── EditorPanel.tsx │ │ ├── FileBreadcrumb.tsx │ │ ├── FileTree.tsx │ │ ├── PortDropdown.tsx │ │ ├── Preview.tsx │ │ ├── Workbench.client.tsx │ │ └── terminal/ │ │ ├── Terminal.tsx │ │ └── theme.ts │ ├── entry.client.tsx │ ├── entry.server.tsx │ ├── lib/ │ │ ├── .server/ │ │ │ └── llm/ │ │ │ ├── api-key.ts │ │ │ ├── constants.ts │ │ │ ├── model.ts │ │ │ ├── prompts.ts │ │ │ ├── stream-text.ts │ │ │ └── switchable-stream.ts │ │ ├── crypto.ts │ │ ├── fetch.ts │ │ ├── hooks/ │ │ │ ├── index.ts │ │ │ ├── useMessageParser.ts │ │ │ ├── usePromptEnhancer.ts │ │ │ ├── useShortcuts.ts │ │ │ └── useSnapScroll.ts │ │ ├── persistence/ │ │ │ ├── ChatDescription.client.tsx │ │ │ ├── db.ts │ │ │ ├── index.ts │ │ │ └── useChatHistory.ts │ │ ├── runtime/ │ │ │ ├── __snapshots__/ │ │ │ │ └── message-parser.spec.ts.snap │ │ │ ├── action-runner.ts │ │ │ ├── message-parser.spec.ts │ │ │ └── message-parser.ts │ │ ├── stores/ │ │ │ ├── chat.ts │ │ │ ├── editor.ts │ │ │ ├── files.ts │ │ │ ├── previews.ts │ │ │ ├── settings.ts │ │ │ ├── terminal.ts │ │ │ ├── theme.ts │ │ │ └── workbench.ts │ │ └── webcontainer/ │ │ ├── auth.client.ts │ │ └── index.ts │ ├── root.tsx │ ├── routes/ │ │ ├── _index.tsx │ │ ├── api.chat.ts │ │ ├── api.enhancer.ts │ │ └── chat.$id.tsx │ ├── styles/ │ │ ├── animations.scss │ │ ├── components/ │ │ │ ├── code.scss │ │ │ ├── editor.scss │ │ │ ├── resize-handle.scss │ │ │ ├── terminal.scss │ │ │ └── toast.scss │ │ ├── index.scss │ │ ├── variables.scss │ │ └── z-index.scss │ ├── types/ │ │ ├── actions.ts │ │ ├── artifact.ts │ │ ├── terminal.ts │ │ └── theme.ts │ └── utils/ │ ├── buffer.ts │ ├── classNames.ts │ ├── constants.ts │ ├── debounce.ts │ ├── diff.ts │ ├── easings.ts │ ├── logger.ts │ ├── markdown.ts │ ├── mobile.ts │ ├── promises.ts │ ├── react.ts │ ├── shell.ts │ ├── stripIndent.ts │ ├── terminal.ts │ └── unreachable.ts ├── bindings.sh ├── eslint.config.mjs ├── functions/ │ └── [[path]].ts ├── load-context.ts ├── package.json ├── tsconfig.json ├── types/ │ └── istextorbinary.d.ts ├── uno.config.ts ├── vite.config.ts ├── worker-configuration.d.ts └── wrangler.toml