@mastra/core
Version:
305 lines (304 loc) • 10.1 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_agent = require("../agent-DCD4MApC.cjs");
let zod_v4 = require("zod/v4");
//#region src/processor-provider/types.ts
/**
* All processor phases.
*/
const ALL_PROCESSOR_PHASES = [
"processInput",
"processInputStep",
"processOutputStream",
"processOutputResult",
"processOutputStep",
"processToolResult"
];
//#endregion
//#region src/processor-provider/phase-filtered-processor.ts
/**
* Wraps an existing Processor and only exposes the selected phases.
* Unselected phase methods are left undefined, so the runner/step-creator skips them.
*/
var PhaseFilteredProcessor = class {
id;
name;
description;
processorIndex;
#inner;
#enabledPhases;
constructor(inner, enabledPhases) {
this.#inner = inner;
this.#enabledPhases = new Set(enabledPhases);
this.id = inner.id;
this.name = inner.name;
this.description = inner.description;
if (this.#enabledPhases.has("processInput") && inner.processInput) this.processInput = inner.processInput.bind(inner);
if (this.#enabledPhases.has("processInputStep") && inner.processInputStep) this.processInputStep = inner.processInputStep.bind(inner);
if (this.#enabledPhases.has("processOutputStream") && inner.processOutputStream) this.processOutputStream = inner.processOutputStream.bind(inner);
if (this.#enabledPhases.has("processOutputResult") && inner.processOutputResult) this.processOutputResult = inner.processOutputResult.bind(inner);
if (this.#enabledPhases.has("processOutputStep") && inner.processOutputStep) this.processOutputStep = inner.processOutputStep.bind(inner);
if (this.#enabledPhases.has("processToolResult") && inner.processToolResult) this.processToolResult = inner.processToolResult.bind(inner);
}
processInput;
processInputStep;
processOutputStream;
processOutputResult;
processOutputStep;
processToolResult;
__registerMastra(mastra) {
this.#inner.__registerMastra?.(mastra);
}
};
//#endregion
//#region src/processor-provider/providers/index.ts
const structuredOutputOptionsSchema = zod_v4.z.object({ jsonPromptInjection: zod_v4.z.union([zod_v4.z.boolean(), zod_v4.z.enum([
"system",
"inline",
"auto"
])]).optional() }).optional();
const providerOptionsSchema = zod_v4.z.record(zod_v4.z.string(), zod_v4.z.any()).optional();
const unicodeNormalizerProvider = {
info: {
id: "unicode-normalizer",
name: "Unicode Normalizer",
description: "Normalizes Unicode text by stripping control characters, collapsing whitespace, and trimming."
},
configSchema: zod_v4.z.object({
stripControlChars: zod_v4.z.boolean().optional(),
preserveEmojis: zod_v4.z.boolean().optional(),
collapseWhitespace: zod_v4.z.boolean().optional(),
trim: zod_v4.z.boolean().optional()
}),
availablePhases: ["processInput"],
createProcessor(config) {
return new require_agent.UnicodeNormalizer(config);
}
};
const tokenLimiterProvider = {
info: {
id: "token-limiter",
name: "Token Limiter",
description: "Limits the number of tokens in messages, supporting both input filtering and output truncation."
},
configSchema: zod_v4.z.object({
limit: zod_v4.z.number(),
strategy: zod_v4.z.enum(["truncate", "abort"]).optional(),
countMode: zod_v4.z.enum(["cumulative", "part"]).optional()
}),
availablePhases: [
"processInput",
"processOutputStream",
"processOutputResult"
],
createProcessor(config) {
return new require_agent.TokenLimiterProcessor(config);
}
};
const toolCallFilterProvider = {
info: {
id: "tool-call-filter",
name: "Tool Call Filter",
description: "Filters out tool calls and results from messages, optionally targeting specific tools."
},
configSchema: zod_v4.z.object({
exclude: zod_v4.z.array(zod_v4.z.string()).optional(),
filterAfterToolSteps: zod_v4.z.number().optional(),
preserveModelOutput: zod_v4.z.boolean().optional()
}),
availablePhases: ["processInput"],
createProcessor(config) {
return new require_agent.ToolCallFilter(config);
}
};
const batchPartsProvider = {
info: {
id: "batch-parts",
name: "Batch Parts",
description: "Batches multiple stream parts together to reduce stream overhead."
},
configSchema: zod_v4.z.object({
batchSize: zod_v4.z.number().optional(),
maxWaitTime: zod_v4.z.number().optional(),
emitOnNonText: zod_v4.z.boolean().optional()
}),
availablePhases: ["processOutputStream"],
createProcessor(config) {
return new require_agent.BatchPartsProcessor(config);
}
};
const moderationProvider = {
info: {
id: "moderation",
name: "Moderation",
description: "Evaluates content against configurable moderation categories for content safety."
},
configSchema: zod_v4.z.object({
model: zod_v4.z.string(),
categories: zod_v4.z.array(zod_v4.z.string()).optional(),
threshold: zod_v4.z.number().optional(),
strategy: zod_v4.z.enum([
"block",
"warn",
"filter"
]).optional(),
instructions: zod_v4.z.string().optional(),
includeScores: zod_v4.z.boolean().optional(),
chunkWindow: zod_v4.z.number().optional(),
structuredOutputOptions: structuredOutputOptionsSchema,
providerOptions: providerOptionsSchema
}),
availablePhases: [
"processInput",
"processOutputResult",
"processOutputStream"
],
createProcessor(config) {
return new require_agent.ModerationProcessor(config);
}
};
const promptInjectionDetectorProvider = {
info: {
id: "prompt-injection-detector",
name: "Prompt Injection Detector",
description: "Identifies and handles prompt injection attacks, jailbreaks, and data exfiltration attempts."
},
configSchema: zod_v4.z.object({
model: zod_v4.z.string(),
detectionTypes: zod_v4.z.array(zod_v4.z.string()).optional(),
threshold: zod_v4.z.number().optional(),
strategy: zod_v4.z.enum([
"block",
"warn",
"filter",
"rewrite"
]).optional(),
instructions: zod_v4.z.string().optional(),
includeScores: zod_v4.z.boolean().optional(),
structuredOutputOptions: structuredOutputOptionsSchema,
providerOptions: providerOptionsSchema
}),
availablePhases: ["processInput"],
createProcessor(config) {
return new require_agent.PromptInjectionDetector(config);
}
};
const piiDetectorProvider = {
info: {
id: "pii-detector",
name: "PII Detector",
description: "Identifies and redacts personally identifiable information for privacy compliance."
},
configSchema: zod_v4.z.object({
model: zod_v4.z.string(),
detectionTypes: zod_v4.z.array(zod_v4.z.string()).optional(),
threshold: zod_v4.z.number().optional(),
strategy: zod_v4.z.enum([
"block",
"warn",
"filter",
"redact"
]).optional(),
redactionMethod: zod_v4.z.enum([
"mask",
"hash",
"remove",
"placeholder"
]).optional(),
instructions: zod_v4.z.string().optional(),
includeDetections: zod_v4.z.boolean().optional(),
preserveFormat: zod_v4.z.boolean().optional(),
structuredOutputOptions: structuredOutputOptionsSchema,
providerOptions: providerOptionsSchema
}),
availablePhases: ["processInput"],
createProcessor(config) {
return new require_agent.PIIDetector(config);
}
};
const languageDetectorProvider = {
info: {
id: "language-detector",
name: "Language Detector",
description: "Detects the language of input text and optionally translates it to a target language."
},
configSchema: zod_v4.z.object({
model: zod_v4.z.string(),
targetLanguages: zod_v4.z.array(zod_v4.z.string()),
threshold: zod_v4.z.number().optional(),
strategy: zod_v4.z.enum([
"detect",
"translate",
"block",
"warn"
]).optional(),
preserveOriginal: zod_v4.z.boolean().optional(),
instructions: zod_v4.z.string().optional(),
minTextLength: zod_v4.z.number().optional(),
includeDetectionDetails: zod_v4.z.boolean().optional(),
translationQuality: zod_v4.z.enum([
"speed",
"quality",
"balanced"
]).optional(),
providerOptions: providerOptionsSchema
}),
availablePhases: ["processInput"],
createProcessor(config) {
return new require_agent.LanguageDetector(config);
}
};
const systemPromptScrubberProvider = {
info: {
id: "system-prompt-scrubber",
name: "System Prompt Scrubber",
description: "Detects and removes system prompt leakage from model outputs."
},
configSchema: zod_v4.z.object({
model: zod_v4.z.string(),
strategy: zod_v4.z.enum([
"block",
"warn",
"filter",
"redact"
]).optional(),
customPatterns: zod_v4.z.array(zod_v4.z.string()).optional(),
includeDetections: zod_v4.z.boolean().optional(),
instructions: zod_v4.z.string().optional(),
redactionMethod: zod_v4.z.enum([
"mask",
"placeholder",
"remove"
]).optional(),
placeholderText: zod_v4.z.string().optional(),
structuredOutputOptions: structuredOutputOptionsSchema
}),
availablePhases: ["processOutputStream", "processOutputResult"],
createProcessor(config) {
return new require_agent.SystemPromptScrubber(config);
}
};
const BUILT_IN_PROCESSOR_PROVIDERS = {
"unicode-normalizer": unicodeNormalizerProvider,
"token-limiter": tokenLimiterProvider,
"tool-call-filter": toolCallFilterProvider,
"batch-parts": batchPartsProvider,
moderation: moderationProvider,
"prompt-injection-detector": promptInjectionDetectorProvider,
"pii-detector": piiDetectorProvider,
"language-detector": languageDetectorProvider,
"system-prompt-scrubber": systemPromptScrubberProvider
};
//#endregion
exports.ALL_PROCESSOR_PHASES = ALL_PROCESSOR_PHASES;
exports.BUILT_IN_PROCESSOR_PROVIDERS = BUILT_IN_PROCESSOR_PROVIDERS;
exports.PhaseFilteredProcessor = PhaseFilteredProcessor;
exports.batchPartsProvider = batchPartsProvider;
exports.languageDetectorProvider = languageDetectorProvider;
exports.moderationProvider = moderationProvider;
exports.piiDetectorProvider = piiDetectorProvider;
exports.promptInjectionDetectorProvider = promptInjectionDetectorProvider;
exports.systemPromptScrubberProvider = systemPromptScrubberProvider;
exports.tokenLimiterProvider = tokenLimiterProvider;
exports.toolCallFilterProvider = toolCallFilterProvider;
exports.unicodeNormalizerProvider = unicodeNormalizerProvider;
//# sourceMappingURL=index.cjs.map