@mastra/mcp-docs-server 0.13.27 → 0.13.28-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fplayground.md +3 -1
  2. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +10 -10
  3. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +4 -0
  4. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +21 -21
  5. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +20 -0
  6. package/.docs/organized/changelogs/%40mastra%2Fastra.md +10 -10
  7. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +11 -11
  8. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +11 -11
  9. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +41 -41
  10. package/.docs/organized/changelogs/%40mastra%2Fcloud.md +10 -10
  11. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +10 -10
  12. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +10 -10
  13. package/.docs/organized/changelogs/%40mastra%2Fcore.md +97 -97
  14. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +10 -10
  15. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +44 -44
  16. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +31 -31
  17. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +29 -29
  18. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +31 -31
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +75 -75
  20. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +27 -27
  21. package/.docs/organized/changelogs/%40mastra%2Fevals.md +10 -10
  22. package/.docs/organized/changelogs/%40mastra%2Flance.md +10 -10
  23. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +10 -10
  24. package/.docs/organized/changelogs/%40mastra%2Floggers.md +10 -10
  25. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +33 -33
  26. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +10 -10
  27. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +21 -21
  28. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +19 -19
  29. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +10 -10
  30. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +10 -10
  31. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +10 -10
  32. package/.docs/organized/changelogs/%40mastra%2Fpg.md +19 -19
  33. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +10 -10
  34. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +105 -105
  35. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +11 -11
  36. package/.docs/organized/changelogs/%40mastra%2Frag.md +13 -13
  37. package/.docs/organized/changelogs/%40mastra%2Freact.md +40 -0
  38. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +21 -0
  39. package/.docs/organized/changelogs/%40mastra%2Fserver.md +41 -41
  40. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +10 -10
  41. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +10 -10
  42. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +10 -10
  43. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +10 -10
  44. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +11 -11
  45. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +11 -11
  46. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +11 -11
  47. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +10 -10
  48. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +9 -0
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +13 -13
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +10 -10
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +10 -10
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +10 -10
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +11 -11
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +11 -11
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +10 -10
  56. package/.docs/organized/changelogs/create-mastra.md +79 -79
  57. package/.docs/organized/changelogs/mastra.md +118 -118
  58. package/.docs/organized/code-examples/agent.md +2 -1
  59. package/.docs/organized/code-examples/heads-up-game.md +5 -5
  60. package/.docs/raw/agents/guardrails.mdx +335 -0
  61. package/.docs/raw/{networks-vnext/complex-task-execution.mdx → agents/networks.mdx} +29 -9
  62. package/.docs/raw/agents/overview.mdx +107 -63
  63. package/.docs/raw/agents/runtime-context.mdx +11 -16
  64. package/.docs/raw/agents/using-tools-and-mcp.mdx +1 -1
  65. package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +9 -2
  66. package/.docs/raw/getting-started/mcp-docs-server.mdx +84 -179
  67. package/.docs/raw/getting-started/model-providers.mdx +5 -3
  68. package/.docs/raw/reference/agents/network.mdx +1 -1
  69. package/.docs/raw/reference/cli/create-mastra.mdx +61 -5
  70. package/.docs/raw/reference/cli/mastra.mdx +252 -0
  71. package/.docs/raw/reference/client-js/agents.mdx +1 -10
  72. package/.docs/raw/reference/processors/batch-parts-processor.mdx +111 -0
  73. package/.docs/raw/reference/processors/language-detector.mdx +154 -0
  74. package/.docs/raw/reference/processors/moderation-processor.mdx +145 -0
  75. package/.docs/raw/reference/processors/pii-detector.mdx +153 -0
  76. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +130 -0
  77. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +145 -0
  78. package/.docs/raw/reference/processors/token-limiter-processor.mdx +136 -0
  79. package/.docs/raw/reference/processors/unicode-normalizer.mdx +114 -0
  80. package/.docs/raw/reference/streaming/ChunkType.mdx +2 -6
  81. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -5
  82. package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +1 -1
  83. package/.docs/raw/reference/streaming/workflows/stream.mdx +1 -1
  84. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +1 -1
  85. package/.docs/raw/reference/workflows/run-methods/resume.mdx +17 -1
  86. package/.docs/raw/reference/workflows/run-methods/start.mdx +17 -1
  87. package/.docs/raw/reference/workflows/step.mdx +11 -0
  88. package/.docs/raw/reference/workflows/workflow.mdx +7 -1
  89. package/.docs/raw/server-db/local-dev-playground.mdx +1 -1
  90. package/.docs/raw/workflows/overview.mdx +22 -5
  91. package/CHANGELOG.md +24 -0
  92. package/package.json +5 -5
  93. package/.docs/raw/agents/input-processors.mdx +0 -284
  94. package/.docs/raw/agents/output-processors.mdx +0 -328
  95. package/.docs/raw/networks-vnext/overview.mdx +0 -85
  96. package/.docs/raw/networks-vnext/single-task-execution.mdx +0 -135
  97. package/.docs/raw/reference/cli/build.mdx +0 -115
  98. package/.docs/raw/reference/cli/dev.mdx +0 -249
  99. package/.docs/raw/reference/cli/init.mdx +0 -97
  100. package/.docs/raw/reference/cli/lint.mdx +0 -56
  101. package/.docs/raw/reference/cli/mcp-docs-server.mdx +0 -82
  102. package/.docs/raw/reference/cli/scorers.mdx +0 -160
  103. package/.docs/raw/reference/cli/start.mdx +0 -50
@@ -0,0 +1,153 @@
1
+ ---
2
+ title: "Reference: PII Detector | Processors | Mastra Docs"
3
+ description: "Documentation for the PIIDetector in Mastra, which detects and redacts personally identifiable information (PII) from AI responses."
4
+ ---
5
+
6
+ # PIIDetector
7
+
8
+ The `PIIDetector` is a **hybrid processor** that can be used for both input and output processing to detect and redact personally identifiable information (PII) for privacy compliance. This processor helps maintain privacy by identifying various types of PII and providing flexible strategies for handling them, including multiple redaction methods to ensure compliance with GDPR, CCPA, HIPAA, and other privacy regulations.
9
+
10
+ ## Usage example
11
+
12
+ ```typescript copy
13
+ import { openai } from "@ai-sdk/openai";
14
+ import { PIIDetector } from "@mastra/core/processors";
15
+
16
+ const processor = new PIIDetector({
17
+ model: openai("gpt-4.1-nano"),
18
+ threshold: 0.6,
19
+ strategy: "redact",
20
+ detectionTypes: ["email", "phone", "credit-card", "ssn"]
21
+ });
22
+ ```
23
+
24
+ ## Constructor parameters
25
+
26
+ <PropertiesTable
27
+ content={[
28
+ {
29
+ name: "options",
30
+ type: "Options",
31
+ description: "Configuration options for PII detection and redaction",
32
+ isOptional: false,
33
+ },
34
+ ]}
35
+ />
36
+
37
+ ### Options
38
+
39
+ <PropertiesTable
40
+ content={[
41
+ {
42
+ name: "model",
43
+ type: "MastraLanguageModel",
44
+ description: "Model configuration for the detection agent",
45
+ isOptional: false,
46
+ },
47
+ {
48
+ name: "detectionTypes",
49
+ type: "string[]",
50
+ description: "PII types to detect. If not specified, uses default types",
51
+ isOptional: true,
52
+ default: "['email', 'phone', 'credit-card', 'ssn', 'api-key', 'ip-address', 'name', 'address', 'date-of-birth', 'url', 'uuid', 'crypto-wallet', 'iban']",
53
+ },
54
+ {
55
+ name: "threshold",
56
+ type: "number",
57
+ description: "Confidence threshold for flagging (0-1). PII is flagged if any category score exceeds this threshold",
58
+ isOptional: true,
59
+ default: "0.6",
60
+ },
61
+ {
62
+ name: "strategy",
63
+ type: "'block' | 'warn' | 'filter' | 'redact'",
64
+ description: "Strategy when PII is detected: 'block' rejects with error, 'warn' logs warning but allows through, 'filter' removes flagged messages, 'redact' replaces PII with redacted versions",
65
+ isOptional: true,
66
+ default: "'redact'",
67
+ },
68
+ {
69
+ name: "redactionMethod",
70
+ type: "'mask' | 'hash' | 'remove' | 'placeholder'",
71
+ description: "Redaction method for PII: 'mask' replaces with asterisks, 'hash' replaces with SHA256 hash, 'remove' removes entirely, 'placeholder' replaces with type placeholder",
72
+ isOptional: true,
73
+ default: "'mask'",
74
+ },
75
+ {
76
+ name: "instructions",
77
+ type: "string",
78
+ description: "Custom detection instructions for the agent. If not provided, uses default instructions based on detection types",
79
+ isOptional: true,
80
+ default: "undefined",
81
+ },
82
+ {
83
+ name: "includeDetections",
84
+ type: "boolean",
85
+ description: "Whether to include detection details in logs. Useful for compliance auditing and debugging",
86
+ isOptional: true,
87
+ default: "false",
88
+ },
89
+ {
90
+ name: "preserveFormat",
91
+ type: "boolean",
92
+ description: "Whether to preserve PII format during redaction. When true, maintains structure like ***-**-1234 for phone numbers",
93
+ isOptional: true,
94
+ default: "true",
95
+ },
96
+ ]}
97
+ />
98
+
99
+ ## Returns
100
+
101
+ <PropertiesTable
102
+ content={[
103
+ {
104
+ name: "name",
105
+ type: "string",
106
+ description: "Processor name set to 'pii-detector'",
107
+ isOptional: false,
108
+ },
109
+ {
110
+ name: "processInput",
111
+ type: "(args: { messages: MastraMessageV2[]; abort: (reason?: string) => never; tracingContext?: TracingContext }) => Promise<MastraMessageV2[]>",
112
+ description: "Processes input messages to detect and redact PII before sending to LLM",
113
+ isOptional: false,
114
+ },
115
+ {
116
+ name: "processOutputStream",
117
+ type: "(args: { part: ChunkType; streamParts: ChunkType[]; state: Record<string, any>; abort: (reason?: string) => never; tracingContext?: TracingContext }) => Promise<ChunkType | null | undefined>",
118
+ description: "Processes streaming output parts to detect and redact PII during streaming",
119
+ isOptional: false,
120
+ },
121
+ ]}
122
+ />
123
+
124
+ ## Extended usage example
125
+
126
+ ```typescript filename="src/mastra/agents/private-agent.ts" showLineNumbers copy
127
+ import { openai } from "@ai-sdk/openai";
128
+ import { Agent } from "@mastra/core/agent";
129
+ import { PIIDetector } from "@mastra/core/processors";
130
+
131
+ export const agent = new Agent({
132
+ name: "private-agent",
133
+ instructions: "You are a helpful assistant",
134
+ model: openai("gpt-4o-mini"),
135
+ inputProcessors: [
136
+ new PIIDetector({
137
+ model: openai("gpt-4.1-nano"),
138
+ detectionTypes: ["email", "phone", "credit-card", "ssn"],
139
+ threshold: 0.6,
140
+ strategy: "redact",
141
+ redactionMethod: "mask",
142
+ instructions: "Detect and redact personally identifiable information while preserving message intent",
143
+ includeDetections: true,
144
+ preserveFormat: true
145
+ })
146
+ ]
147
+ });
148
+ ```
149
+
150
+ ## Related
151
+
152
+ - [Input Processors](/docs/agents/input-processors)
153
+ - [Output Processors](/docs/agents/output-processors)
@@ -0,0 +1,130 @@
1
+ ---
2
+ title: "Reference: Prompt Injection Detector | Processors | Mastra Docs"
3
+ description: "Documentation for the PromptInjectionDetector in Mastra, which detects prompt injection attempts in user input."
4
+ ---
5
+
6
+ # PromptInjectionDetector
7
+
8
+ The `PromptInjectionDetector` is an **input processor** that detects and prevents prompt injection attacks, jailbreaks, and system manipulation attempts before messages are sent to the language model. This processor helps maintain security by identifying various types of injection attempts and providing flexible strategies for handling them, including content rewriting to neutralize attacks while preserving legitimate user intent.
9
+
10
+ ## Usage example
11
+
12
+ ```typescript copy
13
+ import { openai } from "@ai-sdk/openai";
14
+ import { PromptInjectionDetector } from "@mastra/core/processors";
15
+
16
+ const processor = new PromptInjectionDetector({
17
+ model: openai("gpt-4.1-nano"),
18
+ threshold: 0.8,
19
+ strategy: "rewrite",
20
+ detectionTypes: ["injection", "jailbreak", "system-override"]
21
+ });
22
+ ```
23
+
24
+ ## Constructor parameters
25
+
26
+ <PropertiesTable
27
+ content={[
28
+ {
29
+ name: "options",
30
+ type: "Options",
31
+ description: "Configuration options for prompt injection detection",
32
+ isOptional: false,
33
+ },
34
+ ]}
35
+ />
36
+
37
+ ### Options
38
+
39
+ <PropertiesTable
40
+ content={[
41
+ {
42
+ name: "model",
43
+ type: "MastraLanguageModel",
44
+ description: "Model configuration for the detection agent",
45
+ isOptional: false,
46
+ },
47
+ {
48
+ name: "detectionTypes",
49
+ type: "string[]",
50
+ description: "Detection types to check for. If not specified, uses default categories",
51
+ isOptional: true,
52
+ default: "['injection', 'jailbreak', 'tool-exfiltration', 'data-exfiltration', 'system-override', 'role-manipulation']",
53
+ },
54
+ {
55
+ name: "threshold",
56
+ type: "number",
57
+ description: "Confidence threshold for flagging (0-1). Higher threshold = less sensitive to avoid false positives",
58
+ isOptional: true,
59
+ default: "0.7",
60
+ },
61
+ {
62
+ name: "strategy",
63
+ type: "'block' | 'warn' | 'filter' | 'rewrite'",
64
+ description: "Strategy when injection is detected: 'block' rejects with error, 'warn' logs warning but allows through, 'filter' removes flagged messages, 'rewrite' attempts to neutralize the injection",
65
+ isOptional: true,
66
+ default: "'block'",
67
+ },
68
+ {
69
+ name: "instructions",
70
+ type: "string",
71
+ description: "Custom detection instructions for the agent. If not provided, uses default instructions based on detection types",
72
+ isOptional: true,
73
+ default: "undefined",
74
+ },
75
+ {
76
+ name: "includeScores",
77
+ type: "boolean",
78
+ description: "Whether to include confidence scores in logs. Useful for tuning thresholds and debugging",
79
+ isOptional: true,
80
+ default: "false",
81
+ },
82
+ ]}
83
+ />
84
+
85
+ ## Returns
86
+
87
+ <PropertiesTable
88
+ content={[
89
+ {
90
+ name: "name",
91
+ type: "string",
92
+ description: "Processor name set to 'prompt-injection-detector'",
93
+ isOptional: false,
94
+ },
95
+ {
96
+ name: "processInput",
97
+ type: "(args: { messages: MastraMessageV2[]; abort: (reason?: string) => never; tracingContext?: TracingContext }) => Promise<MastraMessageV2[]>",
98
+ description: "Processes input messages to detect prompt injection attempts before sending to LLM",
99
+ isOptional: false,
100
+ },
101
+ ]}
102
+ />
103
+
104
+ ## Extended usage example
105
+
106
+ ```typescript filename="src/mastra/agents/secure-agent.ts" showLineNumbers copy
107
+ import { openai } from "@ai-sdk/openai";
108
+ import { Agent } from "@mastra/core/agent";
109
+ import { PromptInjectionDetector } from "@mastra/core/processors";
110
+
111
+ export const agent = new Agent({
112
+ name: "secure-agent",
113
+ instructions: "You are a helpful assistant",
114
+ model: openai("gpt-4o-mini"),
115
+ inputProcessors: [
116
+ new PromptInjectionDetector({
117
+ model: openai("gpt-4.1-nano"),
118
+ detectionTypes: ['injection', 'jailbreak', 'system-override'],
119
+ threshold: 0.8,
120
+ strategy: 'rewrite',
121
+ instructions: 'Detect and neutralize prompt injection attempts while preserving legitimate user intent',
122
+ includeScores: true
123
+ })
124
+ ]
125
+ });
126
+ ```
127
+
128
+ ## Related
129
+
130
+ - [Input Processors](/docs/agents/input-processors)
@@ -0,0 +1,145 @@
1
+ ---
2
+ title: "Reference: System Prompt Scrubber | Processors | Mastra Docs"
3
+ description: "Documentation for the SystemPromptScrubber in Mastra, which detects and redacts system prompts from AI responses."
4
+ ---
5
+
6
+ # SystemPromptScrubber
7
+
8
+ The `SystemPromptScrubber` is an **output processor** that detects and handles system prompts, instructions, and other revealing information that could introduce security vulnerabilities. This processor helps maintain security by identifying various types of system prompts and providing flexible strategies for handling them, including multiple redaction methods to ensure sensitive information is properly sanitized.
9
+
10
+ ## Usage example
11
+
12
+ ```typescript copy
13
+ import { openai } from "@ai-sdk/openai";
14
+ import { SystemPromptScrubber } from "@mastra/core/processors";
15
+
16
+ const processor = new SystemPromptScrubber({
17
+ model: openai("gpt-4.1-nano"),
18
+ strategy: "redact",
19
+ redactionMethod: "mask",
20
+ includeDetections: true
21
+ });
22
+ ```
23
+
24
+ ## Constructor parameters
25
+
26
+ <PropertiesTable
27
+ content={[
28
+ {
29
+ name: "options",
30
+ type: "Options",
31
+ description: "Configuration options for system prompt detection and handling",
32
+ isOptional: false,
33
+ },
34
+ ]}
35
+ />
36
+
37
+ ### Options
38
+
39
+ <PropertiesTable
40
+ content={[
41
+ {
42
+ name: "model",
43
+ type: "MastraLanguageModel",
44
+ description: "Model configuration for the detection agent",
45
+ isOptional: false,
46
+ },
47
+ {
48
+ name: "strategy",
49
+ type: "'block' | 'warn' | 'filter' | 'redact'",
50
+ description: "Strategy when system prompts are detected: 'block' rejects with error, 'warn' logs warning but allows through, 'filter' removes flagged messages, 'redact' replaces with redacted versions",
51
+ isOptional: true,
52
+ default: "'redact'",
53
+ },
54
+ {
55
+ name: "customPatterns",
56
+ type: "string[]",
57
+ description: "Custom patterns to detect system prompts (regex strings)",
58
+ isOptional: true,
59
+ default: "[]",
60
+ },
61
+ {
62
+ name: "includeDetections",
63
+ type: "boolean",
64
+ description: "Whether to include detection details in warnings. Useful for debugging and monitoring",
65
+ isOptional: true,
66
+ default: "false",
67
+ },
68
+ {
69
+ name: "instructions",
70
+ type: "string",
71
+ description: "Custom instructions for the detection agent. If not provided, uses default instructions",
72
+ isOptional: true,
73
+ default: "undefined",
74
+ },
75
+ {
76
+ name: "redactionMethod",
77
+ type: "'mask' | 'placeholder' | 'remove'",
78
+ description: "Redaction method for system prompts: 'mask' replaces with asterisks, 'placeholder' replaces with placeholder text, 'remove' removes entirely",
79
+ isOptional: true,
80
+ default: "'mask'",
81
+ },
82
+ {
83
+ name: "placeholderText",
84
+ type: "string",
85
+ description: "Custom placeholder text for redaction when redactionMethod is 'placeholder'",
86
+ isOptional: true,
87
+ default: "'[SYSTEM_PROMPT]'",
88
+ },
89
+ ]}
90
+ />
91
+
92
+ ## Returns
93
+
94
+ <PropertiesTable
95
+ content={[
96
+ {
97
+ name: "name",
98
+ type: "string",
99
+ description: "Processor name set to 'system-prompt-scrubber'",
100
+ isOptional: false,
101
+ },
102
+ {
103
+ name: "processOutputStream",
104
+ type: "(args: { part: ChunkType; streamParts: ChunkType[]; state: Record<string, any>; abort: (reason?: string) => never; tracingContext?: TracingContext }) => Promise<ChunkType | null>",
105
+ description: "Processes streaming output parts to detect and handle system prompts during streaming",
106
+ isOptional: false,
107
+ },
108
+ {
109
+ name: "processOutputResult",
110
+ type: "(args: { messages: MastraMessageV2[]; abort: (reason?: string) => never }) => Promise<MastraMessageV2[]>",
111
+ description: "Processes final output results to detect and handle system prompts in non-streaming scenarios",
112
+ isOptional: false,
113
+ },
114
+ ]}
115
+ />
116
+
117
+ ## Extended usage example
118
+
119
+ ```typescript filename="src/mastra/agents/scrubbed-agent.ts" showLineNumbers copy
120
+ import { openai } from "@ai-sdk/openai";
121
+ import { Agent } from "@mastra/core/agent";
122
+ import { SystemPromptScrubber } from "@mastra/core/processors";
123
+
124
+ export const agent = new Agent({
125
+ name: "scrubbed-agent",
126
+ instructions: "You are a helpful assistant",
127
+ model: openai("gpt-4o-mini"),
128
+ outputProcessors: [
129
+ new SystemPromptScrubber({
130
+ model: openai("gpt-4.1-nano"),
131
+ strategy: "redact",
132
+ customPatterns: ["system prompt", "internal instructions"],
133
+ includeDetections: true,
134
+ instructions: "Detect and redact system prompts, internal instructions, and security-sensitive content",
135
+ redactionMethod: "placeholder",
136
+ placeholderText: "[REDACTED]"
137
+ })
138
+ ]
139
+ });
140
+ ```
141
+
142
+ ## Related
143
+
144
+ - [Input Processors](/docs/agents/input-processors)
145
+ - [Output Processors](/docs/agents/output-processors)
@@ -0,0 +1,136 @@
1
+ ---
2
+ title: "Reference: Token Limiter Processor | Processors | Mastra Docs"
3
+ description: "Documentation for the TokenLimiterProcessor in Mastra, which limits the number of tokens in AI responses."
4
+ ---
5
+
6
+ # TokenLimiterProcessor
7
+
8
+ The `TokenLimiterProcessor` is an **output processor** that limits the number of tokens in AI responses. This processor helps control response length by implementing token counting with configurable strategies for handling exceeded limits, including truncation and abortion options for both streaming and non-streaming scenarios.
9
+
10
+ ## Usage example
11
+
12
+ ```typescript copy
13
+ import { TokenLimiterProcessor } from "@mastra/core/processors";
14
+
15
+ const processor = new TokenLimiterProcessor({
16
+ limit: 1000,
17
+ strategy: "truncate",
18
+ countMode: "cumulative"
19
+ });
20
+ ```
21
+
22
+ ## Constructor parameters
23
+
24
+ <PropertiesTable
25
+ content={[
26
+ {
27
+ name: "options",
28
+ type: "number | Options",
29
+ description: "Either a simple number for token limit, or configuration options object",
30
+ isOptional: false,
31
+ },
32
+ ]}
33
+ />
34
+
35
+ ### Options
36
+
37
+ <PropertiesTable
38
+ content={[
39
+ {
40
+ name: "limit",
41
+ type: "number",
42
+ description: "Maximum number of tokens to allow in the response",
43
+ isOptional: false,
44
+ },
45
+ {
46
+ name: "encoding",
47
+ type: "TiktokenBPE",
48
+ description: "Optional encoding to use. Defaults to o200k_base which is used by gpt-4o",
49
+ isOptional: true,
50
+ default: "o200k_base",
51
+ },
52
+ {
53
+ name: "strategy",
54
+ type: "'truncate' | 'abort'",
55
+ description: "Strategy when token limit is reached: 'truncate' stops emitting chunks, 'abort' calls abort() to stop the stream",
56
+ isOptional: true,
57
+ default: "'truncate'",
58
+ },
59
+ {
60
+ name: "countMode",
61
+ type: "'cumulative' | 'part'",
62
+ description: "Whether to count tokens from the beginning of the stream or just the current part: 'cumulative' counts all tokens from start, 'part' only counts tokens in current part",
63
+ isOptional: true,
64
+ default: "'cumulative'",
65
+ },
66
+ ]}
67
+ />
68
+
69
+ ## Returns
70
+
71
+ <PropertiesTable
72
+ content={[
73
+ {
74
+ name: "name",
75
+ type: "string",
76
+ description: "Processor name set to 'token-limiter'",
77
+ isOptional: false,
78
+ },
79
+ {
80
+ name: "processOutputStream",
81
+ type: "(args: { part: ChunkType; streamParts: ChunkType[]; state: Record<string, any>; abort: (reason?: string) => never }) => Promise<ChunkType | null>",
82
+ description: "Processes streaming output parts to limit token count during streaming",
83
+ isOptional: false,
84
+ },
85
+ {
86
+ name: "processOutputResult",
87
+ type: "(args: { messages: MastraMessageV2[]; abort: (reason?: string) => never }) => Promise<MastraMessageV2[]>",
88
+ description: "Processes final output results to limit token count in non-streaming scenarios",
89
+ isOptional: false,
90
+ },
91
+ {
92
+ name: "reset",
93
+ type: "() => void",
94
+ description: "Reset the token counter (useful for testing or reusing the processor)",
95
+ isOptional: false,
96
+ },
97
+ {
98
+ name: "getCurrentTokens",
99
+ type: "() => number",
100
+ description: "Get the current token count",
101
+ isOptional: false,
102
+ },
103
+ {
104
+ name: "getMaxTokens",
105
+ type: "() => number",
106
+ description: "Get the maximum token limit",
107
+ isOptional: false,
108
+ },
109
+ ]}
110
+ />
111
+
112
+ ## Extended usage example
113
+
114
+ ```typescript filename="src/mastra/agents/limited-agent.ts" showLineNumbers copy
115
+ import { openai } from "@ai-sdk/openai";
116
+ import { Agent } from "@mastra/core/agent";
117
+ import { TokenLimiterProcessor } from "@mastra/core/processors";
118
+
119
+ export const agent = new Agent({
120
+ name: "limited-agent",
121
+ instructions: "You are a helpful assistant",
122
+ model: openai("gpt-4o-mini"),
123
+ outputProcessors: [
124
+ new TokenLimiterProcessor({
125
+ limit: 1000,
126
+ strategy: "truncate",
127
+ countMode: "cumulative"
128
+ })
129
+ ]
130
+ });
131
+ ```
132
+
133
+ ## Related
134
+
135
+ - [Input Processors](/docs/agents/input-processors)
136
+ - [Output Processors](/docs/agents/output-processors)
@@ -0,0 +1,114 @@
1
+ ---
2
+ title: "Reference: Unicode Normalizer | Processors | Mastra Docs"
3
+ description: "Documentation for the UnicodeNormalizer in Mastra, which normalizes Unicode text to ensure consistent formatting and remove potentially problematic characters."
4
+ ---
5
+
6
+ # UnicodeNormalizer
7
+
8
+ The `UnicodeNormalizer` is an **input processor** that normalizes Unicode text to ensure consistent formatting and remove potentially problematic characters before messages are sent to the language model. This processor helps maintain text quality by handling various Unicode representations, removing control characters, and standardizing whitespace formatting.
9
+
10
+ ## Usage example
11
+
12
+ ```typescript copy
13
+ import { UnicodeNormalizer } from "@mastra/core/processors";
14
+
15
+ const processor = new UnicodeNormalizer({
16
+ stripControlChars: true,
17
+ collapseWhitespace: true
18
+ });
19
+ ```
20
+
21
+ ## Constructor parameters
22
+
23
+ <PropertiesTable
24
+ content={[
25
+ {
26
+ name: "options",
27
+ type: "Options",
28
+ description: "Configuration options for Unicode text normalization",
29
+ isOptional: true,
30
+ },
31
+ ]}
32
+ />
33
+
34
+ ### Options
35
+
36
+ <PropertiesTable
37
+ content={[
38
+ {
39
+ name: "stripControlChars",
40
+ type: "boolean",
41
+ description: "Whether to strip control characters. When enabled, removes control characters except \t, \n, \r",
42
+ isOptional: true,
43
+ default: "false",
44
+ },
45
+ {
46
+ name: "preserveEmojis",
47
+ type: "boolean",
48
+ description: "Whether to preserve emojis. When disabled, emojis may be removed if they contain control characters",
49
+ isOptional: true,
50
+ default: "true",
51
+ },
52
+ {
53
+ name: "collapseWhitespace",
54
+ type: "boolean",
55
+ description: "Whether to collapse consecutive whitespace. When enabled, multiple spaces/tabs/newlines are collapsed to single instances",
56
+ isOptional: true,
57
+ default: "true",
58
+ },
59
+ {
60
+ name: "trim",
61
+ type: "boolean",
62
+ description: "Whether to trim leading and trailing whitespace",
63
+ isOptional: true,
64
+ default: "true",
65
+ },
66
+ ]}
67
+ />
68
+
69
+ ## Returns
70
+
71
+ <PropertiesTable
72
+ content={[
73
+ {
74
+ name: "name",
75
+ type: "string",
76
+ description: "Processor name set to 'unicode-normalizer'",
77
+ isOptional: false,
78
+ },
79
+ {
80
+ name: "processInput",
81
+ type: "(args: { messages: MastraMessageV2[]; abort: (reason?: string) => never }) => MastraMessageV2[]",
82
+ description: "Processes input messages to normalize Unicode text",
83
+ isOptional: false,
84
+ },
85
+ ]}
86
+ />
87
+
88
+
89
+ ## Extended usage example
90
+
91
+ ```typescript filename="src/mastra/agents/normalized-agent.ts" showLineNumbers copy
92
+ import { openai } from "@ai-sdk/openai";
93
+ import { Agent } from "@mastra/core/agent";
94
+ import { UnicodeNormalizer } from "@mastra/core/processors";
95
+
96
+ export const agent = new Agent({
97
+ name: "normalized-agent",
98
+ instructions: "You are a helpful assistant",
99
+ model: openai("gpt-4o-mini"),
100
+ inputProcessors: [
101
+ new UnicodeNormalizer({
102
+ stripControlChars: true,
103
+ preserveEmojis: true,
104
+ collapseWhitespace: true,
105
+ trim: true
106
+ })
107
+ ]
108
+ });
109
+ ```
110
+
111
+
112
+ ## Related
113
+
114
+ - [Input Processors](../../docs/agents/input-processors.mdx)
@@ -1,16 +1,12 @@
1
1
  ---
2
- title: "Reference: ChunkType (Experimental) | Agents | Mastra Docs"
2
+ title: "Reference: ChunkType | Agents | Mastra Docs"
3
3
  description: "Documentation for the ChunkType type used in Mastra streaming responses, defining all possible chunk types and their payloads."
4
4
  ---
5
5
 
6
6
  import { Callout } from "nextra/components";
7
7
  import { PropertiesTable } from "@/components/properties-table";
8
8
 
9
- # ChunkType (Experimental)
10
-
11
- <Callout type="important">
12
- <strong className="block">Experimental API: </strong>This type is part of the experimental `.stream()` method. The API may change as we refine the feature based on feedback.
13
- </Callout>
9
+ # ChunkType
14
10
 
15
11
  The `ChunkType` type defines the mastra format of stream chunks that can be emitted during streaming responses from agents.
16
12