diff --git a/.gitignore b/.gitignore index 314faa9..7bbcc2e 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ dist-ssr /build .env.local .env +.dev.vars *.vars .wrangler _worker.bundle diff --git a/README.md b/README.md index 6590ab2..91eae02 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ https://thinktank.ottomator.ai - ✅ Load local projects into the app (@wonderwhy-er) - ✅ Together Integration (@mouimet-infinisoft) - ✅ Mobile friendly (@qwikode) +- ✅ Better prompt enhancing (@SujalXplores) - ⬜ **HIGH PRIORITY** - ALMOST DONE - Attach images to prompts (@atrokhym) - ⬜ **HIGH PRIORITY** - Prevent Bolt from rewriting files as often (file locking and diffs) - ⬜ **HIGH PRIORITY** - Better prompting for smaller LLMs (code window sometimes doesn't start) @@ -43,7 +44,6 @@ https://thinktank.ottomator.ai - ⬜ Perplexity Integration - ⬜ Vertex AI Integration - ⬜ Deploy directly to Vercel/Netlify/other similar platforms -- ⬜ Better prompt enhancing - ⬜ Have LLM plan the project in a MD file for better results/transparency - ⬜ VSCode Integration with git-like confirmations - ⬜ Upload documents for knowledge - UI design templates, a code base to reference coding style, etc. diff --git a/app/routes/api.enhancer.ts b/app/routes/api.enhancer.ts index 77e6f2f..caebae0 100644 --- a/app/routes/api.enhancer.ts +++ b/app/routes/api.enhancer.ts @@ -44,9 +44,25 @@ async function enhancerAction({ context, request }: ActionFunctionArgs) { content: `[Model: ${model}]\n\n[Provider: ${providerName}]\n\n` + stripIndents` + You are a professional prompt engineer specializing in crafting precise, effective prompts. + Your task is to enhance prompts by making them more specific, actionable, and effective. I want you to improve the user prompt that is wrapped in \`\` tags. - IMPORTANT: Only respond with the improved prompt and nothing else! + For valid prompts: + - Make instructions explicit and unambiguous + - Add relevant context and constraints + - Remove redundant information + - Maintain the core intent + - Ensure the prompt is self-contained + - Use professional language + For invalid or unclear prompts: + - Respond with a clear, professional guidance message + - Keep responses concise and actionable + - Maintain a helpful, constructive tone + - Focus on what the user should provide + - Use a standard template for consistency + IMPORTANT: Your response must ONLY contain the enhanced prompt text. + Do not include any explanations, metadata, or wrapper tags. ${message} @@ -79,7 +95,7 @@ async function enhancerAction({ context, request }: ActionFunctionArgs) { }, }); - const transformedStream = result.toAIStream().pipeThrough(transformStream); + const transformedStream = result.toDataStream().pipeThrough(transformStream); return new StreamingTextResponse(transformedStream); } catch (error: unknown) { diff --git a/app/styles/components/resize-handle.scss b/app/styles/components/resize-handle.scss index 0b75009..7ee37b9 100644 --- a/app/styles/components/resize-handle.scss +++ b/app/styles/components/resize-handle.scss @@ -1,3 +1,5 @@ +@use '../z-index'; + [data-resize-handle] { position: relative; @@ -8,7 +10,7 @@ bottom: 0; left: -6px; right: -5px; - z-index: $zIndexMax; + z-index: z-index.$zIndexMax; } &[data-panel-group-direction='vertical']:after { @@ -18,7 +20,7 @@ right: 0; top: -5px; bottom: -6px; - z-index: $zIndexMax; + z-index: z-index.$zIndexMax; } &[data-resize-handle-state='hover']:after, diff --git a/app/styles/index.scss b/app/styles/index.scss index a45d65a..36ebac2 100644 --- a/app/styles/index.scss +++ b/app/styles/index.scss @@ -1,11 +1,11 @@ -@import './variables.scss'; -@import './z-index.scss'; -@import './animations.scss'; -@import './components/terminal.scss'; -@import './components/resize-handle.scss'; -@import './components/code.scss'; -@import './components/editor.scss'; -@import './components/toast.scss'; +@use 'variables.scss'; +@use 'z-index.scss'; +@use 'animations.scss'; +@use 'components/terminal.scss'; +@use 'components/resize-handle.scss'; +@use 'components/code.scss'; +@use 'components/editor.scss'; +@use 'components/toast.scss'; html, body { diff --git a/eslint.config.mjs b/eslint.config.mjs index 160e5f3..bb7a5c6 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -4,7 +4,13 @@ import { getNamingConventionRule, tsFileExtensions } from '@blitz/eslint-plugin/ export default [ { - ignores: ['**/dist', '**/node_modules', '**/.wrangler', '**/bolt/build', '**/.history'], + ignores: [ + '**/dist', + '**/node_modules', + '**/.wrangler', + '**/bolt/build', + '**/.history', + ], }, ...blitzPlugin.configs.recommended(), { @@ -38,7 +44,7 @@ export default [ patterns: [ { group: ['../'], - message: `Relative imports are not allowed. Please use '~/' instead.`, + message: 'Relative imports are not allowed. Please use \'~/\' instead.', }, ], }, diff --git a/package-lock.json b/package-lock.json index f909e42..e1f7275 100644 --- a/package-lock.json +++ b/package-lock.json @@ -77,9 +77,7 @@ "devDependencies": { "@blitz/eslint-plugin": "0.1.0", "@cloudflare/workers-types": "^4.20241127.0", - "@jridgewell/sourcemap-codec": "^1.5.0", "@remix-run/dev": "^2.15.0", - "@rollup/plugin-inject": "^5.0.5", "@types/diff": "^5.2.3", "@types/file-saver": "^2.0.7", "@types/js-cookie": "^3.0.6", diff --git a/package.json b/package.json index 8704334..1d9981a 100644 --- a/package.json +++ b/package.json @@ -99,9 +99,7 @@ "devDependencies": { "@blitz/eslint-plugin": "0.1.0", "@cloudflare/workers-types": "^4.20241127.0", - "@jridgewell/sourcemap-codec": "^1.5.0", "@remix-run/dev": "^2.15.0", - "@rollup/plugin-inject": "^5.0.5", "@types/diff": "^5.2.3", "@types/file-saver": "^2.0.7", "@types/js-cookie": "^3.0.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 243c05a..2f002fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -216,15 +216,9 @@ importers: '@cloudflare/workers-types': specifier: ^4.20241127.0 version: 4.20241127.0 - '@jridgewell/sourcemap-codec': - specifier: ^1.5.0 - version: 1.5.0 '@remix-run/dev': specifier: ^2.15.0 version: 2.15.0(@remix-run/react@2.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2))(@types/node@22.10.1)(sass-embedded@1.81.0)(sass@1.77.6)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.1)(sass-embedded@1.81.0)(sass@1.77.6))(wrangler@3.91.0(@cloudflare/workers-types@4.20241127.0)) - '@rollup/plugin-inject': - specifier: ^5.0.5 - version: 5.0.5(rollup@4.28.0) '@types/diff': specifier: ^5.2.3 version: 5.2.3