{"version":3,"file":"artifact-server-DR13HEei.mjs","names":["delay"],"sources":["../src/mcp/artifact-server.ts"],"sourcesContent":["import { serve } from '@hono/node-server'\nimport { setTimeout as delay } from 'node:timers/promises'\nimport { createApp } from '../server/app.js'\n\ntype ArtifactServer = ReturnType<typeof serve>\n\nconst servers = new Map<number, ArtifactServer>()\n\nasync function isHealthy(port: number): Promise<boolean> {\n  const controller = new AbortController()\n  const timeout = setTimeout(() => controller.abort(), 500)\n  try {\n    const response = await fetch(`http://127.0.0.1:${port}/health`, {\n      signal: controller.signal,\n    })\n    return response.ok\n  } catch {\n    return false\n  } finally {\n    clearTimeout(timeout)\n  }\n}\n\nasync function waitUntilHealthy(port: number): Promise<void> {\n  for (let attempt = 0; attempt < 20; attempt += 1) {\n    if (await isHealthy(port)) return\n    await delay(50)\n  }\n  throw new Error(`Graph report server did not become healthy on 127.0.0.1:${port}`)\n}\n\nexport async function ensureArtifactServer(port: number): Promise<void> {\n  if (servers.has(port)) return\n  if (await isHealthy(port)) return\n\n  const app = createApp()\n  const server = serve({\n    fetch: app.fetch,\n    hostname: '127.0.0.1',\n    port,\n  })\n  servers.set(port, server)\n  server.on('error', (err) => {\n    servers.delete(port)\n    process.stderr.write(`Chain Insights graph report server failed on 127.0.0.1:${port}: ${(err as Error).message}\\n`)\n  })\n\n  try {\n    await waitUntilHealthy(port)\n  } catch (err) {\n    servers.delete(port)\n    server.close()\n    throw err\n  }\n}\n\nexport function closeArtifactServers(): void {\n  for (const [port, server] of servers.entries()) {\n    server.close()\n    servers.delete(port)\n  }\n}\n"],"mappings":";;;;AAMA,MAAM,0BAAU,IAAI,IAA4B;AAEhD,eAAe,UAAU,MAAgC;CACvD,MAAM,aAAa,IAAI,gBAAgB;CACvC,MAAM,UAAU,iBAAiB,WAAW,MAAM,GAAG,GAAG;CACxD,IAAI;EAIF,QAAO,MAHgB,MAAM,oBAAoB,KAAK,UAAU,EAC9D,QAAQ,WAAW,OACrB,CAAC,EAAA,CACe;CAClB,QAAQ;EACN,OAAO;CACT,UAAU;EACR,aAAa,OAAO;CACtB;AACF;AAEA,eAAe,iBAAiB,MAA6B;CAC3D,KAAK,IAAI,UAAU,GAAG,UAAU,IAAI,WAAW,GAAG;EAChD,IAAI,MAAM,UAAU,IAAI,GAAG;EAC3B,MAAMA,aAAM,EAAE;CAChB;CACA,MAAM,IAAI,MAAM,2DAA2D,MAAM;AACnF;AAEA,eAAsB,qBAAqB,MAA6B;CACtE,IAAI,QAAQ,IAAI,IAAI,GAAG;CACvB,IAAI,MAAM,UAAU,IAAI,GAAG;CAG3B,MAAM,SAAS,MAAM;EACnB,OAFU,UAED,CAAC,CAAC;EACX,UAAU;EACV;CACF,CAAC;CACD,QAAQ,IAAI,MAAM,MAAM;CACxB,OAAO,GAAG,UAAU,QAAQ;EAC1B,QAAQ,OAAO,IAAI;EACnB,QAAQ,OAAO,MAAM,0DAA0D,KAAK,IAAK,IAAc,QAAQ,GAAG;CACpH,CAAC;CAED,IAAI;EACF,MAAM,iBAAiB,IAAI;CAC7B,SAAS,KAAK;EACZ,QAAQ,OAAO,IAAI;EACnB,OAAO,MAAM;EACb,MAAM;CACR;AACF"}