{"version":3,"sources":["../src/cli-doctor.ts","../src/cli.ts"],"names":[],"mappings":"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","file":"cli.cjs","sourcesContent":["/**\n * `banking doctor` — diagnoses the @ar-agents/banking environment.\n *\n * 4 tools are pure algorithm and always work (`validate_cbu`,\n * `lookup_bank_by_code`, `list_banks`, `list_psps`). 1 tool requires the\n * BCRA Central de Deudores adapter (`lookup_credit_situation`). The 6 BCRA\n * Principales Variables tools (`get_usd_oficial`, `get_cer`, `get_uva`,\n * `get_reservas_bcra`, `list_bcra_variables`, `get_bcra_variable`) hit a\n * free public BCRA endpoint, so we probe it.\n */\n\nconst C = {\n  reset: \"\\x1b[0m\",\n  dim: \"\\x1b[2m\",\n  red: \"\\x1b[31m\",\n  green: \"\\x1b[32m\",\n  yellow: \"\\x1b[33m\",\n  cyan: \"\\x1b[36m\",\n  bold: \"\\x1b[1m\",\n};\nconst NO_COLOR = process.env.NO_COLOR != null || !process.stdout.isTTY;\nconst c = (col: keyof typeof C, s: string) =>\n  NO_COLOR ? s : `${C[col]}${s}${C.reset}`;\n\ntype CheckResult =\n  | { kind: \"ok\"; line: string; detail?: string }\n  | { kind: \"warn\"; line: string; detail?: string }\n  | { kind: \"fail\"; line: string; detail?: string };\n\nfunction fmt(r: CheckResult): string {\n  const icon =\n    r.kind === \"ok\" ? c(\"green\", \"✓\") : r.kind === \"warn\" ? c(\"yellow\", \"⚠\") : c(\"red\", \"✗\");\n  const detail = r.detail ? `\\n  ${c(\"dim\", \"→ \" + r.detail)}` : \"\";\n  return `${icon} ${r.line}${detail}`;\n}\n\nfunction checkNode(): CheckResult {\n  const major = Number(process.versions.node.split(\".\")[0]);\n  if (major >= 20) return { kind: \"ok\", line: `Node ${process.versions.node} (>= 20.0.0)` };\n  return {\n    kind: \"fail\",\n    line: `Node ${process.versions.node} too old`,\n    detail: \"@ar-agents/banking requires Node 20+.\",\n  };\n}\n\nasync function probeBcraVariables(): Promise<CheckResult> {\n  // BCRA's Principales Variables API is free, public, no auth. If it\n  // responds, the 6 BCRA tools work end-to-end.\n  try {\n    const res = await fetch(\n      \"https://api.bcra.gob.ar/estadisticas/v3.0/Monetarias\",\n      { signal: AbortSignal.timeout(5000) },\n    );\n    if (!res.ok) {\n      return {\n        kind: \"warn\",\n        line: `BCRA Principales Variables responded HTTP ${res.status}`,\n        detail: \"BCRA endpoints are public; transient 5xx is normal. Re-run.\",\n      };\n    }\n    const data = (await res.json()) as { results?: unknown[] };\n    const count = Array.isArray(data.results) ? data.results.length : 0;\n    return {\n      kind: \"ok\",\n      line: `BCRA Principales Variables reachable (${count} series available)`,\n    };\n  } catch (err) {\n    return {\n      kind: \"warn\",\n      line: \"Could not reach api.bcra.gob.ar\",\n      detail: err instanceof Error ? err.message : \"Unknown network error.\",\n    };\n  }\n}\n\nfunction checkBcraDeudoresAdapter(): CheckResult {\n  // The BCRA Central de Deudores lookup is the one tool that's adapter-required.\n  // Most users won't have it wired — the toolkit's built-in HTTP client is\n  // configured by env vars in @ar-agents/banking.\n  const url = process.env.BCRA_DEUDORES_URL?.trim();\n  if (!url) {\n    return {\n      kind: \"warn\",\n      line: \"BCRA_DEUDORES_URL not set\",\n      detail:\n        \"Required by lookup_credit_situation. The 4 algorithm-only tools and the 6 Principales Variables tools work without it.\",\n    };\n  }\n  if (!url.startsWith(\"https://\")) {\n    return {\n      kind: \"fail\",\n      line: \"BCRA_DEUDORES_URL must be HTTPS\",\n    };\n  }\n  return { kind: \"ok\", line: `BCRA_DEUDORES_URL set (${new URL(url).host})` };\n}\n\nasync function checkPeerDep(name: string, required: boolean): Promise<CheckResult> {\n  try {\n    await import(name);\n    return { kind: \"ok\", line: `${name} installed` };\n  } catch {\n    return {\n      kind: required ? \"fail\" : \"warn\",\n      line: `${name} not installed`,\n      detail: required ? `Required: pnpm add ${name}` : \"Optional.\",\n    };\n  }\n}\n\ntype Manifest = { tools: Array<{ name: string }> };\nasync function loadManifest(): Promise<Manifest | null> {\n  const fs = await import(\"node:fs/promises\");\n  for (const rel of [\"../tools.manifest.json\", \"../../tools.manifest.json\"]) {\n    try {\n      const url = new URL(rel, import.meta.url);\n      return JSON.parse(await fs.readFile(url, \"utf-8\")) as Manifest;\n    } catch {\n      // try next\n    }\n  }\n  return null;\n}\n\nexport async function runDoctor(): Promise<number> {\n  const lines: string[] = [];\n  lines.push(\"\");\n  lines.push(c(\"bold\", `${c(\"cyan\", \"@ar-agents/banking\")} doctor`));\n  lines.push(c(\"dim\", \"  diagnosing your environment\"));\n  lines.push(\"\");\n\n  lines.push(fmt(checkNode()));\n  lines.push(fmt(await probeBcraVariables()));\n  lines.push(fmt(checkBcraDeudoresAdapter()));\n  lines.push(fmt(await checkPeerDep(\"ai\", true)));\n  lines.push(fmt(await checkPeerDep(\"zod\", true)));\n  lines.push(\"\");\n\n  const manifest = await loadManifest();\n  if (manifest) {\n    lines.push(c(\"bold\", `Tools registered: ${manifest.tools.length}`));\n    const groups: Record<string, string[]> = {\n      \"Algorithm-only (always work, free)\": [\n        \"validate_cbu\",\n        \"lookup_bank_by_code\",\n        \"list_banks\",\n        \"list_psps\",\n      ],\n      \"BCRA public endpoint (free, no auth)\": [\n        \"get_usd_oficial\",\n        \"get_cer\",\n        \"get_uva\",\n        \"get_reservas_bcra\",\n        \"list_bcra_variables\",\n        \"get_bcra_variable\",\n      ],\n      \"Adapter-required\": [\"lookup_credit_situation\"],\n    };\n    for (const [group, names] of Object.entries(groups)) {\n      lines.push(`  ${c(\"dim\", group)}`);\n      for (const n of names) {\n        const present = manifest.tools.some((t) => t.name === n);\n        lines.push(`    ${present ? c(\"green\", \"✓\") : c(\"dim\", \"·\")} ${n}`);\n      }\n    }\n  }\n  lines.push(\"\");\n\n  process.stdout.write(lines.join(\"\\n\") + \"\\n\");\n  return lines.some((l) => l.includes(\"✗\")) ? 1 : 0;\n}\n","import { runDoctor } from \"./cli-doctor\";\n\nconst HELP = `\\\n@ar-agents/banking CLI\n\nCommands:\n  doctor               Diagnose env (Node, BCRA endpoints, peer deps, tool surface)\n  help                 Print this message\n  version              Print the installed package version\n\nEnvironment:\n  BCRA_DEUDORES_URL    Required for lookup_credit_situation. The 10 other tools\n                       (4 algorithm-only + 6 BCRA Principales Variables) work\n                       without it.\n\nDocs: https://github.com/ar-agents/ar-agents/tree/main/packages/banking\n`;\n\nasync function readVersion(): Promise<string> {\n  for (const rel of [\"../package.json\", \"../../package.json\"]) {\n    try {\n      const url = new URL(rel, import.meta.url);\n      const fs = await import(\"node:fs/promises\");\n      const pkg = JSON.parse(await fs.readFile(url, \"utf-8\")) as { version?: string };\n      if (pkg.version) return pkg.version;\n    } catch {\n      // try next\n    }\n  }\n  return \"unknown\";\n}\n\nexport async function runCli(argv: string[]): Promise<number> {\n  const [, , cmd] = argv;\n  if (!cmd || cmd === \"help\" || cmd === \"--help\" || cmd === \"-h\") {\n    process.stdout.write(HELP);\n    return 0;\n  }\n  if (cmd === \"version\" || cmd === \"--version\" || cmd === \"-v\") {\n    process.stdout.write(`@ar-agents/banking ${await readVersion()}\\n`);\n    return 0;\n  }\n  if (cmd === \"doctor\") return runDoctor();\n  process.stderr.write(`Unknown command: ${cmd}\\n\\nRun \\`banking help\\` for usage.\\n`);\n  return 2;\n}\n"]}