import type { AgenticConfig } from '$lib/types/agentic';
export const ATTACHMENT_SAVED_REGEX = /\[Attachment saved: ([^\]]+)\]/;
export const NEWLINE_SEPARATOR = '\n';
export const TURN_LIMIT_MESSAGE = '\n\n```\nTurn limit reached\n```\n';
export const LLM_ERROR_BLOCK_START = '\n\n```\nUpstream LLM error:\n';
export const LLM_ERROR_BLOCK_END = '\n```\n';
export const DEFAULT_AGENTIC_CONFIG: AgenticConfig = {
enabled: true,
maxTurns: 100,
maxToolPreviewLines: 25
} as const;
export const REASONING_TAGS = {
START: '',
END: ''
} as const;
/**
* @deprecated Legacy marker tags - only used for migration of old stored messages.
* New messages use structured fields (reasoningContent, toolCalls, toolCallId).
*/
export const LEGACY_AGENTIC_TAGS = {
TOOL_CALL_START: '<<>>',
TOOL_CALL_END: '<<>>',
TOOL_NAME_PREFIX: '<<>>',
TOOL_ARGS_END: '<<>>',
TAG_SUFFIX: '>>>'
} as const;
/**
* @deprecated Legacy reasoning tags - only used for migration of old stored messages.
* New messages use the dedicated reasoningContent field.
*/
export const LEGACY_REASONING_TAGS = {
START: '<<>>',
END: '<<>>'
} as const;
/**
* @deprecated Legacy regex patterns - only used for migration of old stored messages.
*/
export const LEGACY_AGENTIC_REGEX = {
COMPLETED_TOOL_CALL:
/<<>>\n<<>>\n<<>>([\s\S]*?)<<>>([\s\S]*?)<<>>/g,
REASONING_BLOCK: /<<>>[\s\S]*?<<>>/g,
REASONING_EXTRACT: /<<>>([\s\S]*?)<<>>/,
REASONING_OPEN: /<<>>[\s\S]*$/,
AGENTIC_TOOL_CALL_BLOCK: /\n*<<>>[\s\S]*?<<>>/g,
AGENTIC_TOOL_CALL_OPEN: /\n*<<>>[\s\S]*$/,
HAS_LEGACY_MARKERS: /<<<(?:AGENTIC_TOOL_CALL_START|reasoning_content_start)>>>/
} as const;