Spaces:
Configuration error
Configuration error
| function escapeRegExp(value: string) { | |
| return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); | |
| } | |
| export function extractModelDirective( | |
| body?: string, | |
| options?: { aliases?: string[] }, | |
| ): { | |
| cleaned: string; | |
| rawModel?: string; | |
| rawProfile?: string; | |
| hasDirective: boolean; | |
| } { | |
| if (!body) return { cleaned: "", hasDirective: false }; | |
| const modelMatch = body.match( | |
| /(?:^|\s)\/model(?=$|\s|:)\s*:?\s*([A-Za-z0-9_.:@-]+(?:\/[A-Za-z0-9_.:@-]+)*)?/i, | |
| ); | |
| const aliases = (options?.aliases ?? []).map((alias) => alias.trim()).filter(Boolean); | |
| const aliasMatch = | |
| modelMatch || aliases.length === 0 | |
| ? null | |
| : body.match( | |
| new RegExp( | |
| `(?:^|\\s)\\/(${aliases.map(escapeRegExp).join("|")})(?=$|\\s|:)(?:\\s*:\\s*)?`, | |
| "i", | |
| ), | |
| ); | |
| const match = modelMatch ?? aliasMatch; | |
| const raw = modelMatch ? modelMatch?.[1]?.trim() : aliasMatch?.[1]?.trim(); | |
| let rawModel = raw; | |
| let rawProfile: string | undefined; | |
| if (raw?.includes("@")) { | |
| const parts = raw.split("@"); | |
| rawModel = parts[0]?.trim(); | |
| rawProfile = parts.slice(1).join("@").trim() || undefined; | |
| } | |
| const cleaned = match ? body.replace(match[0], " ").replace(/\s+/g, " ").trim() : body.trim(); | |
| return { | |
| cleaned, | |
| rawModel, | |
| rawProfile, | |
| hasDirective: !!match, | |
| }; | |
| } | |