@mastra/mcp-docs-server 1.1.5 → 1.1.6-alpha.0
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.
- package/.docs/docs/agents/adding-voice.md +349 -0
- package/.docs/docs/agents/agent-approval.md +558 -0
- package/.docs/docs/agents/agent-memory.md +209 -0
- package/.docs/docs/agents/guardrails.md +374 -0
- package/.docs/docs/agents/network-approval.md +275 -0
- package/.docs/docs/agents/networks.md +299 -0
- package/.docs/docs/agents/overview.md +304 -0
- package/.docs/docs/agents/processors.md +622 -0
- package/.docs/docs/agents/structured-output.md +273 -0
- package/.docs/docs/agents/supervisor-agents.md +304 -0
- package/.docs/docs/agents/using-tools.md +214 -0
- package/.docs/docs/build-with-ai/mcp-docs-server.md +238 -0
- package/.docs/docs/build-with-ai/skills.md +35 -0
- package/.docs/docs/community/contributing-templates.md +3 -0
- package/.docs/docs/community/discord.md +9 -0
- package/.docs/docs/community/licensing.md +66 -0
- package/.docs/docs/deployment/cloud-providers.md +15 -0
- package/.docs/docs/deployment/mastra-server.md +122 -0
- package/.docs/docs/deployment/monorepo.md +142 -0
- package/.docs/docs/deployment/overview.md +62 -0
- package/.docs/docs/deployment/studio.md +239 -0
- package/.docs/docs/deployment/web-framework.md +52 -0
- package/.docs/docs/deployment/workflow-runners.md +9 -0
- package/.docs/docs/evals/built-in-scorers.md +47 -0
- package/.docs/docs/evals/custom-scorers.md +519 -0
- package/.docs/docs/evals/overview.md +141 -0
- package/.docs/docs/evals/running-in-ci.md +124 -0
- package/.docs/docs/getting-started/build-with-ai.md +68 -0
- package/.docs/docs/getting-started/manual-install.md +226 -0
- package/.docs/docs/getting-started/project-structure.md +60 -0
- package/.docs/docs/getting-started/start.md +28 -0
- package/.docs/docs/getting-started/studio.md +101 -0
- package/.docs/docs/index.md +43 -0
- package/.docs/docs/mastra-cloud/deployment.md +77 -0
- package/.docs/docs/mastra-cloud/observability.md +38 -0
- package/.docs/docs/mastra-cloud/overview.md +23 -0
- package/.docs/docs/mastra-cloud/setup.md +42 -0
- package/.docs/docs/mastra-cloud/studio.md +24 -0
- package/.docs/docs/mastra-code/configuration.md +299 -0
- package/.docs/docs/mastra-code/customization.md +228 -0
- package/.docs/docs/mastra-code/modes.md +104 -0
- package/.docs/docs/mastra-code/overview.md +135 -0
- package/.docs/docs/mastra-code/tools.md +229 -0
- package/.docs/docs/mcp/overview.md +373 -0
- package/.docs/docs/mcp/publishing-mcp-server.md +95 -0
- package/.docs/docs/memory/memory-processors.md +314 -0
- package/.docs/docs/memory/message-history.md +260 -0
- package/.docs/docs/memory/observational-memory.md +248 -0
- package/.docs/docs/memory/overview.md +45 -0
- package/.docs/docs/memory/semantic-recall.md +272 -0
- package/.docs/docs/memory/storage.md +261 -0
- package/.docs/docs/memory/working-memory.md +400 -0
- package/.docs/docs/observability/datasets/overview.md +198 -0
- package/.docs/docs/observability/datasets/running-experiments.md +274 -0
- package/.docs/docs/observability/logging.md +99 -0
- package/.docs/docs/observability/overview.md +70 -0
- package/.docs/docs/observability/tracing/bridges/otel.md +209 -0
- package/.docs/docs/observability/tracing/exporters/arize.md +272 -0
- package/.docs/docs/observability/tracing/exporters/braintrust.md +111 -0
- package/.docs/docs/observability/tracing/exporters/cloud.md +127 -0
- package/.docs/docs/observability/tracing/exporters/datadog.md +187 -0
- package/.docs/docs/observability/tracing/exporters/default.md +209 -0
- package/.docs/docs/observability/tracing/exporters/laminar.md +100 -0
- package/.docs/docs/observability/tracing/exporters/langfuse.md +213 -0
- package/.docs/docs/observability/tracing/exporters/langsmith.md +198 -0
- package/.docs/docs/observability/tracing/exporters/otel.md +476 -0
- package/.docs/docs/observability/tracing/exporters/posthog.md +148 -0
- package/.docs/docs/observability/tracing/exporters/sentry.md +208 -0
- package/.docs/docs/observability/tracing/overview.md +1112 -0
- package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +300 -0
- package/.docs/docs/rag/chunking-and-embedding.md +183 -0
- package/.docs/docs/rag/graph-rag.md +215 -0
- package/.docs/docs/rag/overview.md +72 -0
- package/.docs/docs/rag/retrieval.md +515 -0
- package/.docs/docs/rag/vector-databases.md +645 -0
- package/.docs/docs/server/auth/auth0.md +220 -0
- package/.docs/docs/server/auth/better-auth.md +203 -0
- package/.docs/docs/server/auth/clerk.md +132 -0
- package/.docs/docs/server/auth/composite-auth.md +234 -0
- package/.docs/docs/server/auth/custom-auth-provider.md +513 -0
- package/.docs/docs/server/auth/firebase.md +272 -0
- package/.docs/docs/server/auth/jwt.md +110 -0
- package/.docs/docs/server/auth/simple-auth.md +180 -0
- package/.docs/docs/server/auth/supabase.md +117 -0
- package/.docs/docs/server/auth/workos.md +186 -0
- package/.docs/docs/server/auth.md +38 -0
- package/.docs/docs/server/custom-adapters.md +378 -0
- package/.docs/docs/server/custom-api-routes.md +267 -0
- package/.docs/docs/server/mastra-client.md +243 -0
- package/.docs/docs/server/mastra-server.md +71 -0
- package/.docs/docs/server/middleware.md +225 -0
- package/.docs/docs/server/request-context.md +471 -0
- package/.docs/docs/server/server-adapters.md +547 -0
- package/.docs/docs/streaming/events.md +237 -0
- package/.docs/docs/streaming/overview.md +175 -0
- package/.docs/docs/streaming/tool-streaming.md +175 -0
- package/.docs/docs/streaming/workflow-streaming.md +109 -0
- package/.docs/docs/voice/overview.md +959 -0
- package/.docs/docs/voice/speech-to-speech.md +102 -0
- package/.docs/docs/voice/speech-to-text.md +79 -0
- package/.docs/docs/voice/text-to-speech.md +83 -0
- package/.docs/docs/workflows/agents-and-tools.md +166 -0
- package/.docs/docs/workflows/control-flow.md +822 -0
- package/.docs/docs/workflows/error-handling.md +360 -0
- package/.docs/docs/workflows/human-in-the-loop.md +215 -0
- package/.docs/docs/workflows/overview.md +370 -0
- package/.docs/docs/workflows/snapshots.md +238 -0
- package/.docs/docs/workflows/suspend-and-resume.md +205 -0
- package/.docs/docs/workflows/time-travel.md +309 -0
- package/.docs/docs/workflows/workflow-state.md +181 -0
- package/.docs/docs/workspace/filesystem.md +164 -0
- package/.docs/docs/workspace/overview.md +239 -0
- package/.docs/docs/workspace/sandbox.md +63 -0
- package/.docs/docs/workspace/search.md +243 -0
- package/.docs/docs/workspace/skills.md +169 -0
- package/.docs/guides/agent-frameworks/ai-sdk.md +140 -0
- package/.docs/guides/build-your-ui/ai-sdk-ui.md +1499 -0
- package/.docs/guides/build-your-ui/assistant-ui.md +156 -0
- package/.docs/guides/build-your-ui/copilotkit.md +289 -0
- package/.docs/guides/deployment/amazon-ec2.md +130 -0
- package/.docs/guides/deployment/aws-lambda.md +248 -0
- package/.docs/guides/deployment/azure-app-services.md +114 -0
- package/.docs/guides/deployment/cloudflare.md +99 -0
- package/.docs/guides/deployment/digital-ocean.md +168 -0
- package/.docs/guides/deployment/inngest.md +682 -0
- package/.docs/guides/deployment/netlify.md +77 -0
- package/.docs/guides/deployment/vercel.md +101 -0
- package/.docs/guides/getting-started/astro.md +398 -0
- package/.docs/guides/getting-started/electron.md +504 -0
- package/.docs/guides/getting-started/express.md +251 -0
- package/.docs/guides/getting-started/hono.md +190 -0
- package/.docs/guides/getting-started/next-js.md +347 -0
- package/.docs/guides/getting-started/nuxt.md +497 -0
- package/.docs/guides/getting-started/quickstart.md +67 -0
- package/.docs/guides/getting-started/sveltekit.md +296 -0
- package/.docs/guides/getting-started/vite-react.md +425 -0
- package/.docs/guides/guide/ai-recruiter.md +226 -0
- package/.docs/guides/guide/chef-michel.md +211 -0
- package/.docs/guides/guide/code-review-bot.md +226 -0
- package/.docs/guides/guide/dev-assistant.md +307 -0
- package/.docs/guides/guide/docs-manager.md +238 -0
- package/.docs/guides/guide/github-actions-pr-description.md +236 -0
- package/.docs/guides/guide/notes-mcp-server.md +416 -0
- package/.docs/guides/guide/research-assistant.md +348 -0
- package/.docs/guides/guide/research-coordinator.md +416 -0
- package/.docs/guides/guide/stock-agent.md +132 -0
- package/.docs/guides/guide/web-search.md +320 -0
- package/.docs/guides/guide/whatsapp-chat-bot.md +405 -0
- package/.docs/guides/index.md +3 -0
- package/.docs/guides/migrations/agentnetwork.md +97 -0
- package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +112 -0
- package/.docs/guides/migrations/network-to-supervisor.md +261 -0
- package/.docs/guides/migrations/upgrade-to-v1/agent.md +404 -0
- package/.docs/guides/migrations/upgrade-to-v1/cli.md +57 -0
- package/.docs/guides/migrations/upgrade-to-v1/client.md +337 -0
- package/.docs/guides/migrations/upgrade-to-v1/deployment.md +37 -0
- package/.docs/guides/migrations/upgrade-to-v1/evals.md +239 -0
- package/.docs/guides/migrations/upgrade-to-v1/mastra.md +143 -0
- package/.docs/guides/migrations/upgrade-to-v1/mcp.md +97 -0
- package/.docs/guides/migrations/upgrade-to-v1/memory.md +285 -0
- package/.docs/guides/migrations/upgrade-to-v1/overview.md +119 -0
- package/.docs/guides/migrations/upgrade-to-v1/processors.md +68 -0
- package/.docs/guides/migrations/upgrade-to-v1/rag.md +42 -0
- package/.docs/guides/migrations/upgrade-to-v1/storage.md +553 -0
- package/.docs/guides/migrations/upgrade-to-v1/tools.md +180 -0
- package/.docs/guides/migrations/upgrade-to-v1/tracing.md +412 -0
- package/.docs/guides/migrations/upgrade-to-v1/vectors.md +87 -0
- package/.docs/guides/migrations/upgrade-to-v1/voice.md +30 -0
- package/.docs/guides/migrations/upgrade-to-v1/workflows.md +341 -0
- package/.docs/guides/migrations/vnext-to-standard-apis.md +362 -0
- package/.docs/models/embeddings.md +161 -0
- package/.docs/models/gateways/azure-openai.md +128 -0
- package/.docs/models/gateways/custom-gateways.md +545 -0
- package/.docs/models/gateways/netlify.md +88 -0
- package/.docs/models/gateways/openrouter.md +219 -0
- package/.docs/models/gateways/vercel.md +225 -0
- package/.docs/models/gateways.md +14 -0
- package/.docs/models/index.md +286 -0
- package/.docs/models/providers/302ai.md +134 -0
- package/.docs/models/providers/abacus.md +125 -0
- package/.docs/models/providers/agentrouter.md +90 -0
- package/.docs/models/providers/aihubmix.md +107 -0
- package/.docs/models/providers/alibaba-cn.md +135 -0
- package/.docs/models/providers/alibaba.md +111 -0
- package/.docs/models/providers/amazon-bedrock.md +33 -0
- package/.docs/models/providers/anthropic.md +153 -0
- package/.docs/models/providers/azure.md +33 -0
- package/.docs/models/providers/bailing.md +72 -0
- package/.docs/models/providers/baseten.md +77 -0
- package/.docs/models/providers/berget.md +78 -0
- package/.docs/models/providers/cerebras.md +101 -0
- package/.docs/models/providers/chutes.md +136 -0
- package/.docs/models/providers/cloudflare-ai-gateway.md +33 -0
- package/.docs/models/providers/cloudflare-workers-ai.md +109 -0
- package/.docs/models/providers/cohere.md +33 -0
- package/.docs/models/providers/cortecs.md +91 -0
- package/.docs/models/providers/deepinfra.md +112 -0
- package/.docs/models/providers/deepseek.md +88 -0
- package/.docs/models/providers/fastrouter.md +84 -0
- package/.docs/models/providers/fireworks-ai.md +89 -0
- package/.docs/models/providers/firmware.md +85 -0
- package/.docs/models/providers/friendli.md +78 -0
- package/.docs/models/providers/github-models.md +125 -0
- package/.docs/models/providers/google-vertex.md +33 -0
- package/.docs/models/providers/google.md +159 -0
- package/.docs/models/providers/groq.md +107 -0
- package/.docs/models/providers/helicone.md +161 -0
- package/.docs/models/providers/huggingface.md +90 -0
- package/.docs/models/providers/iflowcn.md +84 -0
- package/.docs/models/providers/inception.md +72 -0
- package/.docs/models/providers/inference.md +79 -0
- package/.docs/models/providers/io-intelligence.md +87 -0
- package/.docs/models/providers/io-net.md +87 -0
- package/.docs/models/providers/jiekou.md +131 -0
- package/.docs/models/providers/kilo.md +333 -0
- package/.docs/models/providers/kimi-for-coding.md +100 -0
- package/.docs/models/providers/kuae-cloud-coding-plan.md +71 -0
- package/.docs/models/providers/llama.md +77 -0
- package/.docs/models/providers/lmstudio.md +73 -0
- package/.docs/models/providers/lucidquery.md +72 -0
- package/.docs/models/providers/minimax-cn-coding-plan.md +102 -0
- package/.docs/models/providers/minimax-cn.md +102 -0
- package/.docs/models/providers/minimax-coding-plan.md +102 -0
- package/.docs/models/providers/minimax.md +104 -0
- package/.docs/models/providers/mistral.md +124 -0
- package/.docs/models/providers/moark.md +72 -0
- package/.docs/models/providers/modelscope.md +77 -0
- package/.docs/models/providers/moonshotai-cn.md +76 -0
- package/.docs/models/providers/moonshotai.md +76 -0
- package/.docs/models/providers/morph.md +73 -0
- package/.docs/models/providers/nano-gpt.md +103 -0
- package/.docs/models/providers/nebius.md +116 -0
- package/.docs/models/providers/nova.md +72 -0
- package/.docs/models/providers/novita-ai.md +154 -0
- package/.docs/models/providers/nvidia.md +141 -0
- package/.docs/models/providers/ollama-cloud.md +103 -0
- package/.docs/models/providers/ollama.md +33 -0
- package/.docs/models/providers/openai.md +193 -0
- package/.docs/models/providers/opencode.md +100 -0
- package/.docs/models/providers/ovhcloud.md +83 -0
- package/.docs/models/providers/perplexity.md +100 -0
- package/.docs/models/providers/poe.md +183 -0
- package/.docs/models/providers/privatemode-ai.md +75 -0
- package/.docs/models/providers/requesty.md +90 -0
- package/.docs/models/providers/scaleway.md +84 -0
- package/.docs/models/providers/siliconflow-cn.md +138 -0
- package/.docs/models/providers/siliconflow.md +140 -0
- package/.docs/models/providers/stackit.md +78 -0
- package/.docs/models/providers/stepfun.md +73 -0
- package/.docs/models/providers/submodel.md +79 -0
- package/.docs/models/providers/synthetic.md +96 -0
- package/.docs/models/providers/togetherai.md +115 -0
- package/.docs/models/providers/upstage.md +73 -0
- package/.docs/models/providers/venice.md +95 -0
- package/.docs/models/providers/vivgrid.md +106 -0
- package/.docs/models/providers/vultr.md +75 -0
- package/.docs/models/providers/wandb.md +80 -0
- package/.docs/models/providers/xai.md +141 -0
- package/.docs/models/providers/xiaomi.md +71 -0
- package/.docs/models/providers/zai-coding-plan.md +80 -0
- package/.docs/models/providers/zai.md +79 -0
- package/.docs/models/providers/zenmux.md +161 -0
- package/.docs/models/providers/zhipuai-coding-plan.md +79 -0
- package/.docs/models/providers/zhipuai.md +79 -0
- package/.docs/models/providers.md +81 -0
- package/.docs/reference/agents/agent.md +141 -0
- package/.docs/reference/agents/generate.md +186 -0
- package/.docs/reference/agents/generateLegacy.md +173 -0
- package/.docs/reference/agents/getDefaultGenerateOptions.md +36 -0
- package/.docs/reference/agents/getDefaultOptions.md +34 -0
- package/.docs/reference/agents/getDefaultStreamOptions.md +36 -0
- package/.docs/reference/agents/getDescription.md +21 -0
- package/.docs/reference/agents/getInstructions.md +34 -0
- package/.docs/reference/agents/getLLM.md +37 -0
- package/.docs/reference/agents/getMemory.md +34 -0
- package/.docs/reference/agents/getModel.md +34 -0
- package/.docs/reference/agents/getTools.md +29 -0
- package/.docs/reference/agents/getVoice.md +34 -0
- package/.docs/reference/agents/listAgents.md +35 -0
- package/.docs/reference/agents/listScorers.md +34 -0
- package/.docs/reference/agents/listTools.md +34 -0
- package/.docs/reference/agents/listWorkflows.md +34 -0
- package/.docs/reference/agents/network.md +133 -0
- package/.docs/reference/ai-sdk/chat-route.md +82 -0
- package/.docs/reference/ai-sdk/handle-chat-stream.md +53 -0
- package/.docs/reference/ai-sdk/handle-network-stream.md +37 -0
- package/.docs/reference/ai-sdk/handle-workflow-stream.md +55 -0
- package/.docs/reference/ai-sdk/network-route.md +74 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +231 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +79 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +76 -0
- package/.docs/reference/ai-sdk/with-mastra.md +59 -0
- package/.docs/reference/ai-sdk/workflow-route.md +79 -0
- package/.docs/reference/auth/auth0.md +73 -0
- package/.docs/reference/auth/better-auth.md +71 -0
- package/.docs/reference/auth/clerk.md +36 -0
- package/.docs/reference/auth/firebase.md +80 -0
- package/.docs/reference/auth/jwt.md +26 -0
- package/.docs/reference/auth/supabase.md +33 -0
- package/.docs/reference/auth/workos.md +84 -0
- package/.docs/reference/cli/create-mastra.md +137 -0
- package/.docs/reference/cli/mastra.md +336 -0
- package/.docs/reference/client-js/agents.md +437 -0
- package/.docs/reference/client-js/error-handling.md +16 -0
- package/.docs/reference/client-js/logs.md +24 -0
- package/.docs/reference/client-js/mastra-client.md +63 -0
- package/.docs/reference/client-js/memory.md +221 -0
- package/.docs/reference/client-js/observability.md +72 -0
- package/.docs/reference/client-js/telemetry.md +20 -0
- package/.docs/reference/client-js/tools.md +44 -0
- package/.docs/reference/client-js/vectors.md +79 -0
- package/.docs/reference/client-js/workflows.md +199 -0
- package/.docs/reference/configuration.md +752 -0
- package/.docs/reference/core/addGateway.md +42 -0
- package/.docs/reference/core/getAgent.md +21 -0
- package/.docs/reference/core/getAgentById.md +21 -0
- package/.docs/reference/core/getDeployer.md +22 -0
- package/.docs/reference/core/getGateway.md +38 -0
- package/.docs/reference/core/getGatewayById.md +41 -0
- package/.docs/reference/core/getLogger.md +22 -0
- package/.docs/reference/core/getMCPServer.md +47 -0
- package/.docs/reference/core/getMCPServerById.md +55 -0
- package/.docs/reference/core/getMemory.md +50 -0
- package/.docs/reference/core/getScorer.md +54 -0
- package/.docs/reference/core/getScorerById.md +54 -0
- package/.docs/reference/core/getServer.md +22 -0
- package/.docs/reference/core/getStorage.md +22 -0
- package/.docs/reference/core/getStoredAgentById.md +89 -0
- package/.docs/reference/core/getTelemetry.md +22 -0
- package/.docs/reference/core/getVector.md +22 -0
- package/.docs/reference/core/getWorkflow.md +42 -0
- package/.docs/reference/core/listAgents.md +21 -0
- package/.docs/reference/core/listGateways.md +40 -0
- package/.docs/reference/core/listLogs.md +38 -0
- package/.docs/reference/core/listLogsByRunId.md +36 -0
- package/.docs/reference/core/listMCPServers.md +55 -0
- package/.docs/reference/core/listMemory.md +56 -0
- package/.docs/reference/core/listScorers.md +29 -0
- package/.docs/reference/core/listStoredAgents.md +93 -0
- package/.docs/reference/core/listVectors.md +22 -0
- package/.docs/reference/core/listWorkflows.md +21 -0
- package/.docs/reference/core/mastra-class.md +66 -0
- package/.docs/reference/core/mastra-model-gateway.md +153 -0
- package/.docs/reference/core/setLogger.md +26 -0
- package/.docs/reference/core/setStorage.md +27 -0
- package/.docs/reference/datasets/addItem.md +37 -0
- package/.docs/reference/datasets/addItems.md +35 -0
- package/.docs/reference/datasets/compareExperiments.md +52 -0
- package/.docs/reference/datasets/create.md +51 -0
- package/.docs/reference/datasets/dataset.md +82 -0
- package/.docs/reference/datasets/datasets-manager.md +94 -0
- package/.docs/reference/datasets/delete.md +25 -0
- package/.docs/reference/datasets/deleteExperiment.md +27 -0
- package/.docs/reference/datasets/deleteItem.md +27 -0
- package/.docs/reference/datasets/deleteItems.md +29 -0
- package/.docs/reference/datasets/get.md +31 -0
- package/.docs/reference/datasets/getDetails.md +47 -0
- package/.docs/reference/datasets/getExperiment.md +30 -0
- package/.docs/reference/datasets/getItem.md +33 -0
- package/.docs/reference/datasets/getItemHistory.md +31 -0
- package/.docs/reference/datasets/list.md +31 -0
- package/.docs/reference/datasets/listExperimentResults.md +39 -0
- package/.docs/reference/datasets/listExperiments.md +33 -0
- package/.docs/reference/datasets/listItems.md +46 -0
- package/.docs/reference/datasets/listVersions.md +33 -0
- package/.docs/reference/datasets/startExperiment.md +62 -0
- package/.docs/reference/datasets/startExperimentAsync.md +43 -0
- package/.docs/reference/datasets/update.md +48 -0
- package/.docs/reference/datasets/updateItem.md +38 -0
- package/.docs/reference/deployer/cloudflare.md +79 -0
- package/.docs/reference/deployer/netlify.md +80 -0
- package/.docs/reference/deployer/vercel.md +91 -0
- package/.docs/reference/deployer.md +100 -0
- package/.docs/reference/evals/answer-relevancy.md +105 -0
- package/.docs/reference/evals/answer-similarity.md +99 -0
- package/.docs/reference/evals/bias.md +120 -0
- package/.docs/reference/evals/completeness.md +136 -0
- package/.docs/reference/evals/content-similarity.md +101 -0
- package/.docs/reference/evals/context-precision.md +196 -0
- package/.docs/reference/evals/context-relevance.md +531 -0
- package/.docs/reference/evals/create-scorer.md +270 -0
- package/.docs/reference/evals/faithfulness.md +114 -0
- package/.docs/reference/evals/hallucination.md +213 -0
- package/.docs/reference/evals/keyword-coverage.md +128 -0
- package/.docs/reference/evals/mastra-scorer.md +123 -0
- package/.docs/reference/evals/noise-sensitivity.md +675 -0
- package/.docs/reference/evals/prompt-alignment.md +614 -0
- package/.docs/reference/evals/run-evals.md +179 -0
- package/.docs/reference/evals/scorer-utils.md +326 -0
- package/.docs/reference/evals/textual-difference.md +113 -0
- package/.docs/reference/evals/tone-consistency.md +119 -0
- package/.docs/reference/evals/tool-call-accuracy.md +533 -0
- package/.docs/reference/evals/toxicity.md +123 -0
- package/.docs/reference/harness/harness-class.md +708 -0
- package/.docs/reference/index.md +277 -0
- package/.docs/reference/logging/pino-logger.md +117 -0
- package/.docs/reference/mastra-code/createMastraCode.md +108 -0
- package/.docs/reference/memory/clone-utilities.md +199 -0
- package/.docs/reference/memory/cloneThread.md +130 -0
- package/.docs/reference/memory/createThread.md +68 -0
- package/.docs/reference/memory/deleteMessages.md +38 -0
- package/.docs/reference/memory/getThreadById.md +24 -0
- package/.docs/reference/memory/listThreads.md +145 -0
- package/.docs/reference/memory/memory-class.md +147 -0
- package/.docs/reference/memory/observational-memory.md +565 -0
- package/.docs/reference/memory/recall.md +91 -0
- package/.docs/reference/observability/tracing/bridges/otel.md +131 -0
- package/.docs/reference/observability/tracing/configuration.md +178 -0
- package/.docs/reference/observability/tracing/exporters/arize.md +141 -0
- package/.docs/reference/observability/tracing/exporters/braintrust.md +93 -0
- package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +163 -0
- package/.docs/reference/observability/tracing/exporters/console-exporter.md +138 -0
- package/.docs/reference/observability/tracing/exporters/datadog.md +116 -0
- package/.docs/reference/observability/tracing/exporters/default-exporter.md +174 -0
- package/.docs/reference/observability/tracing/exporters/laminar.md +78 -0
- package/.docs/reference/observability/tracing/exporters/langfuse.md +134 -0
- package/.docs/reference/observability/tracing/exporters/langsmith.md +108 -0
- package/.docs/reference/observability/tracing/exporters/otel.md +199 -0
- package/.docs/reference/observability/tracing/exporters/posthog.md +92 -0
- package/.docs/reference/observability/tracing/exporters/sentry.md +184 -0
- package/.docs/reference/observability/tracing/instances.md +107 -0
- package/.docs/reference/observability/tracing/interfaces.md +743 -0
- package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +144 -0
- package/.docs/reference/observability/tracing/spans.md +224 -0
- package/.docs/reference/processors/batch-parts-processor.md +61 -0
- package/.docs/reference/processors/language-detector.md +82 -0
- package/.docs/reference/processors/message-history-processor.md +85 -0
- package/.docs/reference/processors/moderation-processor.md +104 -0
- package/.docs/reference/processors/pii-detector.md +108 -0
- package/.docs/reference/processors/processor-interface.md +521 -0
- package/.docs/reference/processors/prompt-injection-detector.md +72 -0
- package/.docs/reference/processors/semantic-recall-processor.md +117 -0
- package/.docs/reference/processors/system-prompt-scrubber.md +80 -0
- package/.docs/reference/processors/token-limiter-processor.md +115 -0
- package/.docs/reference/processors/tool-call-filter.md +85 -0
- package/.docs/reference/processors/tool-search-processor.md +111 -0
- package/.docs/reference/processors/unicode-normalizer.md +62 -0
- package/.docs/reference/processors/working-memory-processor.md +152 -0
- package/.docs/reference/rag/chunk.md +221 -0
- package/.docs/reference/rag/database-config.md +261 -0
- package/.docs/reference/rag/document.md +114 -0
- package/.docs/reference/rag/embeddings.md +92 -0
- package/.docs/reference/rag/extract-params.md +168 -0
- package/.docs/reference/rag/graph-rag.md +111 -0
- package/.docs/reference/rag/metadata-filters.md +216 -0
- package/.docs/reference/rag/rerank.md +75 -0
- package/.docs/reference/rag/rerankWithScorer.md +80 -0
- package/.docs/reference/server/create-route.md +262 -0
- package/.docs/reference/server/express-adapter.md +176 -0
- package/.docs/reference/server/fastify-adapter.md +90 -0
- package/.docs/reference/server/hono-adapter.md +162 -0
- package/.docs/reference/server/koa-adapter.md +127 -0
- package/.docs/reference/server/mastra-server.md +298 -0
- package/.docs/reference/server/register-api-route.md +249 -0
- package/.docs/reference/server/routes.md +306 -0
- package/.docs/reference/storage/cloudflare-d1.md +218 -0
- package/.docs/reference/storage/cloudflare.md +88 -0
- package/.docs/reference/storage/composite.md +235 -0
- package/.docs/reference/storage/convex.md +161 -0
- package/.docs/reference/storage/dynamodb.md +282 -0
- package/.docs/reference/storage/lance.md +131 -0
- package/.docs/reference/storage/libsql.md +135 -0
- package/.docs/reference/storage/mongodb.md +262 -0
- package/.docs/reference/storage/mssql.md +157 -0
- package/.docs/reference/storage/overview.md +121 -0
- package/.docs/reference/storage/postgresql.md +526 -0
- package/.docs/reference/storage/upstash.md +160 -0
- package/.docs/reference/streaming/ChunkType.md +292 -0
- package/.docs/reference/streaming/agents/MastraModelOutput.md +182 -0
- package/.docs/reference/streaming/agents/stream.md +221 -0
- package/.docs/reference/streaming/agents/streamLegacy.md +142 -0
- package/.docs/reference/streaming/workflows/observeStream.md +42 -0
- package/.docs/reference/streaming/workflows/resumeStream.md +61 -0
- package/.docs/reference/streaming/workflows/stream.md +88 -0
- package/.docs/reference/streaming/workflows/timeTravelStream.md +142 -0
- package/.docs/reference/templates/overview.md +194 -0
- package/.docs/reference/tools/create-tool.md +237 -0
- package/.docs/reference/tools/document-chunker-tool.md +89 -0
- package/.docs/reference/tools/graph-rag-tool.md +182 -0
- package/.docs/reference/tools/mcp-client.md +954 -0
- package/.docs/reference/tools/mcp-server.md +1271 -0
- package/.docs/reference/tools/vector-query-tool.md +459 -0
- package/.docs/reference/vectors/astra.md +121 -0
- package/.docs/reference/vectors/chroma.md +264 -0
- package/.docs/reference/vectors/convex.md +300 -0
- package/.docs/reference/vectors/couchbase.md +226 -0
- package/.docs/reference/vectors/duckdb.md +318 -0
- package/.docs/reference/vectors/elasticsearch.md +189 -0
- package/.docs/reference/vectors/lance.md +220 -0
- package/.docs/reference/vectors/libsql.md +305 -0
- package/.docs/reference/vectors/mongodb.md +295 -0
- package/.docs/reference/vectors/opensearch.md +99 -0
- package/.docs/reference/vectors/pg.md +408 -0
- package/.docs/reference/vectors/pinecone.md +168 -0
- package/.docs/reference/vectors/qdrant.md +222 -0
- package/.docs/reference/vectors/s3vectors.md +277 -0
- package/.docs/reference/vectors/turbopuffer.md +157 -0
- package/.docs/reference/vectors/upstash.md +294 -0
- package/.docs/reference/vectors/vectorize.md +147 -0
- package/.docs/reference/voice/azure.md +148 -0
- package/.docs/reference/voice/cloudflare.md +83 -0
- package/.docs/reference/voice/composite-voice.md +121 -0
- package/.docs/reference/voice/deepgram.md +79 -0
- package/.docs/reference/voice/elevenlabs.md +98 -0
- package/.docs/reference/voice/google-gemini-live.md +378 -0
- package/.docs/reference/voice/google.md +228 -0
- package/.docs/reference/voice/mastra-voice.md +311 -0
- package/.docs/reference/voice/murf.md +122 -0
- package/.docs/reference/voice/openai-realtime.md +203 -0
- package/.docs/reference/voice/openai.md +88 -0
- package/.docs/reference/voice/playai.md +80 -0
- package/.docs/reference/voice/sarvam.md +126 -0
- package/.docs/reference/voice/speechify.md +75 -0
- package/.docs/reference/voice/voice.addInstructions.md +55 -0
- package/.docs/reference/voice/voice.addTools.md +67 -0
- package/.docs/reference/voice/voice.answer.md +54 -0
- package/.docs/reference/voice/voice.close.md +51 -0
- package/.docs/reference/voice/voice.connect.md +94 -0
- package/.docs/reference/voice/voice.events.md +37 -0
- package/.docs/reference/voice/voice.getSpeakers.md +129 -0
- package/.docs/reference/voice/voice.listen.md +164 -0
- package/.docs/reference/voice/voice.off.md +54 -0
- package/.docs/reference/voice/voice.on.md +111 -0
- package/.docs/reference/voice/voice.send.md +65 -0
- package/.docs/reference/voice/voice.speak.md +157 -0
- package/.docs/reference/voice/voice.updateConfig.md +60 -0
- package/.docs/reference/workflows/run-methods/cancel.md +86 -0
- package/.docs/reference/workflows/run-methods/restart.md +33 -0
- package/.docs/reference/workflows/run-methods/resume.md +59 -0
- package/.docs/reference/workflows/run-methods/start.md +58 -0
- package/.docs/reference/workflows/run-methods/startAsync.md +67 -0
- package/.docs/reference/workflows/run-methods/timeTravel.md +142 -0
- package/.docs/reference/workflows/run.md +59 -0
- package/.docs/reference/workflows/step.md +119 -0
- package/.docs/reference/workflows/workflow-methods/branch.md +25 -0
- package/.docs/reference/workflows/workflow-methods/commit.md +17 -0
- package/.docs/reference/workflows/workflow-methods/create-run.md +63 -0
- package/.docs/reference/workflows/workflow-methods/dountil.md +25 -0
- package/.docs/reference/workflows/workflow-methods/dowhile.md +25 -0
- package/.docs/reference/workflows/workflow-methods/foreach.md +118 -0
- package/.docs/reference/workflows/workflow-methods/map.md +93 -0
- package/.docs/reference/workflows/workflow-methods/parallel.md +21 -0
- package/.docs/reference/workflows/workflow-methods/sleep.md +35 -0
- package/.docs/reference/workflows/workflow-methods/sleepUntil.md +35 -0
- package/.docs/reference/workflows/workflow-methods/then.md +21 -0
- package/.docs/reference/workflows/workflow.md +157 -0
- package/.docs/reference/workspace/e2b-sandbox.md +289 -0
- package/.docs/reference/workspace/filesystem.md +255 -0
- package/.docs/reference/workspace/gcs-filesystem.md +174 -0
- package/.docs/reference/workspace/local-filesystem.md +343 -0
- package/.docs/reference/workspace/local-sandbox.md +301 -0
- package/.docs/reference/workspace/s3-filesystem.md +175 -0
- package/.docs/reference/workspace/sandbox.md +87 -0
- package/.docs/reference/workspace/workspace-class.md +244 -0
- package/CHANGELOG.md +8 -0
- package/package.json +5 -5
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Running Scorers in CI
|
|
2
|
+
|
|
3
|
+
Running scorers in your CI pipeline provides quantifiable metrics for measuring agent quality over time. The `runEvals` function processes multiple test cases through your agent or workflow and returns aggregate scores.
|
|
4
|
+
|
|
5
|
+
## Basic Setup
|
|
6
|
+
|
|
7
|
+
You can use any testing framework that supports ESM modules, such as [Vitest](https://vitest.dev/), [Jest](https://jestjs.io/), or [Mocha](https://mochajs.org/).
|
|
8
|
+
|
|
9
|
+
## Creating Test Cases
|
|
10
|
+
|
|
11
|
+
Use `runEvals` to evaluate your agent against multiple test cases. The function accepts an array of data items, each containing an `input` and optional `groundTruth` for scorer validation.
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { describe, it, expect } from 'vitest'
|
|
15
|
+
import { createScorer, runEvals } from '@mastra/core/evals'
|
|
16
|
+
import { weatherAgent } from './weather-agent'
|
|
17
|
+
import { locationScorer } from '../scorers/location-scorer'
|
|
18
|
+
|
|
19
|
+
describe('Weather Agent Tests', () => {
|
|
20
|
+
it('should correctly extract locations from queries', async () => {
|
|
21
|
+
const result = await runEvals({
|
|
22
|
+
data: [
|
|
23
|
+
{
|
|
24
|
+
input: 'weather in Berlin',
|
|
25
|
+
groundTruth: { expectedLocation: 'Berlin', expectedCountry: 'DE' },
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
input: 'weather in Berlin, Maryland',
|
|
29
|
+
groundTruth: { expectedLocation: 'Berlin', expectedCountry: 'US' },
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
input: 'weather in Berlin, Russia',
|
|
33
|
+
groundTruth: { expectedLocation: 'Berlin', expectedCountry: 'RU' },
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
target: weatherAgent,
|
|
37
|
+
scorers: [locationScorer],
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
// Assert aggregate score meets threshold
|
|
41
|
+
expect(result.scores['location-accuracy']).toBe(1)
|
|
42
|
+
expect(result.summary.totalItems).toBe(3)
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Understanding Results
|
|
48
|
+
|
|
49
|
+
The `runEvals` function returns an object with:
|
|
50
|
+
|
|
51
|
+
- `scores`: Average scores for each scorer across all test cases
|
|
52
|
+
- `summary.totalItems`: Total number of test cases processed
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
{
|
|
56
|
+
scores: {
|
|
57
|
+
'location-accuracy': 1.0, // Average score across all items
|
|
58
|
+
'another-scorer': 0.85
|
|
59
|
+
},
|
|
60
|
+
summary: {
|
|
61
|
+
totalItems: 3
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Multiple Test Scenarios
|
|
67
|
+
|
|
68
|
+
Create separate test cases for different evaluation scenarios:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
describe('Weather Agent Tests', () => {
|
|
72
|
+
const locationScorer = createScorer({
|
|
73
|
+
/* ... */
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('should handle location disambiguation', async () => {
|
|
77
|
+
const result = await runEvals({
|
|
78
|
+
data: [
|
|
79
|
+
{
|
|
80
|
+
input: 'weather in Berlin',
|
|
81
|
+
groundTruth: {
|
|
82
|
+
/* ... */
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
input: 'weather in Berlin, Maryland',
|
|
87
|
+
groundTruth: {
|
|
88
|
+
/* ... */
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
target: weatherAgent,
|
|
93
|
+
scorers: [locationScorer],
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
expect(result.scores['location-accuracy']).toBe(1)
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
it('should handle typos and misspellings', async () => {
|
|
100
|
+
const result = await runEvals({
|
|
101
|
+
data: [
|
|
102
|
+
{
|
|
103
|
+
input: 'weather in Berln',
|
|
104
|
+
groundTruth: { expectedLocation: 'Berlin', expectedCountry: 'DE' },
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
input: 'weather in Parris',
|
|
108
|
+
groundTruth: { expectedLocation: 'Paris', expectedCountry: 'FR' },
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
target: weatherAgent,
|
|
112
|
+
scorers: [locationScorer],
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
expect(result.scores['location-accuracy']).toBe(1)
|
|
116
|
+
})
|
|
117
|
+
})
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Next Steps
|
|
121
|
+
|
|
122
|
+
- Learn about [creating custom scorers](https://mastra.ai/docs/evals/custom-scorers)
|
|
123
|
+
- Explore [built-in scorers](https://mastra.ai/docs/evals/built-in-scorers)
|
|
124
|
+
- Read the [runEvals API reference](https://mastra.ai/reference/evals/run-evals)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Build with AI
|
|
2
|
+
|
|
3
|
+
AI agents may not have up-to-date knowledge about Mastra's APIs, patterns, and best practices. These resources give your AI tools direct access to current Mastra documentation, enabling them to generate accurate code and help you build faster.
|
|
4
|
+
|
|
5
|
+
## Mastra Skills
|
|
6
|
+
|
|
7
|
+
Agent Skills are folders of instructions, scripts, and resources that agents can discover and use to do things more accurately and efficiently. [Mastra Skills](https://mastra.ai/docs/build-with-ai/skills) contain setup instructions, best practices, and instructions on how to fetch up-to-date information from Mastra's documentation.
|
|
8
|
+
|
|
9
|
+
**npm**:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx skills add mastra-ai/skills
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**pnpm**:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm dlx skills add mastra-ai/skills
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Yarn**:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
yarn dlx skills add mastra-ai/skills
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Bun**:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
bun x skills add mastra-ai/skills
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Read the dedicated [Mastra Skills](https://mastra.ai/docs/build-with-ai/skills) guide to learn more about installation options and available skills.
|
|
34
|
+
|
|
35
|
+
> **Tip:** If you're just interested in giving your agent access to Mastra's documentation, we recommend using **Skills**. While the MCP Docs Server also provides this information, Skills will perform better. Use the MCP Docs Server when you need its tools, e.g. the migration tool.
|
|
36
|
+
|
|
37
|
+
## MCP Docs Server
|
|
38
|
+
|
|
39
|
+
In addition to documentation access, the [MCP Docs Server](https://mastra.ai/docs/build-with-ai/mcp-docs-server) also provides tools to help you migrate to newer versions of Mastra or follow the [Mastra 101 course](https://mastra.ai/course).
|
|
40
|
+
|
|
41
|
+
Learn how to use the [MCP Docs Server](https://mastra.ai/docs/build-with-ai/mcp-docs-server).
|
|
42
|
+
|
|
43
|
+
## Embedded package docs
|
|
44
|
+
|
|
45
|
+
Mastra packages ship with embedded documentation in `dist/docs`. When you install a Mastra package, your AI agent can read these files directly from `node_modules` to understand the package's APIs and patterns.
|
|
46
|
+
|
|
47
|
+
Each `dist/docs` includes:
|
|
48
|
+
|
|
49
|
+
- `SKILL.md`: A skill file following the skills standard
|
|
50
|
+
- `references/`: A folder with documentation files relevant to the package
|
|
51
|
+
- `assets/SOURCE_MAP.json`: A source map file linking public exports to their location in `node_modules`
|
|
52
|
+
|
|
53
|
+
## Context files
|
|
54
|
+
|
|
55
|
+
Mastra provides a root [`llms.txt`](https://mastra.ai/llms.txt) file that contains an overview of all available documentation pages.
|
|
56
|
+
|
|
57
|
+
Each documentation page also has its own `llms.txt` file. These files are streamlined markdown files. At the end of each docs page you'll find a link to the corresponding `llms.txt` file.
|
|
58
|
+
|
|
59
|
+
Add `/llms.txt` to any Mastra docs URL to access it. You can also request it by adding a `.md` extension to the end of the URL.
|
|
60
|
+
|
|
61
|
+
Examples for the [introduction page](https://mastra.ai/docs):
|
|
62
|
+
|
|
63
|
+
- [`/docs/llms.txt`](https://mastra.ai/docs/llms.txt)
|
|
64
|
+
- [`/docs.md`](https://mastra.ai/docs.md)
|
|
65
|
+
|
|
66
|
+
## Mastra's documentation
|
|
67
|
+
|
|
68
|
+
In addition to the [context files](#context-files) each documentation page also features a "Copy markdown" button at the top of the page. It'll copy the streamlined markdown version to your clipboard. Beside it, you'll find a dropdown menu to open the page on GitHub, in ChatGPT, Claude, and others.
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# Manual Install
|
|
2
|
+
|
|
3
|
+
> **Info:** Use this guide to manually build a standalone Mastra server step by step. In most cases, it's quicker to follow a [getting-started guide](https://mastra.ai/docs/getting-started/start), which achieves the same result using the [`mastra create`](https://mastra.ai/reference/cli/create-mastra) command. For existing projects, you can also use [`mastra init`](https://mastra.ai/reference/cli/mastra).
|
|
4
|
+
|
|
5
|
+
If you prefer not to use our automatic CLI tool, you can set up your project yourself by following the guide below.
|
|
6
|
+
|
|
7
|
+
1. Create a new project and change directory:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
mkdir my-first-agent && cd my-first-agent
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Generate a new `package.json` file:
|
|
14
|
+
|
|
15
|
+
**npm**:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm init
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**pnpm**:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pnpm init
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Yarn**:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
yarn init
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Bun**:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
bun init
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Install the following dependencies:
|
|
40
|
+
|
|
41
|
+
**npm**:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install -D typescript @types/node mastra@latest
|
|
45
|
+
npm install @mastra/core@latest zod@^4
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**pnpm**:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pnpm add -D typescript @types/node mastra@latest
|
|
52
|
+
pnpm add @mastra/core@latest zod@^4
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Yarn**:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
yarn add --dev typescript @types/node mastra@latest
|
|
59
|
+
yarn add @mastra/core@latest zod@^4
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Bun**:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
bun add --dev typescript @types/node mastra@latest
|
|
66
|
+
bun add @mastra/core@latest zod@^4
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Add `dev` and `build` scripts to your `package.json` file:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"scripts": {
|
|
74
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
75
|
+
"dev": "mastra dev",
|
|
76
|
+
"build": "mastra build"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
2. Create a `tsconfig.json` file:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
touch tsconfig.json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Add the following configuration:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"compilerOptions": {
|
|
92
|
+
"target": "ES2022",
|
|
93
|
+
"module": "ES2022",
|
|
94
|
+
"moduleResolution": "bundler",
|
|
95
|
+
"esModuleInterop": true,
|
|
96
|
+
"forceConsistentCasingInFileNames": true,
|
|
97
|
+
"strict": true,
|
|
98
|
+
"skipLibCheck": true,
|
|
99
|
+
"noEmit": true,
|
|
100
|
+
"outDir": "dist"
|
|
101
|
+
},
|
|
102
|
+
"include": ["src/**/*"]
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
> **Info:** Mastra requires modern `module` and `moduleResolution` settings. Using `CommonJS` or `node` will cause resolution errors.
|
|
107
|
+
|
|
108
|
+
3. Create an `.env` file:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
touch .env
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Add your API key:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
GOOGLE_GENERATIVE_AI_API_KEY=<your-api-key>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
> **Note:** This guide uses Google Gemini, but you can use any supported [model provider](https://mastra.ai/models), including OpenAI, Anthropic, and more.
|
|
121
|
+
|
|
122
|
+
4. Create a `weather-tool.ts` file:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
mkdir -p src/mastra/tools && touch src/mastra/tools/weather-tool.ts
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Add the following code:
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
import { createTool } from '@mastra/core/tools'
|
|
132
|
+
import { z } from 'zod'
|
|
133
|
+
|
|
134
|
+
export const weatherTool = createTool({
|
|
135
|
+
id: 'get-weather',
|
|
136
|
+
description: 'Get current weather for a location',
|
|
137
|
+
inputSchema: z.object({
|
|
138
|
+
location: z.string().describe('City name'),
|
|
139
|
+
}),
|
|
140
|
+
outputSchema: z.object({
|
|
141
|
+
output: z.string(),
|
|
142
|
+
}),
|
|
143
|
+
execute: async () => {
|
|
144
|
+
return {
|
|
145
|
+
output: 'The weather is sunny',
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
})
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
> **Info:** We've shortened and simplified the `weatherTool` example here. You can see the complete weather tool under [Giving an Agent a Tool](https://mastra.ai/docs/agents/using-tools).
|
|
152
|
+
|
|
153
|
+
5. Create a `weather-agent.ts` file:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
mkdir -p src/mastra/agents && touch src/mastra/agents/weather-agent.ts
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Add the following code:
|
|
160
|
+
|
|
161
|
+
```ts
|
|
162
|
+
import { Agent } from '@mastra/core/agent'
|
|
163
|
+
import { weatherTool } from '../tools/weather-tool'
|
|
164
|
+
|
|
165
|
+
export const weatherAgent = new Agent({
|
|
166
|
+
id: 'weather-agent',
|
|
167
|
+
name: 'Weather Agent',
|
|
168
|
+
instructions: `
|
|
169
|
+
You are a helpful weather assistant that provides accurate weather information.
|
|
170
|
+
|
|
171
|
+
Your primary function is to help users get weather details for specific locations. When responding:
|
|
172
|
+
- Always ask for a location if none is provided
|
|
173
|
+
- If the location name isn't in English, please translate it
|
|
174
|
+
- If giving a location with multiple parts (e.g. "New York, NY"), use the most relevant part (e.g. "New York")
|
|
175
|
+
- Include relevant details like humidity, wind conditions, and precipitation
|
|
176
|
+
- Keep responses concise but informative
|
|
177
|
+
|
|
178
|
+
Use the weatherTool to fetch current weather data.
|
|
179
|
+
`,
|
|
180
|
+
model: 'google/gemini-2.5-pro',
|
|
181
|
+
tools: { weatherTool },
|
|
182
|
+
})
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
6. Create the Mastra entry point and register your agent:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
touch src/mastra/index.ts
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Add the following code:
|
|
192
|
+
|
|
193
|
+
```ts
|
|
194
|
+
import { Mastra } from '@mastra/core'
|
|
195
|
+
import { weatherAgent } from './agents/weather-agent'
|
|
196
|
+
|
|
197
|
+
export const mastra = new Mastra({
|
|
198
|
+
agents: { weatherAgent },
|
|
199
|
+
})
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
7. You can now launch [Studio](https://mastra.ai/docs/getting-started/studio) and test your agent.
|
|
203
|
+
|
|
204
|
+
**npm**:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
npm run dev
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**pnpm**:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
pnpm run dev
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Yarn**:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
yarn dev
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Bun**:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
bun run dev
|
|
226
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Project Structure
|
|
2
|
+
|
|
3
|
+
Your new Mastra project, created with the `create mastra` command, comes with a predefined set of files and folders to help you get started.
|
|
4
|
+
|
|
5
|
+
Mastra is a framework, but it's **unopinionated** about how you organize or colocate your files. The CLI provides a sensible default structure that works well for most projects, but you're free to adapt it to your workflow or team conventions. You could even build your entire project in a single file if you wanted! Whatever structure you choose, keep it consistent to ensure your code stays maintainable and easy to navigate.
|
|
6
|
+
|
|
7
|
+
## Default project structure
|
|
8
|
+
|
|
9
|
+
A project created with the `create mastra` command looks like this:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
src/
|
|
13
|
+
├── mastra/
|
|
14
|
+
│ ├── agents/
|
|
15
|
+
│ │ └── weather-agent.ts
|
|
16
|
+
│ ├── tools/
|
|
17
|
+
│ │ └── weather-tool.ts
|
|
18
|
+
│ ├── workflows/
|
|
19
|
+
│ │ └── weather-workflow.ts
|
|
20
|
+
│ ├── scorers/
|
|
21
|
+
│ │ └── weather-scorer.ts
|
|
22
|
+
│ └── index.ts
|
|
23
|
+
├── .env.example
|
|
24
|
+
├── package.json
|
|
25
|
+
└── tsconfig.json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> **Tip:** Use the predefined files as templates. Duplicate and adapt them to quickly create your own agents, tools, workflows, etc.
|
|
29
|
+
|
|
30
|
+
### Folders
|
|
31
|
+
|
|
32
|
+
Folders organize your agent's resources, like agents, tools, and workflows.
|
|
33
|
+
|
|
34
|
+
| Folder | Description |
|
|
35
|
+
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
36
|
+
| `src/mastra` | Entry point for all Mastra-related code and configuration. |
|
|
37
|
+
| `src/mastra/agents` | Define and configure your agents - their behavior, goals, and tools. |
|
|
38
|
+
| `src/mastra/workflows` | Define multi-step workflows that orchestrate agents and tools together. |
|
|
39
|
+
| `src/mastra/tools` | Create reusable tools that your agents can call |
|
|
40
|
+
| `src/mastra/mcp` | (Optional) Implement custom MCP servers to share your tools with external agents |
|
|
41
|
+
| `src/mastra/scorers` | (Optional) Define scorers for evaluating agent performance over time |
|
|
42
|
+
| `src/mastra/public` | (Optional) Contents are copied into the `.build/output` directory during the build process, making them available for serving at runtime |
|
|
43
|
+
|
|
44
|
+
### Top-level files
|
|
45
|
+
|
|
46
|
+
Top-level files define how your Mastra project is configured, built, and connected to its environment.
|
|
47
|
+
|
|
48
|
+
| File | Description |
|
|
49
|
+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
50
|
+
| `src/mastra/index.ts` | Central entry point where you configure and initialize Mastra. |
|
|
51
|
+
| `.env.example` | Template for environment variables - copy and rename to `.env` to add your secret [model provider](https://mastra.ai/models) keys. |
|
|
52
|
+
| `package.json` | Defines project metadata, dependencies, and available npm scripts. |
|
|
53
|
+
| `tsconfig.json` | Configures TypeScript options such as path aliases, compiler settings, and build output. |
|
|
54
|
+
|
|
55
|
+
## Next steps
|
|
56
|
+
|
|
57
|
+
- Read more about [Mastra's features](https://mastra.ai/docs).
|
|
58
|
+
- Integrate Mastra with your frontend framework: [Next.js](https://mastra.ai/guides/getting-started/next-js), [React](https://mastra.ai/guides/getting-started/vite-react), or [Astro](https://mastra.ai/guides/getting-started/astro).
|
|
59
|
+
- Build an agent from scratch following one of our [guides](https://mastra.ai/guides).
|
|
60
|
+
- Watch conceptual guides on our [YouTube channel](https://www.youtube.com/@mastra-ai) and [subscribe](https://www.youtube.com/@mastra-ai?sub_confirmation=1)!
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Start
|
|
2
|
+
|
|
3
|
+
Create a new Mastra project, or integrate Mastra with your preferred framework to start building.
|
|
4
|
+
|
|
5
|
+
## New project
|
|
6
|
+
|
|
7
|
+
The `create mastra` command is the fastest way to build your first agent. It walks you through setup and generates an example agent you can run and adapt in [Studio](https://mastra.ai/docs/getting-started/studio) right away. You can always integrate Mastra with your framework or UI when you’re ready.
|
|
8
|
+
|
|
9
|
+
- [Quickstart](https://mastra.ai/guides/getting-started/quickstart)
|
|
10
|
+
|
|
11
|
+
## Integrate with your framework
|
|
12
|
+
|
|
13
|
+
Add Mastra to an existing project, or scaffold a new Mastra-powered app if you’re starting from scratch.
|
|
14
|
+
|
|
15
|
+
- [Next.js](https://mastra.ai/guides/getting-started/next-js)
|
|
16
|
+
- [React](https://mastra.ai/guides/getting-started/vite-react)
|
|
17
|
+
- [SvelteKit](https://mastra.ai/guides/getting-started/sveltekit)
|
|
18
|
+
- [Astro](https://mastra.ai/guides/getting-started/astro)
|
|
19
|
+
- [Nuxt](https://mastra.ai/guides/getting-started/nuxt)
|
|
20
|
+
- [Express](https://mastra.ai/guides/getting-started/express)
|
|
21
|
+
- [Hono](https://mastra.ai/guides/getting-started/hono)
|
|
22
|
+
- [Electron](https://mastra.ai/guides/getting-started/electron)
|
|
23
|
+
|
|
24
|
+
Mastra works great with agentic UI frameworks like [AI SDK UI](https://mastra.ai/guides/build-your-ui/ai-sdk-ui), [CopilotKit](https://mastra.ai/guides/build-your-ui/copilotkit), and [Assistant UI](https://mastra.ai/guides/build-your-ui/assistant-ui). Use them with any of the frontend frameworks above to stream agent responses, render tools, and build chat interfaces.
|
|
25
|
+
|
|
26
|
+
## Start from a template
|
|
27
|
+
|
|
28
|
+
Have a use case in mind? Start with a pre-built [template](https://mastra.ai/templates) from Mastra or our community.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Studio
|
|
2
|
+
|
|
3
|
+
Studio provides an interactive UI for building and testing your agents, along with a REST API that exposes your Mastra application as a local service. This lets you start building without worrying about integration right away.
|
|
4
|
+
|
|
5
|
+
As your project evolves, Studio's development environment helps you iterate on your agent quickly. Meanwhile, Observability and Scorer features give you visibility into performance at every stage.
|
|
6
|
+
|
|
7
|
+
To get started, run Studio locally using the instructions below, or [create a project in Mastra Cloud](https://mastra.ai/docs/mastra-cloud/setup) to collaborate with your team.
|
|
8
|
+
|
|
9
|
+
[YouTube video player](https://www.youtube-nocookie.com/embed/ojGu6Bi4wYk)
|
|
10
|
+
|
|
11
|
+
## Start Studio
|
|
12
|
+
|
|
13
|
+
If you created your application with `create mastra`, start the local development server using the `dev` script. You can also run it directly with `mastra dev`.
|
|
14
|
+
|
|
15
|
+
**npm**:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm run dev
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**pnpm**:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pnpm run dev
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Yarn**:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
yarn dev
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Bun**:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
bun run dev
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Once the server's running, you can:
|
|
40
|
+
|
|
41
|
+
- Open the Studio UI at <http://localhost:4111/> to test your agent interactively.
|
|
42
|
+
- Visit <http://localhost:4111/swagger-ui> to discover and interact with the underlying REST API.
|
|
43
|
+
|
|
44
|
+
## Studio UI
|
|
45
|
+
|
|
46
|
+
The Studio UI provides an interactive development environment for you to test your agents, workflows, and tools, observe exactly what happens under the hood with each interaction, and tweak things as you go.
|
|
47
|
+
|
|
48
|
+
### Agents
|
|
49
|
+
|
|
50
|
+
Chat with your agent directly, dynamically switch [models](https://mastra.ai/models), and tweak settings like temperature and top-p to understand how they affect the output.
|
|
51
|
+
|
|
52
|
+
When you interact with your agent, you can follow each step of its reasoning, view tool call outputs, and [observe](#observability) traces and logs to see how responses are generated. You can also attach [scorers](#scorers) to measure and compare response quality over time.
|
|
53
|
+
|
|
54
|
+
### Workflows
|
|
55
|
+
|
|
56
|
+
Visualize your workflow as a graph and run it step by step with a custom input. During execution, the interface updates in real time to show the active step and the path taken.
|
|
57
|
+
|
|
58
|
+
When running a workflow, you can also view detailed traces showing tool calls, raw JSON outputs, and any errors that might have occurred along the way.
|
|
59
|
+
|
|
60
|
+
### Tools
|
|
61
|
+
|
|
62
|
+
Run tools in isolation to observe their behavior. Test them before assigning them to your agent, or isolate them to debug issues should something go wrong.
|
|
63
|
+
|
|
64
|
+
### MCP
|
|
65
|
+
|
|
66
|
+
List the MCP servers attached to your Mastra instance and explore their available tools.
|
|
67
|
+
|
|
68
|
+

|
|
69
|
+
|
|
70
|
+
### Observability
|
|
71
|
+
|
|
72
|
+
When you run an agent or workflow, the Observability tab displays traces that highlight the key AI operations such as model calls, tool executions, and workflow steps. Follow these traces to see how data moves, where time is spent, and what's happening under the hood.
|
|
73
|
+
|
|
74
|
+

|
|
75
|
+
|
|
76
|
+
Tracing filters out low-level framework details so your traces stay focused and readable.
|
|
77
|
+
|
|
78
|
+
### Scorers
|
|
79
|
+
|
|
80
|
+
The Scorers tab displays the results of your agent's scorers as they run. When messages pass through your agent, the defined scorers evaluate each output asynchronously and render their results here. This allows you to understand how your scorers respond to different interactions, compare performance across test cases, and identify areas for improvement.
|
|
81
|
+
|
|
82
|
+
## REST API
|
|
83
|
+
|
|
84
|
+
The local development server exposes a complete set of REST API routes, allowing you to programmatically interact with your agents, workflows, and tools during development. This is particularly helpful if you plan to deploy the Mastra server, since the local development server uses the exact same API routes as the [Mastra Server](https://mastra.ai/docs/server/mastra-server), allowing you to develop and test against it with full parity.
|
|
85
|
+
|
|
86
|
+
You can explore all available endpoints in the OpenAPI specification at <http://localhost:4111/openapi.json>, which details every endpoint and its request and response schemas.
|
|
87
|
+
|
|
88
|
+
To explore the API interactively, visit the Swagger UI at <http://localhost:4111/swagger-ui>. Here, you can discover endpoints and test them directly from your browser.
|
|
89
|
+
|
|
90
|
+
> **Info:** The OpenAPI and Swagger endpoints are disabled in production by default. To enable them, set [`server.build.openAPIDocs`](https://mastra.ai/reference/configuration) and [`server.build.swaggerUI`](https://mastra.ai/reference/configuration) to `true` respectively.
|
|
91
|
+
|
|
92
|
+
## Configuration
|
|
93
|
+
|
|
94
|
+
By default, Studio runs at <http://localhost:4111>. You can change the [`host`](https://mastra.ai/reference/configuration), [`port`](https://mastra.ai/reference/configuration), and [`studioBase`](https://mastra.ai/reference/configuration) in the Mastra server configuration. This allows you to customize where and how Studio is hosted.
|
|
95
|
+
|
|
96
|
+
Furthermore, Mastra supports local HTTPS development through the [`--https`](https://mastra.ai/reference/cli/mastra) flag, which automatically creates and manages certificates for your project. When you run `mastra dev --https`, a private key and certificate are generated for localhost (or your configured host). Visit the [HTTPS reference](https://mastra.ai/reference/configuration) to learn more.
|
|
97
|
+
|
|
98
|
+
## Next steps
|
|
99
|
+
|
|
100
|
+
- Learn more about Mastra's suggested [project structure](https://mastra.ai/docs/getting-started/project-structure).
|
|
101
|
+
- Integrate Mastra with your frontend framework of choice - [Next.js](https://mastra.ai/guides/getting-started/next-js), [React](https://mastra.ai/guides/getting-started/vite-react), or [Astro](https://mastra.ai/guides/getting-started/astro).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# About Mastra
|
|
2
|
+
|
|
3
|
+
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.
|
|
4
|
+
|
|
5
|
+
It includes everything you need to go from early prototypes to production-ready applications. Mastra integrates with frontend and backend frameworks like React, Next.js, and Node, or you can deploy it anywhere as a standalone server. It's the easiest way to build, tune, and scale reliable AI products.
|
|
6
|
+
|
|
7
|
+
[YouTube video player](https://www.youtube-nocookie.com/embed/1qnmnRICX50)
|
|
8
|
+
|
|
9
|
+
## Why Mastra?
|
|
10
|
+
|
|
11
|
+
Purpose-built for TypeScript and designed around established AI patterns, Mastra gives you everything you need to build great AI applications out-of-the-box.
|
|
12
|
+
|
|
13
|
+
Some highlights include:
|
|
14
|
+
|
|
15
|
+
- [**Model routing**](https://mastra.ai/models): Connect to 40+ providers through one standard interface. Use models from OpenAI, Anthropic, Gemini, and more.
|
|
16
|
+
|
|
17
|
+
- [**Agents**](https://mastra.ai/docs/agents/overview): Build autonomous agents that use LLMs and tools to solve open-ended tasks. Agents reason about goals, decide which tools to use, and iterate internally until the model emits a final answer or an optional stopping condition is met.
|
|
18
|
+
|
|
19
|
+
- [**Workflows**](https://mastra.ai/docs/workflows/overview): When you need explicit control over execution, use Mastra's graph-based workflow engine to orchestrate complex multi-step processes. Mastra workflows use an intuitive syntax for control flow (`.then()`, `.branch()`, `.parallel()`).
|
|
20
|
+
|
|
21
|
+
- [**Human-in-the-loop**](https://mastra.ai/docs/workflows/suspend-and-resume): Suspend an agent or workflow and await user input or approval before resuming. Mastra uses storage to remember execution state, so you can pause indefinitely and resume where you left off.
|
|
22
|
+
|
|
23
|
+
- **Context management**: Give your agents the right context at the right time. Provide [message history](https://mastra.ai/docs/memory/message-history), [retrieve](https://mastra.ai/docs/rag/overview) data from your sources (APIs, databases, files), and add human-like [working](https://mastra.ai/docs/memory/working-memory) and [semantic](https://mastra.ai/docs/memory/semantic-recall) memory so your agents behave coherently.
|
|
24
|
+
|
|
25
|
+
- **Integrations**: Bundle agents and workflows into existing React, Next.js, or Node.js apps, or ship them as standalone endpoints. When building UIs, integrate with agentic libraries like Vercel's AI SDK UI and CopilotKit to bring your AI assistant to life on the web.
|
|
26
|
+
|
|
27
|
+
- **Production essentials**: Shipping reliable agents takes ongoing insight, evaluation, and iteration. With built-in [scorers](https://mastra.ai/docs/evals/overview) and [observability](https://mastra.ai/docs/observability/overview), Mastra gives you the tools to observe, measure, and refine continuously.
|
|
28
|
+
|
|
29
|
+
## What can you build?
|
|
30
|
+
|
|
31
|
+
- AI-powered applications that combine language understanding, reasoning, and action to solve real-world tasks.
|
|
32
|
+
- Conversational agents for customer support, onboarding, or internal queries.
|
|
33
|
+
- Domain-specific copilots for coding, legal, finance, research, or creative work.
|
|
34
|
+
- Workflow automations that trigger, route, and complete multi-step processes.
|
|
35
|
+
- Decision-support tools that analyse data and provide actionable recommendations.
|
|
36
|
+
|
|
37
|
+
## Get started
|
|
38
|
+
|
|
39
|
+
Choose a [getting started guide](https://mastra.ai/docs/getting-started/start) to get started, or see the [manual installation guide](https://mastra.ai/docs/getting-started/manual-install) if you need more control over your setup.
|
|
40
|
+
|
|
41
|
+
If you're new to AI agents, check out our [templates](https://mastra.ai/templates), [course](https://mastra.ai/course), and [YouTube videos](https://youtube.com/@mastra-ai). You can also join our [Discord](https://discord.gg/BTYqqHKUrf) community to get help and share your projects.
|
|
42
|
+
|
|
43
|
+
We can't wait to see what you build ✌️
|