Project
The assistant that specializes in project operations like reading/writing a file/directory or running a build.
src
├── prompts
│ ├── project.ts
│ ├── documentation.ts
│ └── typescript.ts
└── developer.ts
/src/prompts/project.ts
import { ChatPrompt } from '@microsoft/spark.ai';
import { OpenAIChatModel } from '@microsoft/spark.openai';
export const project = new ChatPrompt({
instructions: [
'you are an expert Typescript project manager.',
'you help other developers perform various development tasks including:',
'- reading source files/directories',
'- writing source files/directories',
'- running builds',
].join('\n'),
model: new OpenAIChatModel({
model: 'gpt-4o',
apiKey: process.OPENAI_API_KEY,
}),
})
.function(
'read-file',
'read a source file',
{
type: 'object',
properties: {
path: {
type: 'string',
description: 'the path to the file',
},
},
required: ['path'],
},
async ({ path }: { path: string }) => {
// read the file and return the string content
}
)
.function(
'read-directory',
'read the contents of a directory',
{
type: 'object',
properties: {
path: {
type: 'string',
description: 'the path to the directory',
},
},
required: ['path'],
},
async ({ path }: { path: string }) => {
// read the directory and return the list of files
}
)
.function(
'write-file',
'write to a source file',
{
type: 'object',
properties: {
path: {
type: 'string',
description: 'the path to the file',
},
content: {
type: 'string',
description: 'the content to write',
},
},
required: ['path', 'content'],
},
async ({ text, content }: { text: string; content: string }) => {
// write to the file recursively
}
)
.function('build', 'run a project build', async () => {
// run build
});