{"version":3,"sources":["../src/cli/commands/docs.ts"],"sourcesContent":["import chalk from \"chalk\";\n\nconst LANGWATCH_DOCS_BASE = \"https://langwatch.ai/docs\";\nconst LANGWATCH_DOCS_INDEX = \"https://langwatch.ai/docs/llms.txt\";\n\nconst SCENARIO_DOCS_BASE = \"https://langwatch.ai/scenario\";\nconst SCENARIO_DOCS_INDEX = \"https://langwatch.ai/scenario/llms.txt\";\n\ntype DocsKind = \"langwatch\" | \"scenario\";\n\nexport function normalizeDocsUrl(input: string | undefined, kind: DocsKind): string {\n  const indexUrl = kind === \"scenario\" ? SCENARIO_DOCS_INDEX : LANGWATCH_DOCS_INDEX;\n  const baseUrl = kind === \"scenario\" ? SCENARIO_DOCS_BASE : LANGWATCH_DOCS_BASE;\n\n  let url = (input ?? \"\").trim();\n  if (url === \"\") return indexUrl;\n\n  // Strip wrapping quotes (agents sometimes paste quoted urls)\n  url = url.replace(/^['\"]|['\"]$/g, \"\").trim();\n  if (url === \"\") return indexUrl;\n\n  // Append .md if not already an .md/.txt file (before any query/hash)\n  const match = /^([^?#]*)([?#].*)?$/.exec(url);\n  let pathPart = match?.[1] ?? url;\n  const suffix = match?.[2] ?? \"\";\n  if (!/\\.(md|txt)$/i.test(pathPart)) {\n    pathPart = pathPart.replace(/\\/$/, \"\") + \".md\";\n  }\n  url = `${pathPart}${suffix}`;\n\n  if (/^https?:\\/\\//i.test(url)) {\n    return url;\n  }\n\n  let path = url;\n  if (kind === \"langwatch\") {\n    // Strip a leading \"docs/\" to avoid duplicating the prefix\n    path = path.replace(/^\\/+/, \"\");\n    if (path.startsWith(\"docs/\")) {\n      path = path.slice(\"docs/\".length);\n    }\n  } else {\n    path = path.replace(/^\\/+/, \"\");\n    if (path.startsWith(\"scenario/\")) {\n      path = path.slice(\"scenario/\".length);\n    }\n  }\n\n  return `${baseUrl}/${path}`;\n}\n\nasync function fetchAndPrint(url: string): Promise<void> {\n  let response: Response;\n  try {\n    response = await fetch(url, {\n      headers: { Accept: \"text/markdown, text/plain;q=0.9, */*;q=0.5\" },\n    });\n  } catch (error) {\n    const message = error instanceof Error ? error.message : String(error);\n    console.error(chalk.red(`Error fetching ${url}: ${message}`));\n    process.exit(1);\n  }\n\n  if (!response.ok) {\n    console.error(\n      chalk.red(\n        `Error fetching ${url}: HTTP ${response.status} ${response.statusText}`,\n      ),\n    );\n    process.exit(1);\n  }\n\n  const body = await response.text();\n  process.stdout.write(body);\n  if (!body.endsWith(\"\\n\")) process.stdout.write(\"\\n\");\n}\n\nexport async function docsCommand(url?: string): Promise<void> {\n  const target = normalizeDocsUrl(url, \"langwatch\");\n  await fetchAndPrint(target);\n}\n\nexport async function scenarioDocsCommand(url?: string): Promise<void> {\n  const target = normalizeDocsUrl(url, \"scenario\");\n  await fetchAndPrint(target);\n}\n"],"mappings":";;;AAAA,OAAO,WAAW;AAElB,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB;AAE7B,IAAM,qBAAqB;AAC3B,IAAM,sBAAsB;AAIrB,SAAS,iBAAiB,OAA2B,MAAwB;AAVpF;AAWE,QAAM,WAAW,SAAS,aAAa,sBAAsB;AAC7D,QAAM,UAAU,SAAS,aAAa,qBAAqB;AAE3D,MAAI,OAAO,wBAAS,IAAI,KAAK;AAC7B,MAAI,QAAQ,GAAI,QAAO;AAGvB,QAAM,IAAI,QAAQ,gBAAgB,EAAE,EAAE,KAAK;AAC3C,MAAI,QAAQ,GAAI,QAAO;AAGvB,QAAM,QAAQ,sBAAsB,KAAK,GAAG;AAC5C,MAAI,YAAW,oCAAQ,OAAR,YAAc;AAC7B,QAAM,UAAS,oCAAQ,OAAR,YAAc;AAC7B,MAAI,CAAC,eAAe,KAAK,QAAQ,GAAG;AAClC,eAAW,SAAS,QAAQ,OAAO,EAAE,IAAI;AAAA,EAC3C;AACA,QAAM,GAAG,QAAQ,GAAG,MAAM;AAE1B,MAAI,gBAAgB,KAAK,GAAG,GAAG;AAC7B,WAAO;AAAA,EACT;AAEA,MAAI,OAAO;AACX,MAAI,SAAS,aAAa;AAExB,WAAO,KAAK,QAAQ,QAAQ,EAAE;AAC9B,QAAI,KAAK,WAAW,OAAO,GAAG;AAC5B,aAAO,KAAK,MAAM,QAAQ,MAAM;AAAA,IAClC;AAAA,EACF,OAAO;AACL,WAAO,KAAK,QAAQ,QAAQ,EAAE;AAC9B,QAAI,KAAK,WAAW,WAAW,GAAG;AAChC,aAAO,KAAK,MAAM,YAAY,MAAM;AAAA,IACtC;AAAA,EACF;AAEA,SAAO,GAAG,OAAO,IAAI,IAAI;AAC3B;AAEA,eAAe,cAAc,KAA4B;AACvD,MAAI;AACJ,MAAI;AACF,eAAW,MAAM,MAAM,KAAK;AAAA,MAC1B,SAAS,EAAE,QAAQ,6CAA6C;AAAA,IAClE,CAAC;AAAA,EACH,SAAS,OAAO;AACd,UAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,YAAQ,MAAM,MAAM,IAAI,kBAAkB,GAAG,KAAK,OAAO,EAAE,CAAC;AAC5D,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,MAAI,CAAC,SAAS,IAAI;AAChB,YAAQ;AAAA,MACN,MAAM;AAAA,QACJ,kBAAkB,GAAG,UAAU,SAAS,MAAM,IAAI,SAAS,UAAU;AAAA,MACvE;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,OAAO,MAAM,SAAS,KAAK;AACjC,UAAQ,OAAO,MAAM,IAAI;AACzB,MAAI,CAAC,KAAK,SAAS,IAAI,EAAG,SAAQ,OAAO,MAAM,IAAI;AACrD;AAEA,eAAsB,YAAY,KAA6B;AAC7D,QAAM,SAAS,iBAAiB,KAAK,WAAW;AAChD,QAAM,cAAc,MAAM;AAC5B;AAEA,eAAsB,oBAAoB,KAA6B;AACrE,QAAM,SAAS,iBAAiB,KAAK,UAAU;AAC/C,QAAM,cAAc,MAAM;AAC5B;","names":[]}