{"version":3,"sources":["/Users/ami/Documents/prometheus/x12i/ai-tools/dist/chunk-2KPWVOOT.cjs","../src/models/reasoningModel.ts"],"names":[],"mappings":"AAAA;ACGO,IAAM,+BAAA,EAAiC,CAAC,WAAA,EAAa,mBAAmB,CAAA;AAaxE,SAAS,0BAAA,CAA2B,KAAA,EAA4D;AACrG,EAAA,OAAO,KAAA,CAAM,mBAAA,CAAoB,IAAA;AAAA,IAAK,CAAC,CAAA,EAAA,GACpC,8BAAA,CAAqD,QAAA,CAAS,CAAC;AAAA,EAClE,CAAA;AACF;AAMO,SAAS,mBAAA,CACd,KAAA,EACS;AACT,EAAA,MAAM,IAAA,kBAAM,KAAA,mBAAM,iBAAA,6BAAmB,oBAAA;AACrC,EAAA,GAAA,CAAI,IAAA,IAAQ,KAAA,EAAA,GAAa,IAAA,IAAQ,KAAA,GAAQ,MAAA,CAAO,GAAG,CAAA,CAAE,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAClE,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,qBAAA,IAAyB,KAAA,CAAA;AAChD;AAKO,SAAS,wBAAA,CAAyB,KAAA,EAAqC;AAC5E,EAAA,OAAO,0BAAA,CAA2B,KAAK,EAAA,GAAK,mBAAA,CAAoB,KAAK,CAAA;AACvE;AAQO,SAAS,gBAAA,CAAiB,KAAA,EAAqC;AACpE,EAAA,GAAA,CAAI,KAAA,CAAM,kBAAA,IAAsB,KAAA,CAAA,EAAW;AACzC,IAAA,OAAO,KAAA,CAAM,iBAAA;AAAA,EACf;AACA,EAAA,OAAO,wBAAA,CAAyB,KAAK,CAAA;AACvC;AD/BA;AACA;AACE;AACA;AACA;AACA;AACA;AACF,sSAAC","file":"/Users/ami/Documents/prometheus/x12i/ai-tools/dist/chunk-2KPWVOOT.cjs","sourcesContent":[null,"import type { AiModelRecord } from \"./types.js\";\n\n/** OpenRouter `supported_parameters` values that indicate reasoning API support. */\nexport const REASONING_SUPPORTED_PARAMETERS = [\"reasoning\", \"include_reasoning\"] as const;\n\nexport type ReasoningModelInput = Pick<\n  AiModelRecord,\n  \"supportedParameters\" | \"pricing\" | \"openRouterPricing\"\n> & {\n  supportsReasoning?: boolean;\n};\n\n/**\n * Whether the model accepts OpenRouter's `reasoning` request parameter\n * (effort, max_tokens, exclude, enabled).\n */\nexport function supportsReasoningParameter(model: Pick<AiModelRecord, \"supportedParameters\">): boolean {\n  return model.supportedParameters.some((p) =>\n    (REASONING_SUPPORTED_PARAMETERS as readonly string[]).includes(p),\n  );\n}\n\n/**\n * Whether the model bills separate reasoning / thinking tokens\n * (`internal_reasoning` in OpenRouter pricing).\n */\nexport function hasReasoningPricing(\n  model: Pick<AiModelRecord, \"pricing\" | \"openRouterPricing\">,\n): boolean {\n  const raw = model.openRouterPricing?.internal_reasoning;\n  if (raw !== undefined && raw !== null && String(raw).trim() !== \"\") {\n    return true;\n  }\n  return model.pricing.reasoningUsdPerToken !== undefined;\n}\n\n/**\n * Compute `supportsReasoning` from catalog fields (used when normalizing catalog entries).\n */\nexport function computeSupportsReasoning(model: ReasoningModelInput): boolean {\n  return supportsReasoningParameter(model) || hasReasoningPricing(model);\n}\n\n/**\n * True when the model supports reasoning tokens (API param and/or separate reasoning pricing).\n *\n * Prefer `model.supportsReasoning` on {@link AiModelRecord} after catalog load;\n * this helper also works when only partial fields are available.\n */\nexport function isReasoningModel(model: ReasoningModelInput): boolean {\n  if (model.supportsReasoning !== undefined) {\n    return model.supportsReasoning;\n  }\n  return computeSupportsReasoning(model);\n}\n"]}