Developer

The top level assistant that is responsible for orchestrating the other assistants.

src ├── prompts │ ├── project.ts │ ├── documentation.ts │ └── typescript.ts └── developer.ts

/src/developer.ts

import { ChatPrompt, ObjectSchema } from '@microsoft/spark.ai'; import { OpenAIChatModel } from '@microsoft/spark.openai'; import { project } from './prompts/project'; import { documentation } from './prompts/documentation'; import { typescript } from './prompts/typescript'; const schema: ObjectSchema = { type: 'object', properties: { text: { type: 'string', description: 'what you want to ask or say to the assistant', }, }, required: ['text'], }; const developer = new ChatPrompt({ instructions: [ 'you are an expert Typescript developer.', 'you help other developers perform various development tasks including:', '- searching documentation', '- writing/reading/building the project source code', '- searching/resolving typescript related errors.', ].join('\n'), model: new OpenAIChatModel({ model: 'gpt-4o', apiKey: process.OPENAI_API_KEY, stream: true, }), }) .function( 'project-assistant', 'ask the project assistant to read or write a file/directory from the source code, or run a build', schema, async ({ text }: { text: string }) => { return project.chat(text); } ) .function( 'documentation-assistant', 'ask the documentation assistant to search for how to use internal packages', schema, async ({ text }: { text: string }) => { return documentation.chat(text); } ) .function( 'typescript-assistant', 'ask the typescript assistant search the web for typescript errors and offer possible solutions', schema, async ({ text }: { text: string }) => { return typescript.chat(text); } ); (async () => { await developer.chat('run a build and fix any errors', (chunk) => { process.stdout.write(chunk); }); process.stdout.write('\n'); })();