@mastra/agent-builder 0.0.1-alpha.1 → 0.0.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/agent/index.d.ts +5885 -0
  3. package/dist/agent/index.d.ts.map +1 -0
  4. package/dist/defaults.d.ts +6529 -0
  5. package/dist/defaults.d.ts.map +1 -0
  6. package/dist/index.d.ts +4 -4
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +1810 -36
  9. package/dist/index.js.map +1 -0
  10. package/dist/processors/tool-summary.d.ts +29 -0
  11. package/dist/processors/tool-summary.d.ts.map +1 -0
  12. package/dist/processors/write-file.d.ts +10 -0
  13. package/dist/processors/write-file.d.ts.map +1 -0
  14. package/dist/types.d.ts +1121 -0
  15. package/dist/types.d.ts.map +1 -0
  16. package/dist/utils.d.ts +63 -0
  17. package/dist/utils.d.ts.map +1 -0
  18. package/dist/workflows/index.d.ts +5 -0
  19. package/dist/workflows/index.d.ts.map +1 -0
  20. package/dist/workflows/shared/schema.d.ts +139 -0
  21. package/dist/workflows/shared/schema.d.ts.map +1 -0
  22. package/dist/workflows/task-planning/prompts.d.ts +37 -0
  23. package/dist/workflows/task-planning/prompts.d.ts.map +1 -0
  24. package/dist/workflows/task-planning/schema.d.ts +548 -0
  25. package/dist/workflows/task-planning/schema.d.ts.map +1 -0
  26. package/dist/workflows/task-planning/task-planning.d.ts +992 -0
  27. package/dist/workflows/task-planning/task-planning.d.ts.map +1 -0
  28. package/dist/workflows/template-builder/template-builder.d.ts +1910 -0
  29. package/dist/workflows/template-builder/template-builder.d.ts.map +1 -0
  30. package/dist/workflows/workflow-builder/prompts.d.ts +44 -0
  31. package/dist/workflows/workflow-builder/prompts.d.ts.map +1 -0
  32. package/dist/workflows/workflow-builder/schema.d.ts +1170 -0
  33. package/dist/workflows/workflow-builder/schema.d.ts.map +1 -0
  34. package/dist/workflows/workflow-builder/tools.d.ts +309 -0
  35. package/dist/workflows/workflow-builder/tools.d.ts.map +1 -0
  36. package/dist/workflows/workflow-builder/workflow-builder.d.ts +2714 -0
  37. package/dist/workflows/workflow-builder/workflow-builder.d.ts.map +1 -0
  38. package/dist/workflows/workflow-map.d.ts +3735 -0
  39. package/dist/workflows/workflow-map.d.ts.map +1 -0
  40. package/package.json +20 -9
  41. package/.turbo/turbo-build.log +0 -12
  42. package/dist/_tsup-dts-rollup.d.cts +0 -14933
  43. package/dist/_tsup-dts-rollup.d.ts +0 -14933
  44. package/dist/index.cjs +0 -4357
  45. package/dist/index.d.cts +0 -4
  46. package/eslint.config.js +0 -11
  47. package/integration-tests/CHANGELOG.md +0 -9
  48. package/integration-tests/README.md +0 -154
  49. package/integration-tests/docker-compose.yml +0 -39
  50. package/integration-tests/package.json +0 -38
  51. package/integration-tests/src/agent-template-behavior.test.ts +0 -103
  52. package/integration-tests/src/fixtures/minimal-mastra-project/env.example +0 -6
  53. package/integration-tests/src/fixtures/minimal-mastra-project/package.json +0 -17
  54. package/integration-tests/src/fixtures/minimal-mastra-project/src/mastra/agents/weather.ts +0 -34
  55. package/integration-tests/src/fixtures/minimal-mastra-project/src/mastra/index.ts +0 -15
  56. package/integration-tests/src/fixtures/minimal-mastra-project/src/mastra/mcp/index.ts +0 -46
  57. package/integration-tests/src/fixtures/minimal-mastra-project/src/mastra/tools/weather.ts +0 -14
  58. package/integration-tests/src/fixtures/minimal-mastra-project/tsconfig.json +0 -17
  59. package/integration-tests/src/template-integration.test.ts +0 -312
  60. package/integration-tests/tsconfig.json +0 -9
  61. package/integration-tests/vitest.config.ts +0 -18
  62. package/src/agent/index.ts +0 -187
  63. package/src/agent-builder.test.ts +0 -313
  64. package/src/defaults.ts +0 -2876
  65. package/src/index.ts +0 -3
  66. package/src/processors/tool-summary.ts +0 -145
  67. package/src/processors/write-file.ts +0 -17
  68. package/src/types.ts +0 -305
  69. package/src/utils.ts +0 -409
  70. package/src/workflows/index.ts +0 -1
  71. package/src/workflows/template-builder.ts +0 -1682
  72. package/tsconfig.json +0 -5
  73. package/vitest.config.ts +0 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-builder.d.ts","sourceRoot":"","sources":["../../../src/workflows/template-builder/template-builder.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+4CxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqN9B,CAAC;AAGZ,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yHAU1E"}
@@ -0,0 +1,44 @@
1
+ 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- `runtimeContext`: 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, runtimeContext }) => {\n const result = await myTool.execute({\n context: inputData,\n runtimeContext\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({ 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.createRunAsync();\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**Runtime 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";
2
+ /**
3
+ * Prompts and instructions for workflow builder agents
4
+ */
5
+ export interface WorkflowBuilderPrompts {
6
+ researchAgent: {
7
+ instructions: string;
8
+ prompt: (context: {
9
+ projectStructure: any;
10
+ dependencies: any;
11
+ hasWorkflowsDir: boolean;
12
+ }) => string;
13
+ };
14
+ executionAgent: {
15
+ instructions: (context: {
16
+ action: string;
17
+ workflowName?: string;
18
+ tasksLength: number;
19
+ currentProjectPath: string;
20
+ discoveredWorkflows: any;
21
+ projectStructure: any;
22
+ research: any;
23
+ tasks: any[];
24
+ resumeData?: any;
25
+ }) => string;
26
+ prompt: (context: {
27
+ action: string;
28
+ workflowName?: string;
29
+ tasks: any[];
30
+ resumeData?: any;
31
+ }) => string;
32
+ iterationPrompt: (context: {
33
+ completedTasks: any[];
34
+ pendingTasks: any[];
35
+ workflowName?: string;
36
+ resumeData?: any;
37
+ }) => string;
38
+ };
39
+ validation: {
40
+ instructions: string;
41
+ };
42
+ }
43
+ export declare const workflowBuilderPrompts: WorkflowBuilderPrompts;
44
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/workflows/workflow-builder/prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,0qRAqQ5B,CAAC;AACF;;GAEG;AAEH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,CAAC,OAAO,EAAE;YAAE,gBAAgB,EAAE,GAAG,CAAC;YAAC,YAAY,EAAE,GAAG,CAAC;YAAC,eAAe,EAAE,OAAO,CAAA;SAAE,KAAK,MAAM,CAAC;KACrG,CAAC;IACF,cAAc,EAAE;QACd,YAAY,EAAE,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM,CAAC;YACf,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,mBAAmB,EAAE,GAAG,CAAC;YACzB,gBAAgB,EAAE,GAAG,CAAC;YACtB,QAAQ,EAAE,GAAG,CAAC;YACd,KAAK,EAAE,GAAG,EAAE,CAAC;YACb,UAAU,CAAC,EAAE,GAAG,CAAC;SAClB,KAAK,MAAM,CAAC;QACb,MAAM,EAAE,CAAC,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YAAC,UAAU,CAAC,EAAE,GAAG,CAAA;SAAE,KAAK,MAAM,CAAC;QACvG,eAAe,EAAE,CAAC,OAAO,EAAE;YACzB,cAAc,EAAE,GAAG,EAAE,CAAC;YACtB,YAAY,EAAE,GAAG,EAAE,CAAC;YACpB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,UAAU,CAAC,EAAE,GAAG,CAAC;SAClB,KAAK,MAAM,CAAC;KACd,CAAC;IACF,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,eAAO,MAAM,sBAAsB,EAAE,sBAsIpC,CAAC"}