(text)
| 4039 | } |
| 4040 | |
| 4041 | function extractIMessageTemporaryCodexRoute(text) { |
| 4042 | const original = String(text || ""); |
| 4043 | const lines = original.split(/\r?\n/); |
| 4044 | const codex = {}; |
| 4045 | let start = 0; |
| 4046 | let end = lines.length - 1; |
| 4047 | let hasOverrides = false; |
| 4048 | |
| 4049 | while (start <= end && !lines[start].trim()) start += 1; |
| 4050 | while (end >= start && !lines[end].trim()) end -= 1; |
| 4051 | |
| 4052 | const leading = parseIMessageTemporaryDirectiveLine(lines[start]); |
| 4053 | if (leading.ok) { |
| 4054 | Object.assign(codex, leading.codex); |
| 4055 | hasOverrides = true; |
| 4056 | start += 1; |
| 4057 | while (start <= end && !lines[start].trim()) start += 1; |
| 4058 | } |
| 4059 | |
| 4060 | const trailing = parseIMessageTemporaryDirectiveLine(lines[end]); |
| 4061 | if (trailing.ok) { |
| 4062 | Object.assign(codex, trailing.codex); |
| 4063 | hasOverrides = true; |
| 4064 | end -= 1; |
| 4065 | while (end >= start && !lines[end].trim()) end -= 1; |
| 4066 | } |
| 4067 | |
| 4068 | const stripped = start <= end ? lines.slice(start, end + 1).join("\n").trim() : ""; |
| 4069 | return { |
| 4070 | hasOverrides, |
| 4071 | hasBody: Boolean(stripped), |
| 4072 | text: hasOverrides ? stripped : original, |
| 4073 | codex |
| 4074 | }; |
| 4075 | } |
| 4076 | |
| 4077 | function parseIMessageTemporaryDirectiveLine(line) { |
| 4078 | const tokens = String(line || "").trim().split(/\s+/).filter(Boolean); |
no test coverage detected