export declare const workflowResearch = "\n## \uD83D\uDD0D **COMPREHENSIVE MASTRA WORKFLOW RESEARCH SUMMARY**\n\nBased on extensive research of Mastra documentation and examples, here's essential information for building effective Mastra workflows:\n\n### **\uD83D\uDCCB WORKFLOW FUNDAMENTALS**\n\n**Core Components:**\n- **`createWorkflow()`**: Main factory function that creates workflow instances\n- **`createStep()`**: Creates individual workflow steps with typed inputs/outputs \n- **`.commit()`**: Finalizes workflow definition (REQUIRED to make workflows executable)\n- **Zod schemas**: Used for strict input/output typing and validation\n\n**Basic Structure:**\n```typescript\nimport { createWorkflow, createStep } from \"@mastra/core/workflows\";\nimport { z } from \"zod\";\n\nconst workflow = createWorkflow({\n id: \"unique-workflow-id\", // Required: kebab-case recommended\n description: \"What this workflow does\", // Optional but recommended\n inputSchema: z.object({...}), // Required: Defines workflow inputs\n outputSchema: z.object({...}) // Required: Defines final outputs\n})\n .then(step1) // Chain steps sequentially\n .then(step2)\n .commit(); // CRITICAL: Makes workflow executable\n```\n\n### **\uD83D\uDD27 STEP CREATION PATTERNS**\n\n**Standard Step Definition:**\n```typescript\nconst myStep = createStep({\n id: \"step-id\", // Required: unique identifier\n description: \"Step description\", // Recommended for clarity\n inputSchema: z.object({...}), // Required: input validation\n outputSchema: z.object({...}), // Required: output validation\n execute: async ({ inputData, mastra, getStepResult, getInitData }) => {\n // Step logic here\n return { /* matches outputSchema */ };\n }\n});\n```\n\n**Execute Function Parameters:**\n- `inputData`: Validated input matching inputSchema\n- `mastra`: Access to Mastra instance (agents, tools, other workflows)\n- `getStepResult(stepInstance)`: Get results from previous steps\n- `getInitData()`: Access original workflow input data\n- `requestContext`: Runtime dependency injection context\n- `runCount`: Number of times this step has run (useful for retries)\n\n### **\uD83D\uDD04 CONTROL FLOW METHODS**\n\n**Sequential Execution:**\n- `.then(step)`: Execute steps one after another\n- Data flows automatically if schemas match\n\n**Parallel Execution:**\n- `.parallel([step1, step2])`: Run steps simultaneously\n- All parallel steps complete before continuing\n\n**Conditional Logic:**\n- `.branch([[condition, step], [condition, step]])`: Execute different steps based on conditions\n- Conditions evaluated sequentially, matching steps run in parallel\n\n**Loops:**\n- `.dountil(step, condition)`: Repeat until condition becomes true\n- `.dowhile(step, condition)`: Repeat while condition is true \n- `.foreach(step, {concurrency: N})`: Execute step for each array item\n\n**Data Transformation:**\n- `.map(({ inputData, getStepResult, getInitData }) => transformedData)`: Transform data between steps\n\n### **\u23F8\uFE0F SUSPEND & RESUME CAPABILITIES**\n\n**For Human-in-the-Loop Workflows:**\n```typescript\nconst userInputStep = createStep({\n id: \"user-input\",\n suspendSchema: z.object({}), // Schema for suspension payload\n resumeSchema: z.object({ // Schema for resume data\n userResponse: z.string()\n }),\n execute: async ({ resumeData, suspend }) => {\n if (!resumeData?.userResponse) {\n await suspend({}); // Pause workflow\n return { response: \"\" };\n }\n return { response: resumeData.userResponse };\n }\n});\n```\n\n**Resume Workflow:**\n```typescript\nconst result = await run.start({ inputData: {...} });\nif (result.status === \"suspended\") {\n await run.resume({\n step: result.suspended[0], // Or specific step ID\n resumeData: { userResponse: \"answer\" }\n });\n}\n```\n\n### **\uD83D\uDEE0\uFE0F INTEGRATING AGENTS & TOOLS**\n\n**Using Agents in Steps:**\n```typescript\n// Method 1: Agent as step\nconst agentStep = createStep(myAgent);\n\n// Method 2: Call agent in execute function\nconst step = createStep({\n execute: async ({ inputData }) => {\n const result = await myAgent.generate(prompt);\n return { output: result.text };\n }\n});\n```\n\n**Using Tools in Steps:**\n```typescript\n// Method 1: Tool as step \nconst toolStep = createStep(myTool);\n\n// Method 2: Call tool in execute function\nconst step = createStep({\n execute: async ({ inputData, requestContext }) => {\n const result = await myTool.execute({\n context: inputData,\n requestContext\n });\n return result;\n }\n});\n```\n\n### **\uD83D\uDDC2\uFE0F PROJECT ORGANIZATION PATTERNS**\n\n**MANDATORY Workflow Organization:**\nEach workflow MUST be organized in its own dedicated folder with separated concerns:\n\n```\nsrc/mastra/workflows/\n\u251C\u2500\u2500 my-workflow-name/ # Kebab-case folder name\n\u2502 \u251C\u2500\u2500 types.ts # All Zod schemas and TypeScript types\n\u2502 \u251C\u2500\u2500 steps.ts # All individual step definitions\n\u2502 \u251C\u2500\u2500 workflow.ts # Main workflow composition and export\n\u2502 \u2514\u2500\u2500 utils.ts # Helper functions (if needed)\n\u251C\u2500\u2500 another-workflow/\n\u2502 \u251C\u2500\u2500 types.ts\n\u2502 \u251C\u2500\u2500 steps.ts\n\u2502 \u251C\u2500\u2500 workflow.ts\n\u2502 \u2514\u2500\u2500 utils.ts\n\u2514\u2500\u2500 index.ts # Export all workflows\n```\n\n**CRITICAL File Organization Rules:**\n- **ALWAYS create a dedicated folder** for each workflow\n- **Folder names MUST be kebab-case** version of workflow name\n- **types.ts**: Define all input/output schemas, validation types, and interfaces\n- **steps.ts**: Create all individual step definitions using createStep()\n- **workflow.ts**: Compose steps into workflow using createWorkflow() and export the final workflow\n- **utils.ts**: Any helper functions, constants, or utilities (create only if needed)\n- **NEVER put everything in one file** - always separate concerns properly\n\n**Workflow Registration:**\n```typescript\n// src/mastra/index.ts\nexport const mastra = new Mastra({\n workflows: {\n sendEmailWorkflow, // Use camelCase for keys\n dataProcessingWorkflow\n },\n storage: new LibSQLStore({ id: 'mastra-storage', url: 'file:./mastra.db' }), // Required for suspend/resume\n});\n```\n\n### **\uD83D\uDCE6 ESSENTIAL DEPENDENCIES**\n\n**Required Packages:**\n```json\n{\n \"dependencies\": {\n \"@mastra/core\": \"latest\",\n \"zod\": \"^3.25.67\"\n }\n}\n```\n\n**Additional Packages (as needed):**\n- `@mastra/libsql`: For workflow state persistence\n- `@ai-sdk/openai`: For AI model integration\n- `ai`: For AI SDK functionality\n\n### **\u2705 WORKFLOW BEST PRACTICES**\n\n**Schema Design:**\n- Use descriptive property names in schemas\n- Make schemas as specific as possible (avoid `z.any()`)\n- Include validation for required business logic\n\n**Error Handling:**\n- Use `try/catch` blocks in step execute functions\n- Return meaningful error messages\n- Consider using `bail()` for early successful exits\n\n**Step Organization:**\n- Keep steps focused on single responsibilities\n- Use descriptive step IDs (kebab-case recommended)\n- Create reusable steps for common operations\n\n**Data Flow:**\n- Use `.map()` when schemas don't align between steps\n- Access previous step results with `getStepResult(stepInstance)`\n- Use `getInitData()` to access original workflow input\n\n### **\uD83D\uDE80 EXECUTION PATTERNS**\n\n**Running Workflows:**\n```typescript\n// Create and start run\nconst run = await workflow.createRun();\nconst result = await run.start({ inputData: {...} });\n\n// Stream execution for real-time monitoring\nconst stream = await run.streamVNext({ inputData: {...} });\nfor await (const chunk of stream) {\n console.log(chunk);\n}\n\n// Watch for events\nrun.watch((event) => console.log(event));\n```\n\n**Workflow Status Types:**\n- `\"success\"`: Completed successfully\n- `\"suspended\"`: Paused awaiting input\n- `\"failed\"`: Encountered error\n\n### **\uD83D\uDD17 ADVANCED FEATURES**\n\n**Nested Workflows:**\n- Use workflows as steps: `.then(otherWorkflow)`\n- Enable complex workflow composition\n\n**Request Context:**\n- Pass shared data across all steps\n- Enable dependency injection patterns\n\n**Streaming & Events:**\n- Real-time workflow monitoring\n- Integration with external event systems\n\n**Cloning:**\n- `cloneWorkflow(original, {id: \"new-id\"})`: Reuse workflow structure\n- `cloneStep(original, {id: \"new-id\"})`: Reuse step logic\n\nThis comprehensive research provides the foundation for creating robust, maintainable Mastra workflows with proper typing, error handling, and architectural patterns.\n"; /** * Prompts and instructions for workflow builder agents */ export interface WorkflowBuilderPrompts { researchAgent: { instructions: string; prompt: (context: { projectStructure: any; dependencies: any; hasWorkflowsDir: boolean; }) => string; }; executionAgent: { instructions: (context: { action: string; workflowName?: string; tasksLength: number; currentProjectPath: string; discoveredWorkflows: any; projectStructure: any; research: any; tasks: any[]; resumeData?: any; }) => string; prompt: (context: { action: string; workflowName?: string; tasks: any[]; resumeData?: any; }) => string; iterationPrompt: (context: { completedTasks: any[]; pendingTasks: any[]; workflowName?: string; resumeData?: any; }) => string; }; validation: { instructions: string; }; } export declare const workflowBuilderPrompts: WorkflowBuilderPrompts; //# sourceMappingURL=prompts.d.ts.map