@mastra/mcp-docs-server 1.1.4 → 1.1.5
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/CHANGELOG.md +14 -0
- package/package.json +5 -5
- package/.docs/docs/agents/adding-voice.md +0 -353
- package/.docs/docs/agents/agent-approval.md +0 -377
- package/.docs/docs/agents/agent-memory.md +0 -212
- package/.docs/docs/agents/guardrails.md +0 -382
- package/.docs/docs/agents/network-approval.md +0 -275
- package/.docs/docs/agents/networks.md +0 -290
- package/.docs/docs/agents/overview.md +0 -309
- package/.docs/docs/agents/processors.md +0 -632
- package/.docs/docs/agents/structured-output.md +0 -271
- package/.docs/docs/agents/using-tools.md +0 -214
- package/.docs/docs/build-with-ai/mcp-docs-server.md +0 -241
- package/.docs/docs/build-with-ai/skills.md +0 -35
- package/.docs/docs/community/contributing-templates.md +0 -3
- package/.docs/docs/community/discord.md +0 -9
- package/.docs/docs/community/licensing.md +0 -66
- package/.docs/docs/deployment/cloud-providers.md +0 -15
- package/.docs/docs/deployment/mastra-server.md +0 -122
- package/.docs/docs/deployment/monorepo.md +0 -142
- package/.docs/docs/deployment/overview.md +0 -62
- package/.docs/docs/deployment/studio.md +0 -234
- package/.docs/docs/deployment/web-framework.md +0 -52
- package/.docs/docs/deployment/workflow-runners.md +0 -9
- package/.docs/docs/evals/built-in-scorers.md +0 -47
- package/.docs/docs/evals/custom-scorers.md +0 -519
- package/.docs/docs/evals/overview.md +0 -146
- package/.docs/docs/evals/running-in-ci.md +0 -106
- package/.docs/docs/getting-started/build-with-ai.md +0 -68
- package/.docs/docs/getting-started/manual-install.md +0 -226
- package/.docs/docs/getting-started/project-structure.md +0 -60
- package/.docs/docs/getting-started/start.md +0 -28
- package/.docs/docs/getting-started/studio.md +0 -101
- package/.docs/docs/index.md +0 -43
- package/.docs/docs/mastra-cloud/deployment.md +0 -77
- package/.docs/docs/mastra-cloud/observability.md +0 -38
- package/.docs/docs/mastra-cloud/overview.md +0 -23
- package/.docs/docs/mastra-cloud/setup.md +0 -42
- package/.docs/docs/mastra-cloud/studio.md +0 -24
- package/.docs/docs/mcp/overview.md +0 -370
- package/.docs/docs/mcp/publishing-mcp-server.md +0 -95
- package/.docs/docs/memory/memory-processors.md +0 -316
- package/.docs/docs/memory/message-history.md +0 -260
- package/.docs/docs/memory/observational-memory.md +0 -246
- package/.docs/docs/memory/overview.md +0 -45
- package/.docs/docs/memory/semantic-recall.md +0 -272
- package/.docs/docs/memory/storage.md +0 -261
- package/.docs/docs/memory/working-memory.md +0 -400
- package/.docs/docs/observability/datasets/overview.md +0 -188
- package/.docs/docs/observability/datasets/running-experiments.md +0 -266
- package/.docs/docs/observability/logging.md +0 -99
- package/.docs/docs/observability/overview.md +0 -70
- package/.docs/docs/observability/tracing/bridges/otel.md +0 -209
- package/.docs/docs/observability/tracing/exporters/arize.md +0 -274
- package/.docs/docs/observability/tracing/exporters/braintrust.md +0 -111
- package/.docs/docs/observability/tracing/exporters/cloud.md +0 -129
- package/.docs/docs/observability/tracing/exporters/datadog.md +0 -187
- package/.docs/docs/observability/tracing/exporters/default.md +0 -211
- package/.docs/docs/observability/tracing/exporters/laminar.md +0 -100
- package/.docs/docs/observability/tracing/exporters/langfuse.md +0 -217
- package/.docs/docs/observability/tracing/exporters/langsmith.md +0 -202
- package/.docs/docs/observability/tracing/exporters/otel.md +0 -479
- package/.docs/docs/observability/tracing/exporters/posthog.md +0 -148
- package/.docs/docs/observability/tracing/exporters/sentry.md +0 -208
- package/.docs/docs/observability/tracing/overview.md +0 -1114
- package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +0 -303
- package/.docs/docs/rag/chunking-and-embedding.md +0 -183
- package/.docs/docs/rag/graph-rag.md +0 -215
- package/.docs/docs/rag/overview.md +0 -72
- package/.docs/docs/rag/retrieval.md +0 -521
- package/.docs/docs/rag/vector-databases.md +0 -648
- package/.docs/docs/server/auth/auth0.md +0 -222
- package/.docs/docs/server/auth/better-auth.md +0 -203
- package/.docs/docs/server/auth/clerk.md +0 -132
- package/.docs/docs/server/auth/composite-auth.md +0 -234
- package/.docs/docs/server/auth/custom-auth-provider.md +0 -513
- package/.docs/docs/server/auth/firebase.md +0 -272
- package/.docs/docs/server/auth/jwt.md +0 -110
- package/.docs/docs/server/auth/simple-auth.md +0 -178
- package/.docs/docs/server/auth/supabase.md +0 -117
- package/.docs/docs/server/auth/workos.md +0 -190
- package/.docs/docs/server/auth.md +0 -38
- package/.docs/docs/server/custom-adapters.md +0 -374
- package/.docs/docs/server/custom-api-routes.md +0 -267
- package/.docs/docs/server/mastra-client.md +0 -243
- package/.docs/docs/server/mastra-server.md +0 -71
- package/.docs/docs/server/middleware.md +0 -228
- package/.docs/docs/server/request-context.md +0 -478
- package/.docs/docs/server/server-adapters.md +0 -547
- package/.docs/docs/streaming/events.md +0 -247
- package/.docs/docs/streaming/overview.md +0 -181
- package/.docs/docs/streaming/tool-streaming.md +0 -178
- package/.docs/docs/streaming/workflow-streaming.md +0 -109
- package/.docs/docs/voice/overview.md +0 -979
- package/.docs/docs/voice/speech-to-speech.md +0 -103
- package/.docs/docs/voice/speech-to-text.md +0 -80
- package/.docs/docs/voice/text-to-speech.md +0 -84
- package/.docs/docs/workflows/agents-and-tools.md +0 -170
- package/.docs/docs/workflows/control-flow.md +0 -823
- package/.docs/docs/workflows/error-handling.md +0 -360
- package/.docs/docs/workflows/human-in-the-loop.md +0 -213
- package/.docs/docs/workflows/overview.md +0 -372
- package/.docs/docs/workflows/snapshots.md +0 -238
- package/.docs/docs/workflows/suspend-and-resume.md +0 -205
- package/.docs/docs/workflows/time-travel.md +0 -309
- package/.docs/docs/workflows/workflow-state.md +0 -181
- package/.docs/docs/workspace/filesystem.md +0 -162
- package/.docs/docs/workspace/overview.md +0 -239
- package/.docs/docs/workspace/sandbox.md +0 -63
- package/.docs/docs/workspace/search.md +0 -219
- package/.docs/docs/workspace/skills.md +0 -126
- package/.docs/guides/agent-frameworks/ai-sdk.md +0 -140
- package/.docs/guides/build-your-ui/ai-sdk-ui.md +0 -1463
- package/.docs/guides/build-your-ui/assistant-ui.md +0 -156
- package/.docs/guides/build-your-ui/copilotkit.md +0 -292
- package/.docs/guides/deployment/amazon-ec2.md +0 -130
- package/.docs/guides/deployment/aws-lambda.md +0 -248
- package/.docs/guides/deployment/azure-app-services.md +0 -114
- package/.docs/guides/deployment/cloudflare.md +0 -99
- package/.docs/guides/deployment/digital-ocean.md +0 -168
- package/.docs/guides/deployment/inngest.md +0 -685
- package/.docs/guides/deployment/netlify.md +0 -77
- package/.docs/guides/deployment/vercel.md +0 -101
- package/.docs/guides/getting-started/astro.md +0 -408
- package/.docs/guides/getting-started/electron.md +0 -504
- package/.docs/guides/getting-started/express.md +0 -251
- package/.docs/guides/getting-started/hono.md +0 -191
- package/.docs/guides/getting-started/next-js.md +0 -355
- package/.docs/guides/getting-started/nuxt.md +0 -476
- package/.docs/guides/getting-started/quickstart.md +0 -67
- package/.docs/guides/getting-started/sveltekit.md +0 -300
- package/.docs/guides/getting-started/vite-react.md +0 -439
- package/.docs/guides/guide/ai-recruiter.md +0 -227
- package/.docs/guides/guide/chef-michel.md +0 -215
- package/.docs/guides/guide/code-review-bot.md +0 -221
- package/.docs/guides/guide/dev-assistant.md +0 -304
- package/.docs/guides/guide/docs-manager.md +0 -238
- package/.docs/guides/guide/github-actions-pr-description.md +0 -236
- package/.docs/guides/guide/notes-mcp-server.md +0 -425
- package/.docs/guides/guide/research-assistant.md +0 -349
- package/.docs/guides/guide/stock-agent.md +0 -134
- package/.docs/guides/guide/web-search.md +0 -326
- package/.docs/guides/guide/whatsapp-chat-bot.md +0 -416
- package/.docs/guides/index.md +0 -3
- package/.docs/guides/migrations/agentnetwork.md +0 -101
- package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +0 -112
- package/.docs/guides/migrations/upgrade-to-v1/agent.md +0 -404
- package/.docs/guides/migrations/upgrade-to-v1/cli.md +0 -57
- package/.docs/guides/migrations/upgrade-to-v1/client.md +0 -337
- package/.docs/guides/migrations/upgrade-to-v1/deployment.md +0 -37
- package/.docs/guides/migrations/upgrade-to-v1/evals.md +0 -239
- package/.docs/guides/migrations/upgrade-to-v1/mastra.md +0 -143
- package/.docs/guides/migrations/upgrade-to-v1/mcp.md +0 -97
- package/.docs/guides/migrations/upgrade-to-v1/memory.md +0 -285
- package/.docs/guides/migrations/upgrade-to-v1/overview.md +0 -119
- package/.docs/guides/migrations/upgrade-to-v1/processors.md +0 -68
- package/.docs/guides/migrations/upgrade-to-v1/rag.md +0 -42
- package/.docs/guides/migrations/upgrade-to-v1/storage.md +0 -553
- package/.docs/guides/migrations/upgrade-to-v1/tools.md +0 -180
- package/.docs/guides/migrations/upgrade-to-v1/tracing.md +0 -417
- package/.docs/guides/migrations/upgrade-to-v1/vectors.md +0 -87
- package/.docs/guides/migrations/upgrade-to-v1/voice.md +0 -30
- package/.docs/guides/migrations/upgrade-to-v1/workflows.md +0 -341
- package/.docs/guides/migrations/vnext-to-standard-apis.md +0 -364
- package/.docs/models/embeddings.md +0 -161
- package/.docs/models/gateways/azure-openai.md +0 -128
- package/.docs/models/gateways/custom-gateways.md +0 -545
- package/.docs/models/gateways/netlify.md +0 -88
- package/.docs/models/gateways/openrouter.md +0 -219
- package/.docs/models/gateways/vercel.md +0 -225
- package/.docs/models/gateways.md +0 -14
- package/.docs/models/index.md +0 -286
- package/.docs/models/providers/302ai.md +0 -134
- package/.docs/models/providers/abacus.md +0 -125
- package/.docs/models/providers/agentrouter.md +0 -90
- package/.docs/models/providers/aihubmix.md +0 -107
- package/.docs/models/providers/alibaba-cn.md +0 -135
- package/.docs/models/providers/alibaba.md +0 -111
- package/.docs/models/providers/amazon-bedrock.md +0 -33
- package/.docs/models/providers/anthropic.md +0 -153
- package/.docs/models/providers/azure.md +0 -33
- package/.docs/models/providers/bailing.md +0 -72
- package/.docs/models/providers/baseten.md +0 -77
- package/.docs/models/providers/berget.md +0 -78
- package/.docs/models/providers/cerebras.md +0 -101
- package/.docs/models/providers/chutes.md +0 -136
- package/.docs/models/providers/cloudflare-ai-gateway.md +0 -33
- package/.docs/models/providers/cloudflare-workers-ai.md +0 -109
- package/.docs/models/providers/cohere.md +0 -33
- package/.docs/models/providers/cortecs.md +0 -91
- package/.docs/models/providers/deepinfra.md +0 -112
- package/.docs/models/providers/deepseek.md +0 -88
- package/.docs/models/providers/fastrouter.md +0 -84
- package/.docs/models/providers/fireworks-ai.md +0 -89
- package/.docs/models/providers/firmware.md +0 -85
- package/.docs/models/providers/friendli.md +0 -78
- package/.docs/models/providers/github-models.md +0 -125
- package/.docs/models/providers/google-vertex.md +0 -33
- package/.docs/models/providers/google.md +0 -159
- package/.docs/models/providers/groq.md +0 -107
- package/.docs/models/providers/helicone.md +0 -161
- package/.docs/models/providers/huggingface.md +0 -90
- package/.docs/models/providers/iflowcn.md +0 -84
- package/.docs/models/providers/inception.md +0 -72
- package/.docs/models/providers/inference.md +0 -79
- package/.docs/models/providers/io-intelligence.md +0 -87
- package/.docs/models/providers/io-net.md +0 -87
- package/.docs/models/providers/jiekou.md +0 -131
- package/.docs/models/providers/kilo.md +0 -333
- package/.docs/models/providers/kimi-for-coding.md +0 -100
- package/.docs/models/providers/kuae-cloud-coding-plan.md +0 -71
- package/.docs/models/providers/llama.md +0 -77
- package/.docs/models/providers/lmstudio.md +0 -73
- package/.docs/models/providers/lucidquery.md +0 -72
- package/.docs/models/providers/minimax-cn-coding-plan.md +0 -102
- package/.docs/models/providers/minimax-cn.md +0 -102
- package/.docs/models/providers/minimax-coding-plan.md +0 -102
- package/.docs/models/providers/minimax.md +0 -104
- package/.docs/models/providers/mistral.md +0 -124
- package/.docs/models/providers/moark.md +0 -72
- package/.docs/models/providers/modelscope.md +0 -77
- package/.docs/models/providers/moonshotai-cn.md +0 -76
- package/.docs/models/providers/moonshotai.md +0 -76
- package/.docs/models/providers/morph.md +0 -73
- package/.docs/models/providers/nano-gpt.md +0 -103
- package/.docs/models/providers/nebius.md +0 -116
- package/.docs/models/providers/nova.md +0 -72
- package/.docs/models/providers/novita-ai.md +0 -154
- package/.docs/models/providers/nvidia.md +0 -141
- package/.docs/models/providers/ollama-cloud.md +0 -103
- package/.docs/models/providers/ollama.md +0 -33
- package/.docs/models/providers/openai.md +0 -193
- package/.docs/models/providers/opencode.md +0 -100
- package/.docs/models/providers/ovhcloud.md +0 -83
- package/.docs/models/providers/perplexity.md +0 -100
- package/.docs/models/providers/poe.md +0 -183
- package/.docs/models/providers/privatemode-ai.md +0 -75
- package/.docs/models/providers/requesty.md +0 -90
- package/.docs/models/providers/scaleway.md +0 -84
- package/.docs/models/providers/siliconflow-cn.md +0 -138
- package/.docs/models/providers/siliconflow.md +0 -140
- package/.docs/models/providers/stackit.md +0 -78
- package/.docs/models/providers/stepfun.md +0 -73
- package/.docs/models/providers/submodel.md +0 -79
- package/.docs/models/providers/synthetic.md +0 -96
- package/.docs/models/providers/togetherai.md +0 -115
- package/.docs/models/providers/upstage.md +0 -73
- package/.docs/models/providers/venice.md +0 -95
- package/.docs/models/providers/vivgrid.md +0 -106
- package/.docs/models/providers/vultr.md +0 -75
- package/.docs/models/providers/wandb.md +0 -80
- package/.docs/models/providers/xai.md +0 -141
- package/.docs/models/providers/xiaomi.md +0 -71
- package/.docs/models/providers/zai-coding-plan.md +0 -80
- package/.docs/models/providers/zai.md +0 -79
- package/.docs/models/providers/zenmux.md +0 -161
- package/.docs/models/providers/zhipuai-coding-plan.md +0 -79
- package/.docs/models/providers/zhipuai.md +0 -79
- package/.docs/models/providers.md +0 -81
- package/.docs/reference/agents/agent.md +0 -142
- package/.docs/reference/agents/generate.md +0 -174
- package/.docs/reference/agents/generateLegacy.md +0 -176
- package/.docs/reference/agents/getDefaultGenerateOptions.md +0 -36
- package/.docs/reference/agents/getDefaultOptions.md +0 -34
- package/.docs/reference/agents/getDefaultStreamOptions.md +0 -36
- package/.docs/reference/agents/getDescription.md +0 -21
- package/.docs/reference/agents/getInstructions.md +0 -34
- package/.docs/reference/agents/getLLM.md +0 -37
- package/.docs/reference/agents/getMemory.md +0 -34
- package/.docs/reference/agents/getModel.md +0 -34
- package/.docs/reference/agents/getTools.md +0 -29
- package/.docs/reference/agents/getVoice.md +0 -34
- package/.docs/reference/agents/listAgents.md +0 -35
- package/.docs/reference/agents/listScorers.md +0 -34
- package/.docs/reference/agents/listTools.md +0 -34
- package/.docs/reference/agents/listWorkflows.md +0 -34
- package/.docs/reference/agents/network.md +0 -134
- package/.docs/reference/ai-sdk/chat-route.md +0 -82
- package/.docs/reference/ai-sdk/handle-chat-stream.md +0 -53
- package/.docs/reference/ai-sdk/handle-network-stream.md +0 -37
- package/.docs/reference/ai-sdk/handle-workflow-stream.md +0 -55
- package/.docs/reference/ai-sdk/network-route.md +0 -74
- package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +0 -232
- package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +0 -79
- package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +0 -73
- package/.docs/reference/ai-sdk/with-mastra.md +0 -59
- package/.docs/reference/ai-sdk/workflow-route.md +0 -79
- package/.docs/reference/auth/auth0.md +0 -73
- package/.docs/reference/auth/better-auth.md +0 -71
- package/.docs/reference/auth/clerk.md +0 -36
- package/.docs/reference/auth/firebase.md +0 -80
- package/.docs/reference/auth/jwt.md +0 -26
- package/.docs/reference/auth/supabase.md +0 -33
- package/.docs/reference/auth/workos.md +0 -84
- package/.docs/reference/cli/create-mastra.md +0 -137
- package/.docs/reference/cli/mastra.md +0 -336
- package/.docs/reference/client-js/agents.md +0 -438
- package/.docs/reference/client-js/error-handling.md +0 -16
- package/.docs/reference/client-js/logs.md +0 -24
- package/.docs/reference/client-js/mastra-client.md +0 -63
- package/.docs/reference/client-js/memory.md +0 -225
- package/.docs/reference/client-js/observability.md +0 -72
- package/.docs/reference/client-js/telemetry.md +0 -20
- package/.docs/reference/client-js/tools.md +0 -44
- package/.docs/reference/client-js/vectors.md +0 -79
- package/.docs/reference/client-js/workflows.md +0 -199
- package/.docs/reference/configuration.md +0 -749
- package/.docs/reference/core/addGateway.md +0 -42
- package/.docs/reference/core/getAgent.md +0 -21
- package/.docs/reference/core/getAgentById.md +0 -21
- package/.docs/reference/core/getDeployer.md +0 -22
- package/.docs/reference/core/getGateway.md +0 -38
- package/.docs/reference/core/getGatewayById.md +0 -41
- package/.docs/reference/core/getLogger.md +0 -22
- package/.docs/reference/core/getMCPServer.md +0 -45
- package/.docs/reference/core/getMCPServerById.md +0 -53
- package/.docs/reference/core/getMemory.md +0 -50
- package/.docs/reference/core/getScorer.md +0 -54
- package/.docs/reference/core/getScorerById.md +0 -54
- package/.docs/reference/core/getServer.md +0 -22
- package/.docs/reference/core/getStorage.md +0 -22
- package/.docs/reference/core/getStoredAgentById.md +0 -89
- package/.docs/reference/core/getTelemetry.md +0 -22
- package/.docs/reference/core/getVector.md +0 -22
- package/.docs/reference/core/getWorkflow.md +0 -40
- package/.docs/reference/core/listAgents.md +0 -21
- package/.docs/reference/core/listGateways.md +0 -40
- package/.docs/reference/core/listLogs.md +0 -38
- package/.docs/reference/core/listLogsByRunId.md +0 -36
- package/.docs/reference/core/listMCPServers.md +0 -51
- package/.docs/reference/core/listMemory.md +0 -56
- package/.docs/reference/core/listScorers.md +0 -29
- package/.docs/reference/core/listStoredAgents.md +0 -93
- package/.docs/reference/core/listVectors.md +0 -22
- package/.docs/reference/core/listWorkflows.md +0 -21
- package/.docs/reference/core/mastra-class.md +0 -66
- package/.docs/reference/core/mastra-model-gateway.md +0 -153
- package/.docs/reference/core/setLogger.md +0 -26
- package/.docs/reference/core/setStorage.md +0 -27
- package/.docs/reference/datasets/addItem.md +0 -35
- package/.docs/reference/datasets/addItems.md +0 -33
- package/.docs/reference/datasets/compareExperiments.md +0 -48
- package/.docs/reference/datasets/create.md +0 -49
- package/.docs/reference/datasets/dataset.md +0 -78
- package/.docs/reference/datasets/datasets-manager.md +0 -84
- package/.docs/reference/datasets/delete.md +0 -23
- package/.docs/reference/datasets/deleteExperiment.md +0 -25
- package/.docs/reference/datasets/deleteItem.md +0 -25
- package/.docs/reference/datasets/deleteItems.md +0 -27
- package/.docs/reference/datasets/get.md +0 -29
- package/.docs/reference/datasets/getDetails.md +0 -45
- package/.docs/reference/datasets/getExperiment.md +0 -28
- package/.docs/reference/datasets/getItem.md +0 -31
- package/.docs/reference/datasets/getItemHistory.md +0 -29
- package/.docs/reference/datasets/list.md +0 -29
- package/.docs/reference/datasets/listExperimentResults.md +0 -37
- package/.docs/reference/datasets/listExperiments.md +0 -31
- package/.docs/reference/datasets/listItems.md +0 -44
- package/.docs/reference/datasets/listVersions.md +0 -31
- package/.docs/reference/datasets/startExperiment.md +0 -60
- package/.docs/reference/datasets/startExperimentAsync.md +0 -41
- package/.docs/reference/datasets/update.md +0 -46
- package/.docs/reference/datasets/updateItem.md +0 -36
- package/.docs/reference/deployer/cloudflare.md +0 -79
- package/.docs/reference/deployer/netlify.md +0 -82
- package/.docs/reference/deployer/vercel.md +0 -91
- package/.docs/reference/deployer.md +0 -100
- package/.docs/reference/evals/answer-relevancy.md +0 -105
- package/.docs/reference/evals/answer-similarity.md +0 -99
- package/.docs/reference/evals/bias.md +0 -120
- package/.docs/reference/evals/completeness.md +0 -137
- package/.docs/reference/evals/content-similarity.md +0 -101
- package/.docs/reference/evals/context-precision.md +0 -196
- package/.docs/reference/evals/context-relevance.md +0 -536
- package/.docs/reference/evals/create-scorer.md +0 -270
- package/.docs/reference/evals/faithfulness.md +0 -114
- package/.docs/reference/evals/hallucination.md +0 -220
- package/.docs/reference/evals/keyword-coverage.md +0 -128
- package/.docs/reference/evals/mastra-scorer.md +0 -123
- package/.docs/reference/evals/noise-sensitivity.md +0 -685
- package/.docs/reference/evals/prompt-alignment.md +0 -619
- package/.docs/reference/evals/run-evals.md +0 -138
- package/.docs/reference/evals/scorer-utils.md +0 -330
- package/.docs/reference/evals/textual-difference.md +0 -113
- package/.docs/reference/evals/tone-consistency.md +0 -119
- package/.docs/reference/evals/tool-call-accuracy.md +0 -533
- package/.docs/reference/evals/toxicity.md +0 -123
- package/.docs/reference/harness/harness-class.md +0 -645
- package/.docs/reference/index.md +0 -276
- package/.docs/reference/logging/pino-logger.md +0 -117
- package/.docs/reference/memory/clone-utilities.md +0 -199
- package/.docs/reference/memory/cloneThread.md +0 -130
- package/.docs/reference/memory/createThread.md +0 -68
- package/.docs/reference/memory/deleteMessages.md +0 -40
- package/.docs/reference/memory/getThreadById.md +0 -24
- package/.docs/reference/memory/listThreads.md +0 -145
- package/.docs/reference/memory/memory-class.md +0 -147
- package/.docs/reference/memory/observational-memory.md +0 -565
- package/.docs/reference/memory/recall.md +0 -91
- package/.docs/reference/observability/tracing/bridges/otel.md +0 -131
- package/.docs/reference/observability/tracing/configuration.md +0 -178
- package/.docs/reference/observability/tracing/exporters/arize.md +0 -141
- package/.docs/reference/observability/tracing/exporters/braintrust.md +0 -93
- package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +0 -163
- package/.docs/reference/observability/tracing/exporters/console-exporter.md +0 -138
- package/.docs/reference/observability/tracing/exporters/datadog.md +0 -116
- package/.docs/reference/observability/tracing/exporters/default-exporter.md +0 -174
- package/.docs/reference/observability/tracing/exporters/laminar.md +0 -78
- package/.docs/reference/observability/tracing/exporters/langfuse.md +0 -134
- package/.docs/reference/observability/tracing/exporters/langsmith.md +0 -110
- package/.docs/reference/observability/tracing/exporters/otel.md +0 -199
- package/.docs/reference/observability/tracing/exporters/posthog.md +0 -92
- package/.docs/reference/observability/tracing/exporters/sentry.md +0 -184
- package/.docs/reference/observability/tracing/instances.md +0 -109
- package/.docs/reference/observability/tracing/interfaces.md +0 -749
- package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +0 -144
- package/.docs/reference/observability/tracing/spans.md +0 -224
- package/.docs/reference/processors/batch-parts-processor.md +0 -61
- package/.docs/reference/processors/language-detector.md +0 -81
- package/.docs/reference/processors/message-history-processor.md +0 -85
- package/.docs/reference/processors/moderation-processor.md +0 -104
- package/.docs/reference/processors/pii-detector.md +0 -107
- package/.docs/reference/processors/processor-interface.md +0 -525
- package/.docs/reference/processors/prompt-injection-detector.md +0 -71
- package/.docs/reference/processors/semantic-recall-processor.md +0 -123
- package/.docs/reference/processors/system-prompt-scrubber.md +0 -80
- package/.docs/reference/processors/token-limiter-processor.md +0 -113
- package/.docs/reference/processors/tool-call-filter.md +0 -85
- package/.docs/reference/processors/tool-search-processor.md +0 -113
- package/.docs/reference/processors/unicode-normalizer.md +0 -62
- package/.docs/reference/processors/working-memory-processor.md +0 -154
- package/.docs/reference/rag/chunk.md +0 -221
- package/.docs/reference/rag/database-config.md +0 -264
- package/.docs/reference/rag/document.md +0 -114
- package/.docs/reference/rag/embeddings.md +0 -92
- package/.docs/reference/rag/extract-params.md +0 -168
- package/.docs/reference/rag/graph-rag.md +0 -111
- package/.docs/reference/rag/metadata-filters.md +0 -216
- package/.docs/reference/rag/rerank.md +0 -80
- package/.docs/reference/rag/rerankWithScorer.md +0 -80
- package/.docs/reference/server/create-route.md +0 -260
- package/.docs/reference/server/express-adapter.md +0 -176
- package/.docs/reference/server/fastify-adapter.md +0 -90
- package/.docs/reference/server/hono-adapter.md +0 -162
- package/.docs/reference/server/koa-adapter.md +0 -127
- package/.docs/reference/server/mastra-server.md +0 -298
- package/.docs/reference/server/register-api-route.md +0 -249
- package/.docs/reference/server/routes.md +0 -306
- package/.docs/reference/storage/cloudflare-d1.md +0 -218
- package/.docs/reference/storage/cloudflare.md +0 -88
- package/.docs/reference/storage/composite.md +0 -235
- package/.docs/reference/storage/convex.md +0 -161
- package/.docs/reference/storage/dynamodb.md +0 -282
- package/.docs/reference/storage/lance.md +0 -131
- package/.docs/reference/storage/libsql.md +0 -135
- package/.docs/reference/storage/mongodb.md +0 -262
- package/.docs/reference/storage/mssql.md +0 -155
- package/.docs/reference/storage/overview.md +0 -121
- package/.docs/reference/storage/postgresql.md +0 -529
- package/.docs/reference/storage/upstash.md +0 -160
- package/.docs/reference/streaming/ChunkType.md +0 -292
- package/.docs/reference/streaming/agents/MastraModelOutput.md +0 -182
- package/.docs/reference/streaming/agents/stream.md +0 -212
- package/.docs/reference/streaming/agents/streamLegacy.md +0 -142
- package/.docs/reference/streaming/workflows/observeStream.md +0 -42
- package/.docs/reference/streaming/workflows/resumeStream.md +0 -61
- package/.docs/reference/streaming/workflows/stream.md +0 -88
- package/.docs/reference/streaming/workflows/timeTravelStream.md +0 -142
- package/.docs/reference/templates/overview.md +0 -194
- package/.docs/reference/tools/create-tool.md +0 -237
- package/.docs/reference/tools/document-chunker-tool.md +0 -89
- package/.docs/reference/tools/graph-rag-tool.md +0 -185
- package/.docs/reference/tools/mcp-client.md +0 -962
- package/.docs/reference/tools/mcp-server.md +0 -1275
- package/.docs/reference/tools/vector-query-tool.md +0 -459
- package/.docs/reference/vectors/astra.md +0 -121
- package/.docs/reference/vectors/chroma.md +0 -267
- package/.docs/reference/vectors/convex.md +0 -303
- package/.docs/reference/vectors/couchbase.md +0 -226
- package/.docs/reference/vectors/duckdb.md +0 -318
- package/.docs/reference/vectors/elasticsearch.md +0 -189
- package/.docs/reference/vectors/lance.md +0 -220
- package/.docs/reference/vectors/libsql.md +0 -305
- package/.docs/reference/vectors/mongodb.md +0 -295
- package/.docs/reference/vectors/opensearch.md +0 -99
- package/.docs/reference/vectors/pg.md +0 -408
- package/.docs/reference/vectors/pinecone.md +0 -168
- package/.docs/reference/vectors/qdrant.md +0 -222
- package/.docs/reference/vectors/s3vectors.md +0 -277
- package/.docs/reference/vectors/turbopuffer.md +0 -157
- package/.docs/reference/vectors/upstash.md +0 -294
- package/.docs/reference/vectors/vectorize.md +0 -147
- package/.docs/reference/voice/azure.md +0 -148
- package/.docs/reference/voice/cloudflare.md +0 -83
- package/.docs/reference/voice/composite-voice.md +0 -121
- package/.docs/reference/voice/deepgram.md +0 -79
- package/.docs/reference/voice/elevenlabs.md +0 -98
- package/.docs/reference/voice/google-gemini-live.md +0 -378
- package/.docs/reference/voice/google.md +0 -228
- package/.docs/reference/voice/mastra-voice.md +0 -313
- package/.docs/reference/voice/murf.md +0 -122
- package/.docs/reference/voice/openai-realtime.md +0 -203
- package/.docs/reference/voice/openai.md +0 -88
- package/.docs/reference/voice/playai.md +0 -80
- package/.docs/reference/voice/sarvam.md +0 -126
- package/.docs/reference/voice/speechify.md +0 -75
- package/.docs/reference/voice/voice.addInstructions.md +0 -56
- package/.docs/reference/voice/voice.addTools.md +0 -67
- package/.docs/reference/voice/voice.answer.md +0 -54
- package/.docs/reference/voice/voice.close.md +0 -51
- package/.docs/reference/voice/voice.connect.md +0 -94
- package/.docs/reference/voice/voice.events.md +0 -37
- package/.docs/reference/voice/voice.getSpeakers.md +0 -129
- package/.docs/reference/voice/voice.listen.md +0 -164
- package/.docs/reference/voice/voice.off.md +0 -54
- package/.docs/reference/voice/voice.on.md +0 -111
- package/.docs/reference/voice/voice.send.md +0 -65
- package/.docs/reference/voice/voice.speak.md +0 -157
- package/.docs/reference/voice/voice.updateConfig.md +0 -60
- package/.docs/reference/workflows/run-methods/cancel.md +0 -86
- package/.docs/reference/workflows/run-methods/restart.md +0 -33
- package/.docs/reference/workflows/run-methods/resume.md +0 -59
- package/.docs/reference/workflows/run-methods/start.md +0 -58
- package/.docs/reference/workflows/run-methods/startAsync.md +0 -67
- package/.docs/reference/workflows/run-methods/timeTravel.md +0 -142
- package/.docs/reference/workflows/run.md +0 -59
- package/.docs/reference/workflows/step.md +0 -119
- package/.docs/reference/workflows/workflow-methods/branch.md +0 -25
- package/.docs/reference/workflows/workflow-methods/commit.md +0 -17
- package/.docs/reference/workflows/workflow-methods/create-run.md +0 -63
- package/.docs/reference/workflows/workflow-methods/dountil.md +0 -25
- package/.docs/reference/workflows/workflow-methods/dowhile.md +0 -25
- package/.docs/reference/workflows/workflow-methods/foreach.md +0 -118
- package/.docs/reference/workflows/workflow-methods/map.md +0 -93
- package/.docs/reference/workflows/workflow-methods/parallel.md +0 -21
- package/.docs/reference/workflows/workflow-methods/sleep.md +0 -35
- package/.docs/reference/workflows/workflow-methods/sleepUntil.md +0 -35
- package/.docs/reference/workflows/workflow-methods/then.md +0 -21
- package/.docs/reference/workflows/workflow.md +0 -157
- package/.docs/reference/workspace/e2b-sandbox.md +0 -288
- package/.docs/reference/workspace/filesystem.md +0 -202
- package/.docs/reference/workspace/gcs-filesystem.md +0 -170
- package/.docs/reference/workspace/local-filesystem.md +0 -327
- package/.docs/reference/workspace/local-sandbox.md +0 -285
- package/.docs/reference/workspace/s3-filesystem.md +0 -169
- package/.docs/reference/workspace/sandbox.md +0 -81
- package/.docs/reference/workspace/workspace-class.md +0 -226
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
# Building a Dev Assistant
|
|
2
|
-
|
|
3
|
-
In this guide, you'll build a complete development assistant that combines all workspace features:
|
|
4
|
-
|
|
5
|
-
- [Filesystem](https://mastra.ai/docs/workspace/filesystem) for file management
|
|
6
|
-
- [Sandbox](https://mastra.ai/docs/workspace/sandbox) for code execution
|
|
7
|
-
- [Skills](https://mastra.ai/docs/workspace/skills) for coding standards
|
|
8
|
-
- [Search](https://mastra.ai/docs/workspace/search) for finding examples
|
|
9
|
-
|
|
10
|
-
You'll set up a workspace with a sample project, add coding standards as a skill, and create an agent that writes code following TDD practices. By the end, you'll have an agent that can read existing code, write new implementations, run tests in a sandbox, and iterate based on results.
|
|
11
|
-
|
|
12
|
-
## Prerequisites
|
|
13
|
-
|
|
14
|
-
- Node.js `v22.13.0` or later installed
|
|
15
|
-
- An API key from a supported [Model Provider](https://mastra.ai/models)
|
|
16
|
-
- An existing Mastra project (Follow the [installation guide](https://mastra.ai/guides/getting-started/quickstart) to set up a new project)
|
|
17
|
-
|
|
18
|
-
### Install vitest
|
|
19
|
-
|
|
20
|
-
The dev assistant will use [Vitest](https://vitest.dev/) to run tests inside the workspace sandbox. Install it as a dev dependency in your project:
|
|
21
|
-
|
|
22
|
-
**npm**:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npm install -D vitest
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
**pnpm**:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
pnpm add -D vitest
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**Yarn**:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
yarn add --dev vitest
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**Bun**:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
bun add --dev vitest
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Set up the workspace
|
|
47
|
-
|
|
48
|
-
The workspace uses a local filesystem to manage documentation files. The agent reads and writes files within the workspace directory. In your `src/mastra/index.ts` file, import the [`Workspace`](https://mastra.ai/reference/workspace/workspace-class), [`LocalFilesystem`](https://mastra.ai/reference/workspace/local-filesystem), and [`LocalSandbox`](https://mastra.ai/reference/workspace/local-sandbox) classes.
|
|
49
|
-
|
|
50
|
-
Additionally, enable BM25 search indexing and load skills from the `skills` directory.
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
import { Mastra } from '@mastra/core';
|
|
54
|
-
import { resolve } from 'node:path';
|
|
55
|
-
import { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace';
|
|
56
|
-
|
|
57
|
-
const workspace = new Workspace({
|
|
58
|
-
filesystem: new LocalFilesystem({ basePath: resolve(import.meta.dirname, '../../workspace') }),
|
|
59
|
-
sandbox: new LocalSandbox({ workingDirectory: resolve(import.meta.dirname, '../../workspace') }),
|
|
60
|
-
skills: ['/skills'],
|
|
61
|
-
bm25: true,
|
|
62
|
-
autoIndexPaths: ['/docs', '/src'],
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
export const mastra = new Mastra({
|
|
66
|
-
workspace,
|
|
67
|
-
});
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
At the root of your project, create a new folder called `workspace`. This is where all files will be stored and managed by the agent.
|
|
71
|
-
|
|
72
|
-
## Add sample project files
|
|
73
|
-
|
|
74
|
-
The workspace uses the following folder structure:
|
|
75
|
-
|
|
76
|
-
- `workspace/src/`: Source code for the sample project
|
|
77
|
-
- `workspace/tests/`: Test files
|
|
78
|
-
- `workspace/docs/`: Project documentation
|
|
79
|
-
- `workspace/skills/`: Coding standards and guidelines as [Agent Skills](https://agentskills.io)
|
|
80
|
-
|
|
81
|
-
Get started by creating a `workspace/src/utils/string-helpers.ts` file with some utility functions, and a corresponding test file in `workspace/tests/string-helpers.test.ts`.
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
export function capitalize(str: string): string {
|
|
85
|
-
if (!str) return str;
|
|
86
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export function slugify(str: string): string {
|
|
90
|
-
return str
|
|
91
|
-
.toLowerCase()
|
|
92
|
-
.replace(/[^\w\s-]/g, '')
|
|
93
|
-
.replace(/\s+/g, '-');
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
```typescript
|
|
98
|
-
import { describe, it, expect } from 'vitest';
|
|
99
|
-
import { capitalize, slugify } from '../src/utils/string-helpers';
|
|
100
|
-
|
|
101
|
-
describe('String Helpers', () => {
|
|
102
|
-
describe('capitalize', () => {
|
|
103
|
-
it('capitalizes first letter', () => {
|
|
104
|
-
expect(capitalize('hello')).toBe('Hello');
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
describe('slugify', () => {
|
|
109
|
-
it('converts to lowercase and replaces spaces', () => {
|
|
110
|
-
expect(slugify('Hello World')).toBe('hello-world');
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Create a skill definition at `workspace/skills/coding-standards/SKILL.md`. This tells the agent how to write and test code:
|
|
117
|
-
|
|
118
|
-
```markdown
|
|
119
|
-
---
|
|
120
|
-
name: coding-standards
|
|
121
|
-
description: Project coding standards and testing guidelines
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
# Coding Standards
|
|
125
|
-
|
|
126
|
-
## Code Quality
|
|
127
|
-
- Functions under 50 lines
|
|
128
|
-
- Use descriptive variable names
|
|
129
|
-
- Always add TypeScript types
|
|
130
|
-
|
|
131
|
-
## Testing
|
|
132
|
-
- Test all exported functions
|
|
133
|
-
- Use AAA pattern: Arrange, Act, Assert
|
|
134
|
-
- Cover happy paths and edge cases
|
|
135
|
-
|
|
136
|
-
## Before Committing
|
|
137
|
-
1. Write implementation
|
|
138
|
-
2. Write comprehensive tests
|
|
139
|
-
3. Run tests: `npm test`
|
|
140
|
-
4. All tests must pass
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
Create a reference file at `workspace/skills/coding-standards/references/testing-guide.md` with detailed testing patterns:
|
|
144
|
-
|
|
145
|
-
````markdown
|
|
146
|
-
# Testing Guide
|
|
147
|
-
|
|
148
|
-
## AAA Pattern
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
it('descriptive test name', () => {
|
|
152
|
-
// Arrange: Set up test data
|
|
153
|
-
const input = 'test';
|
|
154
|
-
|
|
155
|
-
// Act: Execute the function
|
|
156
|
-
const result = doSomething(input);
|
|
157
|
-
|
|
158
|
-
// Assert: Verify the result
|
|
159
|
-
expect(result).toBe('expected');
|
|
160
|
-
});
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
## What to Test
|
|
164
|
-
|
|
165
|
-
- Happy paths (normal inputs)
|
|
166
|
-
- Edge cases (empty, null, boundary values)
|
|
167
|
-
- Error cases (invalid inputs, exceptions)
|
|
168
|
-
````
|
|
169
|
-
|
|
170
|
-
## Create the dev assistant
|
|
171
|
-
|
|
172
|
-
With the workspace set up, it's time to create the development assistant agent. This agent will have instructions for adding new features using test-driven development (TDD).
|
|
173
|
-
|
|
174
|
-
Create a new file `src/mastra/agents/dev-assistant.ts` and define the agent:
|
|
175
|
-
|
|
176
|
-
```typescript
|
|
177
|
-
import { Agent } from '@mastra/core/agent';
|
|
178
|
-
|
|
179
|
-
export const devAssistant = new Agent({
|
|
180
|
-
id: 'dev-assistant',
|
|
181
|
-
name: 'Dev Assistant',
|
|
182
|
-
instructions: `You are a development assistant.
|
|
183
|
-
|
|
184
|
-
When adding features:
|
|
185
|
-
1. Activate 'coding-standards' skill
|
|
186
|
-
2. Search workspace for similar code examples
|
|
187
|
-
3. Write the implementation following standards
|
|
188
|
-
4. Write comprehensive tests. Leave existing tests in place, only add your new tests
|
|
189
|
-
5. Execute the command \`npx vitest run\` to validate that all tests pass
|
|
190
|
-
6. Update documentation if needed
|
|
191
|
-
|
|
192
|
-
For every new feature: Write code → Write tests → Run tests → Update docs
|
|
193
|
-
|
|
194
|
-
Always explain your reasoning and steps.`,
|
|
195
|
-
model: 'openai/gpt-4o',
|
|
196
|
-
});
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
Define the agent by importing it inside `src/mastra/index.ts` and registering it with the `Mastra` instance:
|
|
200
|
-
|
|
201
|
-
```typescript
|
|
202
|
-
import { Mastra } from '@mastra/core';
|
|
203
|
-
import { resolve } from 'node:path';
|
|
204
|
-
import { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace';
|
|
205
|
-
import { devAssistant } from './agents/dev-assistant';
|
|
206
|
-
|
|
207
|
-
const workspace = new Workspace({
|
|
208
|
-
filesystem: new LocalFilesystem({ basePath: resolve(import.meta.dirname, '../../workspace') }),
|
|
209
|
-
sandbox: new LocalSandbox({ workingDirectory: resolve(import.meta.dirname, '../../workspace') }),
|
|
210
|
-
skills: ['/skills'],
|
|
211
|
-
bm25: true,
|
|
212
|
-
autoIndexPaths: ['/docs', '/src'],
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
export const mastra = new Mastra({
|
|
216
|
-
workspace,
|
|
217
|
-
agents: { devAssistant },
|
|
218
|
-
});
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
## Test the assistant
|
|
222
|
-
|
|
223
|
-
Start Mastra Studio and interact with the agent to see it in action.
|
|
224
|
-
|
|
225
|
-
**npm**:
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
npm run dev
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
**pnpm**:
|
|
232
|
-
|
|
233
|
-
```bash
|
|
234
|
-
pnpm run dev
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
**Yarn**:
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
yarn dev
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
**Bun**:
|
|
244
|
-
|
|
245
|
-
```bash
|
|
246
|
-
bun run dev
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
Open [localhost:4111](http://localhost:4111) and navigate to the dev assistant.
|
|
250
|
-
|
|
251
|
-
Try asking the agent to add a new function using TDD:
|
|
252
|
-
|
|
253
|
-
```text
|
|
254
|
-
Add a 'truncate' function to string-helpers.ts that shortens strings to a max length. Add '...' if truncated.
|
|
255
|
-
|
|
256
|
-
Follow TDD: write tests first, then implementation.
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
Since agent responses are non-deterministic, the exact output will vary. However, you should see the agent follow a process similar to this:
|
|
260
|
-
|
|
261
|
-
1. Activate the coding-standards skill
|
|
262
|
-
|
|
263
|
-
2. Search the workspace for similar code patterns
|
|
264
|
-
|
|
265
|
-
3. Write tests first, for example:
|
|
266
|
-
|
|
267
|
-
```typescript
|
|
268
|
-
describe('truncate', () => {
|
|
269
|
-
it('truncates long strings', () => {
|
|
270
|
-
expect(truncate('Hello World', 5)).toBe('He...');
|
|
271
|
-
});
|
|
272
|
-
|
|
273
|
-
it('keeps short strings unchanged', () => {
|
|
274
|
-
expect(truncate('Hi', 10)).toBe('Hi');
|
|
275
|
-
});
|
|
276
|
-
|
|
277
|
-
it('handles edge cases', () => {
|
|
278
|
-
expect(truncate('', 5)).toBe('');
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
4. Write the implementation, for example:
|
|
284
|
-
|
|
285
|
-
```typescript
|
|
286
|
-
export function truncate(str: string, maxLength: number): string {
|
|
287
|
-
if (!str || maxLength < 0) return str;
|
|
288
|
-
if (str.length <= maxLength) return str;
|
|
289
|
-
if (maxLength === 0) return '...';
|
|
290
|
-
return str.slice(0, maxLength - 3) + '...';
|
|
291
|
-
}
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
5. Run tests and verify they pass
|
|
295
|
-
|
|
296
|
-
## Next steps
|
|
297
|
-
|
|
298
|
-
You can extend this assistant to:
|
|
299
|
-
|
|
300
|
-
- Add more skills for different languages or frameworks
|
|
301
|
-
- Create specialized agents for backend, frontend, or DevOps
|
|
302
|
-
- Integrate with GitHub for automated PR reviews
|
|
303
|
-
- Build CI/CD automation
|
|
304
|
-
- Add multi-agent workflows
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
# Building a Docs Manager
|
|
2
|
-
|
|
3
|
-
In this guide, you'll build a documentation manager that maintains your project's docs. It creates well-structured markdown files, keeps documentation organized, and prevents accidental overwrites. You'll learn how to set up a workspace filesystem, create an agent with document management instructions, and use it to generate and update documentation through conversational prompts.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
- Node.js `v22.13.0` or later installed
|
|
8
|
-
- An API key from a supported [Model Provider](https://mastra.ai/models)
|
|
9
|
-
- An existing Mastra project (Follow the [installation guide](https://mastra.ai/guides/getting-started/quickstart) to set up a new project)
|
|
10
|
-
|
|
11
|
-
## Set up the workspace
|
|
12
|
-
|
|
13
|
-
The workspace uses a local filesystem to manage documentation files. The agent reads and writes files within the workspace directory. In your `src/mastra/index.ts` file, import the [`Workspace`](https://mastra.ai/reference/workspace/workspace-class) and [`LocalFilesystem`](https://mastra.ai/reference/workspace/local-filesystem) classes.
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
import { Mastra } from '@mastra/core';
|
|
17
|
-
import { resolve } from 'node:path';
|
|
18
|
-
import { Workspace, LocalFilesystem } from '@mastra/core/workspace';
|
|
19
|
-
|
|
20
|
-
const workspace = new Workspace({
|
|
21
|
-
filesystem: new LocalFilesystem({
|
|
22
|
-
basePath: resolve(import.meta.dirname, '../../workspace'),
|
|
23
|
-
}),
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
export const mastra = new Mastra({
|
|
27
|
-
workspace,
|
|
28
|
-
});
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
At the root of your project, create a new folder called `workspace`. This is where all documentation files will be stored and managed by the agent.
|
|
32
|
-
|
|
33
|
-
## Add example documentation
|
|
34
|
-
|
|
35
|
-
Inside the `workspace` directory, create the following folders:
|
|
36
|
-
|
|
37
|
-
- `docs/guides/`: For how-to guides
|
|
38
|
-
- `docs/api/`: For API reference documentation
|
|
39
|
-
- `docs/tutorials/`: For step-by-step tutorials
|
|
40
|
-
|
|
41
|
-
Create a `workspace/docs/README.md` file that serves as the documentation index:
|
|
42
|
-
|
|
43
|
-
```markdown
|
|
44
|
-
# Project Documentation
|
|
45
|
-
|
|
46
|
-
Welcome to the documentation!
|
|
47
|
-
|
|
48
|
-
## Sections
|
|
49
|
-
|
|
50
|
-
- [Guides](./guides/): How-to guides
|
|
51
|
-
- [API](./api/): API reference
|
|
52
|
-
- [Tutorials](./tutorials/): Step-by-step tutorials
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Add a sample guide so the agent can see the existing documentation style:
|
|
56
|
-
|
|
57
|
-
````markdown
|
|
58
|
-
# Getting Started
|
|
59
|
-
|
|
60
|
-
Quick start guide for the project.
|
|
61
|
-
|
|
62
|
-
## Installation
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
npm install example-package
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Quick Example
|
|
69
|
-
|
|
70
|
-
```typescript
|
|
71
|
-
import { Example } from 'example-package';
|
|
72
|
-
|
|
73
|
-
const example = new Example();
|
|
74
|
-
example.run();
|
|
75
|
-
```
|
|
76
|
-
````
|
|
77
|
-
|
|
78
|
-
## Create the docs manager
|
|
79
|
-
|
|
80
|
-
Now it's time to create the documentation manager agent. This agent will have instructions for creating and updating markdown files in the workspace. Create a new file `src/mastra/agents/docs-manager.ts` and define the agent:
|
|
81
|
-
|
|
82
|
-
```typescript
|
|
83
|
-
import { Agent } from '@mastra/core/agent';
|
|
84
|
-
|
|
85
|
-
export const docsManager = new Agent({
|
|
86
|
-
id: 'docs-manager',
|
|
87
|
-
name: 'Docs Manager',
|
|
88
|
-
instructions: `You are a documentation manager that creates and maintains markdown docs.
|
|
89
|
-
|
|
90
|
-
When creating new docs:
|
|
91
|
-
1. Ask for topic and target audience
|
|
92
|
-
2. Create well-structured markdown with clear sections
|
|
93
|
-
3. Include relevant code examples with syntax highlighting
|
|
94
|
-
4. Save in the appropriate directory:
|
|
95
|
-
- /docs/guides/ for user guides and how-tos
|
|
96
|
-
- /docs/api/ for API reference
|
|
97
|
-
- /docs/tutorials/ for step-by-step tutorials
|
|
98
|
-
|
|
99
|
-
When updating existing docs:
|
|
100
|
-
1. ALWAYS read the file first
|
|
101
|
-
2. Make targeted updates without removing unrelated content
|
|
102
|
-
3. Preserve existing structure and formatting
|
|
103
|
-
|
|
104
|
-
Use kebab-case naming for files (getting-started.md).
|
|
105
|
-
Always explain what you're creating and why.`,
|
|
106
|
-
model: 'openai/gpt-4o',
|
|
107
|
-
});
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Define the agent by importing it inside `src/mastra/index.ts` and registering it with the `Mastra` instance:
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
import { Mastra } from '@mastra/core';
|
|
114
|
-
import { resolve } from 'node:path';
|
|
115
|
-
import { Workspace, LocalFilesystem } from '@mastra/core/workspace';
|
|
116
|
-
import { docsManager } from './agents/docs-manager';
|
|
117
|
-
|
|
118
|
-
const workspace = new Workspace({
|
|
119
|
-
filesystem: new LocalFilesystem({
|
|
120
|
-
basePath: resolve(import.meta.dirname, '../../workspace'),
|
|
121
|
-
}),
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
export const mastra = new Mastra({
|
|
125
|
-
workspace,
|
|
126
|
-
agents: { docsManager },
|
|
127
|
-
});
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## Test the docs manager
|
|
131
|
-
|
|
132
|
-
Start Mastra Studio and interact with the agent to see it in action.
|
|
133
|
-
|
|
134
|
-
**npm**:
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
npm run dev
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**pnpm**:
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
pnpm run dev
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**Yarn**:
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
yarn dev
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
**Bun**:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
bun run dev
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
Open [localhost:4111](http://localhost:4111) and navigate to the docs manager.
|
|
159
|
-
|
|
160
|
-
### Create a new document
|
|
161
|
-
|
|
162
|
-
Ask the agent to create a tutorial:
|
|
163
|
-
|
|
164
|
-
```text
|
|
165
|
-
Create a tutorial for setting up authentication. Cover installation, configuration, and a basic example.
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
The agent should create a file like `docs/tutorials/authentication-setup.md`. Since agent responses are non-deterministic, the exact content will vary, but you should see something similar to:
|
|
169
|
-
|
|
170
|
-
````md
|
|
171
|
-
# Authentication Setup
|
|
172
|
-
|
|
173
|
-
Learn how to add authentication to your application.
|
|
174
|
-
|
|
175
|
-
## Installation
|
|
176
|
-
|
|
177
|
-
Install the auth package:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
npm install @example/auth
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## Configuration
|
|
184
|
-
|
|
185
|
-
Create a config file:
|
|
186
|
-
|
|
187
|
-
```typescript
|
|
188
|
-
// auth.config.ts
|
|
189
|
-
export const authConfig = {
|
|
190
|
-
provider: 'oauth',
|
|
191
|
-
clientId: process.env.AUTH_CLIENT_ID,
|
|
192
|
-
secret: process.env.AUTH_SECRET,
|
|
193
|
-
};
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
## Basic Example
|
|
197
|
-
|
|
198
|
-
```typescript
|
|
199
|
-
import { createAuth } from '@example/auth';
|
|
200
|
-
import { authConfig } from './auth.config';
|
|
201
|
-
|
|
202
|
-
const auth = createAuth(authConfig);
|
|
203
|
-
|
|
204
|
-
app.get('/protected', auth.requireAuth(), (req, res) => {
|
|
205
|
-
res.json({ user: req.user });
|
|
206
|
-
});
|
|
207
|
-
```
|
|
208
|
-
````
|
|
209
|
-
|
|
210
|
-
### Update an existing document
|
|
211
|
-
|
|
212
|
-
Try updating an existing document:
|
|
213
|
-
|
|
214
|
-
```text
|
|
215
|
-
Update the getting started guide to include a section on configuration after the Quick Example
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
The agent should read the existing `getting-started.md` file, find the right insertion point, and add the new section without disrupting existing content.
|
|
219
|
-
|
|
220
|
-
### Organize documentation
|
|
221
|
-
|
|
222
|
-
Ask the agent to create an index:
|
|
223
|
-
|
|
224
|
-
```text
|
|
225
|
-
List all tutorial files and create an index page that links to all of them
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
The agent should create a file like `/docs/tutorials/index.md` that links to all available tutorials.
|
|
229
|
-
|
|
230
|
-
## Next steps
|
|
231
|
-
|
|
232
|
-
You can extend this manager to:
|
|
233
|
-
|
|
234
|
-
- Add BM25 or vector search to find relevant documentation
|
|
235
|
-
- Create skills for documentation templates
|
|
236
|
-
- Build automated doc generation from source code
|
|
237
|
-
- Integrate with GitHub to update docs on commits
|
|
238
|
-
- Add validation to check links and formatting
|