{"version":3,"file":"claude-headers.mjs","sources":["webpack://@tarko/model-provider/./src/claude-headers.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Claude model detection and header utilities\n */\n\n/**\n * Check if a model is a Claude model\n */\nexport function isClaudeModel(model: string): boolean {\n  const claudePatterns = [\n    /^claude-/i,\n    /^anthropic\\//i,\n  ];\n  return claudePatterns.some((pattern) => pattern.test(model));\n}\n\n/**\n * Get Claude-specific beta features headers\n */\nexport function getClaudeHeaders(): Record<string, string> {\n  const betaFeatures = [\n    'fine-grained-tool-streaming-2025-05-14',\n    'token-efficient-tools-2025-02-19',\n  ];\n\n  return {\n    'anthropic-beta': betaFeatures.join(','),\n  };\n}\n\n/**\n * Automatically add Claude headers to model configuration if it's a Claude model\n */\nexport function addClaudeHeadersIfNeeded(\n  model: string,\n  existingHeaders?: Record<string, string>,\n): Record<string, string> {\n  if (!isClaudeModel(model)) {\n    return existingHeaders || {};\n  }\n\n  const claudeHeaders = getClaudeHeaders();\n  return {\n    ...existingHeaders,\n    ...claudeHeaders,\n  };\n}\n"],"names":["isClaudeModel","model","claudePatterns","pattern","getClaudeHeaders","betaFeatures","addClaudeHeadersIfNeeded","existingHeaders","claudeHeaders"],"mappings":";;;;AAYO,SAASA,cAAcC,KAAa;IACzC,MAAMC,iBAAiB;QACrB;QACA;KACD;IACD,OAAOA,eAAe,IAAI,CAAC,CAACC,UAAYA,QAAQ,IAAI,CAACF;AACvD;AAKO,SAASG;IACd,MAAMC,eAAe;QACnB;QACA;KACD;IAED,OAAO;QACL,kBAAkBA,aAAa,IAAI,CAAC;IACtC;AACF;AAKO,SAASC,yBACdL,KAAa,EACbM,eAAwC;IAExC,IAAI,CAACP,cAAcC,QACjB,OAAOM,mBAAmB,CAAC;IAG7B,MAAMC,gBAAgBJ;IACtB,OAAO;QACL,GAAGG,eAAe;QAClB,GAAGC,aAAa;IAClB;AACF"}