fix: issue with alternate message when importing from folder and git (#1216)
Browse files
app/components/git/GitUrlImport.client.tsx
CHANGED
|
@@ -91,6 +91,11 @@ ${escapeBoltTags(file.content)}
|
|
| 91 |
const messages = [filesMessage];
|
| 92 |
|
| 93 |
if (commandsMessage) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
messages.push(commandsMessage);
|
| 95 |
}
|
| 96 |
|
|
|
|
| 91 |
const messages = [filesMessage];
|
| 92 |
|
| 93 |
if (commandsMessage) {
|
| 94 |
+
messages.push({
|
| 95 |
+
role: 'user',
|
| 96 |
+
id: generateId(),
|
| 97 |
+
content: 'Setup the codebase and Start the application',
|
| 98 |
+
});
|
| 99 |
messages.push(commandsMessage);
|
| 100 |
}
|
| 101 |
|
app/utils/folderImport.ts
CHANGED
|
@@ -38,7 +38,7 @@ export const createChatFromFolder = async (
|
|
| 38 |
role: 'assistant',
|
| 39 |
content: `I've imported the contents of the "${folderName}" folder.${binaryFilesMessage}
|
| 40 |
|
| 41 |
-
<boltArtifact id="imported-files" title="Imported Files">
|
| 42 |
${fileArtifacts
|
| 43 |
.map(
|
| 44 |
(file) => `<boltAction type="file" filePath="${file.path}">
|
|
@@ -61,6 +61,11 @@ ${escapeBoltTags(file.content)}
|
|
| 61 |
const messages = [userMessage, filesMessage];
|
| 62 |
|
| 63 |
if (commandsMessage) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
messages.push(commandsMessage);
|
| 65 |
}
|
| 66 |
|
|
|
|
| 38 |
role: 'assistant',
|
| 39 |
content: `I've imported the contents of the "${folderName}" folder.${binaryFilesMessage}
|
| 40 |
|
| 41 |
+
<boltArtifact id="imported-files" title="Imported Files" type="bundled" >
|
| 42 |
${fileArtifacts
|
| 43 |
.map(
|
| 44 |
(file) => `<boltAction type="file" filePath="${file.path}">
|
|
|
|
| 61 |
const messages = [userMessage, filesMessage];
|
| 62 |
|
| 63 |
if (commandsMessage) {
|
| 64 |
+
messages.push({
|
| 65 |
+
role: 'user',
|
| 66 |
+
id: generateId(),
|
| 67 |
+
content: 'Setup the codebase and Start the application',
|
| 68 |
+
});
|
| 69 |
messages.push(commandsMessage);
|
| 70 |
}
|
| 71 |
|
app/utils/projectCommands.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { generateId } from './fileUtils';
|
|
| 3 |
|
| 4 |
export interface ProjectCommands {
|
| 5 |
type: string;
|
| 6 |
-
setupCommand
|
|
|
|
| 7 |
followupMessage: string;
|
| 8 |
}
|
| 9 |
|
|
@@ -33,7 +34,8 @@ export async function detectProjectCommands(files: FileContent[]): Promise<Proje
|
|
| 33 |
if (availableCommand) {
|
| 34 |
return {
|
| 35 |
type: 'Node.js',
|
| 36 |
-
setupCommand: `npm install
|
|
|
|
| 37 |
followupMessage: `Found "${availableCommand}" script in package.json. Running "npm run ${availableCommand}" after installation.`,
|
| 38 |
};
|
| 39 |
}
|
|
@@ -53,7 +55,7 @@ export async function detectProjectCommands(files: FileContent[]): Promise<Proje
|
|
| 53 |
if (hasFile('index.html')) {
|
| 54 |
return {
|
| 55 |
type: 'Static',
|
| 56 |
-
|
| 57 |
followupMessage: '',
|
| 58 |
};
|
| 59 |
}
|
|
@@ -62,17 +64,28 @@ export async function detectProjectCommands(files: FileContent[]): Promise<Proje
|
|
| 62 |
}
|
| 63 |
|
| 64 |
export function createCommandsMessage(commands: ProjectCommands): Message | null {
|
| 65 |
-
if (!commands.setupCommand) {
|
| 66 |
return null;
|
| 67 |
}
|
| 68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
return {
|
| 70 |
role: 'assistant',
|
| 71 |
content: `
|
| 72 |
<boltArtifact id="project-setup" title="Project Setup">
|
| 73 |
-
|
| 74 |
-
${commands.setupCommand}
|
| 75 |
-
</boltAction>
|
| 76 |
</boltArtifact>${commands.followupMessage ? `\n\n${commands.followupMessage}` : ''}`,
|
| 77 |
id: generateId(),
|
| 78 |
createdAt: new Date(),
|
|
|
|
| 3 |
|
| 4 |
export interface ProjectCommands {
|
| 5 |
type: string;
|
| 6 |
+
setupCommand?: string;
|
| 7 |
+
startCommand?: string;
|
| 8 |
followupMessage: string;
|
| 9 |
}
|
| 10 |
|
|
|
|
| 34 |
if (availableCommand) {
|
| 35 |
return {
|
| 36 |
type: 'Node.js',
|
| 37 |
+
setupCommand: `npm install`,
|
| 38 |
+
startCommand: `npm run ${availableCommand}`,
|
| 39 |
followupMessage: `Found "${availableCommand}" script in package.json. Running "npm run ${availableCommand}" after installation.`,
|
| 40 |
};
|
| 41 |
}
|
|
|
|
| 55 |
if (hasFile('index.html')) {
|
| 56 |
return {
|
| 57 |
type: 'Static',
|
| 58 |
+
startCommand: 'npx --yes serve',
|
| 59 |
followupMessage: '',
|
| 60 |
};
|
| 61 |
}
|
|
|
|
| 64 |
}
|
| 65 |
|
| 66 |
export function createCommandsMessage(commands: ProjectCommands): Message | null {
|
| 67 |
+
if (!commands.setupCommand && !commands.startCommand) {
|
| 68 |
return null;
|
| 69 |
}
|
| 70 |
|
| 71 |
+
let commandString = '';
|
| 72 |
+
|
| 73 |
+
if (commands.setupCommand) {
|
| 74 |
+
commandString += `
|
| 75 |
+
<boltAction type="shell">${commands.setupCommand}</boltAction>`;
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
if (commands.startCommand) {
|
| 79 |
+
commandString += `
|
| 80 |
+
<boltAction type="start">${commands.startCommand}</boltAction>
|
| 81 |
+
`;
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
return {
|
| 85 |
role: 'assistant',
|
| 86 |
content: `
|
| 87 |
<boltArtifact id="project-setup" title="Project Setup">
|
| 88 |
+
${commandString}
|
|
|
|
|
|
|
| 89 |
</boltArtifact>${commands.followupMessage ? `\n\n${commands.followupMessage}` : ''}`,
|
| 90 |
id: generateId(),
|
| 91 |
createdAt: new Date(),
|