fix: issue with alternate message when importing from folder and git (#1216)

This commit is contained in:
Anirban Kar 2025-01-29 22:16:58 +05:30 committed by GitHub
parent 7016111906
commit f5fbf421e9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 31 additions and 8 deletions

View File

@ -91,6 +91,11 @@ ${escapeBoltTags(file.content)}
const messages = [filesMessage];
if (commandsMessage) {
messages.push({
role: 'user',
id: generateId(),
content: 'Setup the codebase and Start the application',
});
messages.push(commandsMessage);
}

View File

@ -38,7 +38,7 @@ export const createChatFromFolder = async (
role: 'assistant',
content: `I've imported the contents of the "${folderName}" folder.${binaryFilesMessage}
<boltArtifact id="imported-files" title="Imported Files">
<boltArtifact id="imported-files" title="Imported Files" type="bundled" >
${fileArtifacts
.map(
(file) => `<boltAction type="file" filePath="${file.path}">
@ -61,6 +61,11 @@ ${escapeBoltTags(file.content)}
const messages = [userMessage, filesMessage];
if (commandsMessage) {
messages.push({
role: 'user',
id: generateId(),
content: 'Setup the codebase and Start the application',
});
messages.push(commandsMessage);
}

View File

@ -3,7 +3,8 @@ import { generateId } from './fileUtils';
export interface ProjectCommands {
type: string;
setupCommand: string;
setupCommand?: string;
startCommand?: string;
followupMessage: string;
}
@ -33,7 +34,8 @@ export async function detectProjectCommands(files: FileContent[]): Promise<Proje
if (availableCommand) {
return {
type: 'Node.js',
setupCommand: `npm install && npm run ${availableCommand}`,
setupCommand: `npm install`,
startCommand: `npm run ${availableCommand}`,
followupMessage: `Found "${availableCommand}" script in package.json. Running "npm run ${availableCommand}" after installation.`,
};
}
@ -53,7 +55,7 @@ export async function detectProjectCommands(files: FileContent[]): Promise<Proje
if (hasFile('index.html')) {
return {
type: 'Static',
setupCommand: 'npx --yes serve',
startCommand: 'npx --yes serve',
followupMessage: '',
};
}
@ -62,17 +64,28 @@ export async function detectProjectCommands(files: FileContent[]): Promise<Proje
}
export function createCommandsMessage(commands: ProjectCommands): Message | null {
if (!commands.setupCommand) {
if (!commands.setupCommand && !commands.startCommand) {
return null;
}
let commandString = '';
if (commands.setupCommand) {
commandString += `
<boltAction type="shell">${commands.setupCommand}</boltAction>`;
}
if (commands.startCommand) {
commandString += `
<boltAction type="start">${commands.startCommand}</boltAction>
`;
}
return {
role: 'assistant',
content: `
<boltArtifact id="project-setup" title="Project Setup">
<boltAction type="shell">
${commands.setupCommand}
</boltAction>
${commandString}
</boltArtifact>${commands.followupMessage ? `\n\n${commands.followupMessage}` : ''}`,
id: generateId(),
createdAt: new Date(),