import type { AgenticConfig } from '$lib/types/agentic'; export const DEFAULT_AGENTIC_CONFIG: AgenticConfig = { enabled: true, maxTurns: 100, maxToolPreviewLines: 25 } as const; // Agentic tool call tag markers export const AGENTIC_TAGS = { TOOL_CALL_START: '<<>>', TOOL_CALL_END: '<<>>', TOOL_NAME_PREFIX: '<<>>', TOOL_ARGS_END: '<<>>', TAG_SUFFIX: '>>>' } as const; export const REASONING_TAGS = { START: '<<>>', END: '<<>>' } as const; // Regex patterns for parsing agentic content export const AGENTIC_REGEX = { // Matches completed tool calls (with END marker) COMPLETED_TOOL_CALL: /<<>>\n<<>>\n<<>>([\s\S]*?)<<>>([\s\S]*?)<<>>/g, // Matches pending tool call (has NAME and ARGS but no END) PENDING_TOOL_CALL: /<<>>\n<<>>\n<<>>([\s\S]*?)<<>>([\s\S]*)$/, // Matches partial tool call (has START and NAME, ARGS still streaming) PARTIAL_WITH_NAME: /<<>>\n<<>>\n<<>>([\s\S]*)$/, // Matches early tool call (just START marker) EARLY_MATCH: /<<>>([\s\S]*)$/, // Matches partial marker at end of content PARTIAL_MARKER: /<<<[A-Za-z_]*$/, // Matches tool name inside content TOOL_NAME_EXTRACT: /<<]+)>>>/ } as const;