import { z } from 'zod';
export const contextPackInput = {
goal: z.string().describe('What the user is trying to accomplish'),
scope: z.string().optional().describe('Scope/namespace to filter memories'),
max_tokens: z.number().optional().describe('Max token budget for the packed context (default 4000)'),
};
export const memorySearchInput = {
query: z.string().describe('Natural language search query'),
scope: z.string().optional().describe('Scope/namespace to filter'),
top_k: z.number().optional().describe('Number of results (default 5)'),
min_score: z.number().optional().describe('Minimum similarity score 0-1 (default 0.3)'),
};
export const memoryUpsertInput = {
document_id: z.string().describe('Unique document identifier'),
content: z.string().describe('Text content to store'),
scope: z.string().optional().describe('Scope/namespace (default "default")'),
tags: z.array(z.string()).optional().describe('Tags for categorization'),
source: z.string().optional().describe('Source identifier'),
};
export const contextCompressInput = {
text: z.string().describe('Text to compress'),
format: z
.enum(['bullets', 'json', 'steps', 'summary'])
.optional()
.describe('Output format (default "bullets")'),
max_tokens: z.number().optional().describe('Target max tokens for output (default 500)'),
};
export const proxyCallInput = {
server: z.string().describe('Name of the sub-MCP server'),
tool: z.string().describe('Tool name to call on the sub-MCP'),
arguments: z.record(z.string(), z.unknown()).optional().describe('Arguments to pass to the tool'),
post_process: z
.enum(['auto', 'none', 'compress', 'summarize'])
.optional()
.describe('Post-processing mode (default "auto")'),
};