()
| 344 | // operator-set value must fit the shared grammar and avoid reserved root |
| 345 | // segments (api, mcp, login, …) — a colliding slug would shadow real routes. |
| 346 | const resolveOrgSlug = (): string => { |
| 347 | const slug = process.env.EXECUTOR_ORG_SLUG; |
| 348 | if (!slug) return "default"; |
| 349 | if (!isValidOrgSlug(slug) && slug !== "default") { |
| 350 | // oxlint-disable-next-line executor/no-try-catch-or-throw, executor/no-error-constructor -- boundary: a colliding org slug would shadow app routes; refuse to boot |
| 351 | throw new Error( |
| 352 | `EXECUTOR_ORG_SLUG ${JSON.stringify(slug)} is not usable as a URL slug (2-48 chars of [a-z0-9-], not a reserved path segment like "api" or "login")`, |
| 353 | ); |
| 354 | } |
| 355 | return slug; |
| 356 | }; |
| 357 | |
| 358 | // EXECUTOR_TOOLS_SYNC_TTL_MS — how long a remote tool catalog (an MCP server's |
| 359 | // tool set, which changes server-side with no executor-visible signal) stays |
no test coverage detected