@corbat-tech/coco 2.3.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -3081,7 +3081,7 @@ declare class TaskError extends CocoError {
3081
3081
  /**
3082
3082
  * Supported provider types
3083
3083
  */
3084
- type ProviderType = "anthropic" | "openai" | "codex" | "gemini" | "kimi" | "kimi-code" | "lmstudio" | "ollama" | "groq" | "openrouter" | "mistral" | "deepseek" | "together" | "huggingface";
3084
+ type ProviderType = "anthropic" | "openai" | "codex" | "gemini" | "kimi" | "kimi-code" | "lmstudio" | "ollama" | "groq" | "openrouter" | "mistral" | "deepseek" | "together" | "huggingface" | "qwen";
3085
3085
  /**
3086
3086
  * Create a provider by type
3087
3087
  */
package/dist/index.js CHANGED
@@ -138,6 +138,8 @@ function getApiKey(provider) {
138
138
  return process.env["TOGETHER_API_KEY"];
139
139
  case "huggingface":
140
140
  return process.env["HF_TOKEN"] ?? process.env["HUGGINGFACE_API_KEY"];
141
+ case "qwen":
142
+ return process.env["DASHSCOPE_API_KEY"] ?? process.env["QWEN_API_KEY"];
141
143
  default:
142
144
  return void 0;
143
145
  }
@@ -170,6 +172,8 @@ function getBaseUrl(provider) {
170
172
  return process.env["TOGETHER_BASE_URL"] ?? "https://api.together.xyz/v1";
171
173
  case "huggingface":
172
174
  return process.env["HF_BASE_URL"] ?? "https://api-inference.huggingface.co/v1";
175
+ case "qwen":
176
+ return process.env["DASHSCOPE_BASE_URL"] ?? "https://dashscope-intl.aliyuncs.com/compatible-mode/v1";
173
177
  default:
174
178
  return void 0;
175
179
  }
@@ -204,6 +208,8 @@ function getDefaultModel(provider) {
204
208
  return process.env["TOGETHER_MODEL"] ?? "Qwen/Qwen2.5-Coder-32B-Instruct";
205
209
  case "huggingface":
206
210
  return process.env["HF_MODEL"] ?? "Qwen/Qwen2.5-Coder-32B-Instruct";
211
+ case "qwen":
212
+ return process.env["QWEN_MODEL"] ?? "qwen-coder-plus";
207
213
  default:
208
214
  return "gpt-5.3-codex";
209
215
  }
@@ -234,7 +240,8 @@ var init_env = __esm({
234
240
  "mistral",
235
241
  "deepseek",
236
242
  "together",
237
- "huggingface"
243
+ "huggingface",
244
+ "qwen"
238
245
  ];
239
246
  ({
240
247
  provider: getDefaultProvider(),
@@ -12037,10 +12044,12 @@ var OpenAIProvider = class {
12037
12044
  provider: this.id
12038
12045
  });
12039
12046
  }
12047
+ const defaultHeaders = this.id === "kimi-code" ? { "User-Agent": "claude-code" } : {};
12040
12048
  this.client = new OpenAI({
12041
12049
  apiKey,
12042
12050
  baseURL: config.baseUrl,
12043
- timeout: config.timeout ?? 12e4
12051
+ timeout: config.timeout ?? 12e4,
12052
+ defaultHeaders
12044
12053
  });
12045
12054
  }
12046
12055
  /**
@@ -13587,6 +13596,10 @@ async function createProvider(type, config = {}) {
13587
13596
  provider = new OpenAIProvider("huggingface", "HuggingFace Inference");
13588
13597
  mergedConfig.baseUrl = mergedConfig.baseUrl ?? "https://api-inference.huggingface.co/v1";
13589
13598
  break;
13599
+ case "qwen":
13600
+ provider = new OpenAIProvider("qwen", "Alibaba Qwen");
13601
+ mergedConfig.baseUrl = mergedConfig.baseUrl ?? "https://dashscope-intl.aliyuncs.com/compatible-mode/v1";
13602
+ break;
13590
13603
  default:
13591
13604
  throw new ProviderError(`Unknown provider type: ${type}`, {
13592
13605
  provider: type