{
  "version": 3,
  "sources": ["../src/index.server.ts", "../src/server/sources.ts", "../src/server/createYakHandler.ts"],
  "sourcesContent": ["export * from \"./server/index.js\";\n", "import type { RouteInfo } from \"../types/routes.js\";\nimport type { ToolDefinition, ToolExecutor, ToolManifest } from \"../types/tools.js\";\n\nexport type RouteSource = {\n  id?: string;\n  getRoutes: () => Promise<RouteInfo[]>;\n};\n\ntype RouteSourceFn = () => Promise<RouteInfo[]>;\n\ntype RouteSourceInputItem = RouteSource | RouteSourceFn | RouteInfo[];\n\nexport type RouteSourceInput = RouteSourceInputItem | RouteSourceInputItem[];\n\nexport type ToolSource = {\n  id?: string;\n  getTools: () => Promise<ToolDefinition[]>;\n  executeTool?: ToolExecutor;\n};\n\ntype ToolSourceFn = () => Promise<ToolDefinition[] | ToolManifest>;\n\ntype ToolSourceInputItem =\n  | ToolSource\n  | ToolSourceFn\n  | ToolDefinition[]\n  | ToolManifest\n  | {\n      getTools: ToolSourceFn;\n      executeTool?: ToolExecutor;\n    };\n\nexport type ToolSourceInput = ToolSourceInputItem | ToolSourceInputItem[];\n\nfunction isRouteSource(value: unknown): value is RouteSource {\n  return Boolean(\n    value &&\n      typeof value === \"object\" &&\n      \"getRoutes\" in value &&\n      typeof (value as RouteSource).getRoutes === \"function\"\n  );\n}\n\nfunction isRouteInfoArray(value: unknown): value is RouteInfo[] {\n  return Array.isArray(value) && value.every((route) => route && typeof route.path === \"string\");\n}\n\nfunction normalizeRouteSourceItem(item: RouteSourceInputItem, index: number): RouteSource {\n  if (isRouteSource(item)) {\n    return {\n      id: item.id ?? `route-source-${index}`,\n      getRoutes: item.getRoutes,\n    };\n  }\n\n  if (typeof item === \"function\") {\n    return {\n      id: `route-fn-${index}`,\n      getRoutes: item,\n    };\n  }\n\n  if (isRouteInfoArray(item)) {\n    return {\n      id: `route-static-${index}`,\n      getRoutes: async () => item,\n    };\n  }\n\n  throw new Error(\"Unsupported route source input\");\n}\n\nexport function normalizeRouteSources(input: RouteSourceInput): RouteSource[] {\n  if (Array.isArray(input)) {\n    if (input.length === 0) {\n      return [];\n    }\n    if (isRouteInfoArray(input)) {\n      return [normalizeRouteSourceItem(input, 0)];\n    }\n    return (input as RouteSourceInputItem[]).map((item, index) =>\n      normalizeRouteSourceItem(item, index)\n    );\n  }\n\n  return [normalizeRouteSourceItem(input, 0)];\n}\n\nfunction isToolSource(value: unknown): value is ToolSource {\n  return Boolean(\n    value &&\n      typeof value === \"object\" &&\n      \"getTools\" in value &&\n      typeof (value as ToolSource).getTools === \"function\"\n  );\n}\n\nfunction isToolManifest(value: unknown): value is ToolManifest {\n  return Boolean(value && typeof value === \"object\" && \"tools\" in value);\n}\n\nfunction isToolDefinitionArray(value: unknown): value is ToolDefinition[] {\n  return Array.isArray(value) && value.every((tool) => tool && typeof tool.name === \"string\");\n}\n\nfunction toToolDefinitions(result: unknown): ToolDefinition[] {\n  if (isToolDefinitionArray(result)) {\n    return result;\n  }\n  if (isToolManifest(result)) {\n    return result.tools;\n  }\n  throw new Error(\"Tool source must resolve to ToolDefinition[] or ToolManifest\");\n}\n\nfunction normalizeToolSourceItem(item: ToolSourceInputItem, index: number): ToolSource {\n  if (isToolSource(item)) {\n    return {\n      id: item.id ?? `tool-source-${index}`,\n      getTools: async () => {\n        const result = await item.getTools();\n        return toToolDefinitions(result);\n      },\n      executeTool: item.executeTool,\n    };\n  }\n\n  if (typeof item === \"function\") {\n    return {\n      id: `tool-fn-${index}`,\n      getTools: async () => {\n        const result = await item();\n        return toToolDefinitions(result);\n      },\n    };\n  }\n\n  if (isToolDefinitionArray(item)) {\n    return {\n      id: `tool-static-${index}`,\n      getTools: async () => item,\n    };\n  }\n\n  if (isToolManifest(item)) {\n    return {\n      id: `tool-manifest-${index}`,\n      getTools: async () => item.tools,\n    };\n  }\n\n  if (\n    item &&\n    typeof item === \"object\" &&\n    \"getTools\" in item &&\n    typeof item.getTools === \"function\"\n  ) {\n    return {\n      id: (item as { id?: string }).id ?? `tool-wrapper-${index}`,\n      getTools: async () => {\n        const result = await item.getTools();\n        return toToolDefinitions(result);\n      },\n      executeTool: item.executeTool,\n    };\n  }\n\n  throw new Error(\"Unsupported tool source input\");\n}\n\nexport function normalizeToolSources(input?: ToolSourceInput): ToolSource[] {\n  if (!input) {\n    return [];\n  }\n  if (Array.isArray(input)) {\n    if (input.length === 0) {\n      return [];\n    }\n    if (isToolDefinitionArray(input)) {\n      return [normalizeToolSourceItem(input, 0)];\n    }\n    return (input as ToolSourceInputItem[]).map((item, index) =>\n      normalizeToolSourceItem(item, index)\n    );\n  }\n\n  return [normalizeToolSourceItem(input, 0)];\n}\n", "import type { ChatConfig } from \"../types/config.js\";\nimport type { RouteInfo, RouteManifest } from \"../types/routes.js\";\nimport type { ToolCallResult, ToolDefinition, ToolManifest } from \"../types/tools.js\";\nimport type { RouteSource, RouteSourceInput, ToolSource, ToolSourceInput } from \"./sources.js\";\nimport { normalizeRouteSources, normalizeToolSources } from \"./sources.js\";\n\nexport type YakHandlerConfig = {\n  routes: RouteSourceInput;\n  tools?: ToolSourceInput;\n};\n\nexport function createYakHandler(config: YakHandlerConfig) {\n  const routeSources = normalizeRouteSources(config.routes);\n  const toolSources = normalizeToolSources(config.tools);\n\n  const GET = async function handleConfig(_req: Request): Promise<Response> {\n    const chatConfig: ChatConfig = {\n      routes: await buildRouteManifest(routeSources),\n    };\n\n    if (toolSources.length > 0) {\n      const { manifest } = await buildToolRegistry(toolSources);\n      chatConfig.tools = manifest;\n    }\n\n    return jsonResponse(chatConfig, 200, {\n      \"Cache-Control\": \"no-store\",\n    });\n  };\n\n  const POST = async function handleToolCall(req: Request): Promise<Response> {\n    if (toolSources.length === 0) {\n      return errorResponse(\"Tool execution is not configured\", 501);\n    }\n\n    let payload: unknown;\n\n    try {\n      payload = await req.json();\n    } catch {\n      return errorResponse(\"Invalid JSON payload\", 400);\n    }\n\n    if (!isHostToolCallPayload(payload)) {\n      return errorResponse(\"Invalid tool call payload\", 400);\n    }\n\n    try {\n      const { lookup } = await buildToolRegistry(toolSources);\n      const owner = lookup.get(payload.name);\n\n      if (!owner) {\n        return createToolErrorResponse(`Tool '${payload.name}' is not registered`);\n      }\n\n      if (!owner.executeTool) {\n        return createToolErrorResponse(`Tool '${payload.name}' does not expose an executor`);\n      }\n\n      const result = await owner.executeTool(payload.name, payload.args, req);\n\n      const successResult: ToolCallResult = {\n        ok: true,\n        result,\n      };\n\n      return jsonResponse(successResult);\n    } catch (error) {\n      return createToolErrorResponse(extractErrorMessage(error));\n    }\n  };\n\n  return { GET, POST };\n}\n\nexport type YakConfigHandlerConfig = {\n  routes: RouteSourceInput;\n  tools?: ToolSourceInput;\n};\n\nexport function createYakConfigHandler(config: YakConfigHandlerConfig) {\n  const routeSources = normalizeRouteSources(config.routes);\n  const toolSources = normalizeToolSources(config.tools);\n\n  return async function handleConfig(_req: Request): Promise<Response> {\n    const chatConfig: ChatConfig = {\n      routes: await buildRouteManifest(routeSources),\n    };\n\n    if (toolSources.length > 0) {\n      const { manifest } = await buildToolRegistry(toolSources);\n      chatConfig.tools = manifest;\n    }\n\n    return jsonResponse(chatConfig, 200, {\n      \"Cache-Control\": \"no-store\",\n    });\n  };\n}\n\nexport type YakToolsHandlerConfig = {\n  tools: ToolSourceInput;\n};\n\nexport function createYakToolsHandler(config: YakToolsHandlerConfig) {\n  const toolSources = normalizeToolSources(config.tools);\n\n  if (toolSources.length === 0) {\n    throw new Error(\"createYakToolsHandler requires at least one tool source\");\n  }\n\n  return async function handleTools(req: Request): Promise<Response> {\n    let payload: unknown;\n\n    try {\n      payload = await req.json();\n    } catch {\n      return errorResponse(\"Invalid JSON payload\", 400);\n    }\n\n    if (!isHostToolCallPayload(payload)) {\n      return errorResponse(\"Invalid tool call payload\", 400);\n    }\n\n    try {\n      const { lookup } = await buildToolRegistry(toolSources);\n      const owner = lookup.get(payload.name);\n\n      if (!owner) {\n        return createToolErrorResponse(`Tool '${payload.name}' is not registered`);\n      }\n\n      if (!owner.executeTool) {\n        return createToolErrorResponse(`Tool '${payload.name}' does not expose an executor`);\n      }\n\n      const result = await owner.executeTool(payload.name, payload.args, req);\n      const successResult: ToolCallResult = {\n        ok: true,\n        result,\n      };\n\n      return jsonResponse(successResult);\n    } catch (error) {\n      return createToolErrorResponse(extractErrorMessage(error));\n    }\n  };\n}\n\nasync function buildRouteManifest(routeSources: RouteSource[]): Promise<RouteManifest> {\n  const entries = await Promise.all(\n    routeSources.map(async (source) => ({\n      id: source.id ?? \"routes\",\n      routes: await source.getRoutes(),\n    }))\n  );\n\n  const merged: RouteInfo[] = [];\n  const seen = new Set<string>();\n\n  for (const entry of entries) {\n    for (const route of entry.routes) {\n      const key = route.path;\n      if (!seen.has(key)) {\n        seen.add(key);\n        merged.push(route);\n      }\n    }\n  }\n\n  merged.sort((a, b) => a.path.localeCompare(b.path));\n\n  return {\n    routes: merged,\n    generated_at: new Date().toISOString(),\n    sources: entries.map((entry) => ({ id: entry.id, count: entry.routes.length })),\n  };\n}\n\ntype ToolRegistry = {\n  manifest: ToolManifest;\n  lookup: Map<string, ToolSource>;\n};\n\nasync function buildToolRegistry(toolSources: ToolSource[]): Promise<ToolRegistry> {\n  const entries = await Promise.all(\n    toolSources.map(async (source) => ({\n      id: source.id ?? \"tools\",\n      source,\n      tools: await source.getTools(),\n    }))\n  );\n\n  const manifestTools: ToolDefinition[] = [];\n  const lookup = new Map<string, ToolSource>();\n\n  for (const entry of entries) {\n    for (const tool of entry.tools) {\n      manifestTools.push(tool);\n      lookup.set(tool.name, entry.source);\n    }\n  }\n\n  return {\n    manifest: {\n      tools: manifestTools,\n      generated_at: new Date().toISOString(),\n      sources: entries.map((entry) => ({ id: entry.id, count: entry.tools.length })),\n    },\n    lookup,\n  };\n}\n\n/**\n * Payload received from the host (id is optional since YakClient handles correlation)\n */\ntype HostToolCallPayload = {\n  name: string;\n  args: unknown;\n};\n\nfunction isHostToolCallPayload(payload: unknown): payload is HostToolCallPayload {\n  return (\n    typeof payload === \"object\" &&\n    payload !== null &&\n    typeof (payload as HostToolCallPayload).name === \"string\" &&\n    \"args\" in payload\n  );\n}\n\nfunction extractErrorMessage(error: unknown): string {\n  if (error instanceof Error) {\n    return error.message;\n  }\n  if (typeof error === \"string\") {\n    return error;\n  }\n  return \"An unknown error occurred\";\n}\n\nfunction jsonResponse(body: unknown, status = 200, headers: Record<string, string> = {}): Response {\n  return new Response(JSON.stringify(body), {\n    status,\n    headers: {\n      \"Content-Type\": \"application/json\",\n      ...headers,\n    },\n  });\n}\n\nfunction errorResponse(message: string, status: number): Response {\n  return jsonResponse({ error: message }, status);\n}\n\nfunction createToolErrorResponse(error: string): Response {\n  const errorResult: ToolCallResult = {\n    ok: false,\n    error,\n  };\n\n  return jsonResponse(errorResult);\n}\n"],
  "mappings": "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",
  "names": []
}
