twinclaw 1.3.1 → 1.3.2

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.
@@ -315,9 +315,9 @@ export const MODEL_PROVIDERS = [
315
315
  { id: 'vllm', name: 'vLLM', baseUrl: 'http://localhost:8000/v1', defaultModel: 'meta-llama/Llama-3.1-70B-Instruct', supportsStreaming: true, supportsFunctionCalling: true, contextWindow: 128000 },
316
316
  { id: 'minimax', name: 'MiniMax', baseUrl: 'https://api.minimax.chat/v1', defaultModel: 'abab6.5s-chat', supportsStreaming: true, contextWindow: 245760 },
317
317
  { id: 'moonshot', name: 'Moonshot AI (Kimi K2.5)', baseUrl: 'https://api.moonshot.cn/v1', defaultModel: 'moonshot-v1-8k', supportsStreaming: true, contextWindow: 128000 },
318
- { id: 'google', name: 'Google', baseUrl: 'https://generativelanguage.googleapis.com/v1', defaultModel: 'gemini-2.0-flash-exp', supportsStreaming: true, contextWindow: 1000000 },
318
+ { id: 'google', name: 'Google', baseUrl: 'https://generativelanguage.googleapis.com/v1beta/openai/chat/completions', defaultModel: 'gemini-2.0-flash-exp', supportsStreaming: true, contextWindow: 1000000 },
319
319
  { id: 'xai', name: 'xAI (Grok)', baseUrl: 'https://api.x.ai/v1', defaultModel: 'grok-2-1212', supportsStreaming: true, contextWindow: 131072 },
320
- { id: 'openrouter', name: 'OpenRouter', baseUrl: 'https://openrouter.ai/api/v1', defaultModel: 'anthropic/claude-sonnet-4-20250514', supportsStreaming: true, supportsFunctionCalling: true, contextWindow: 200000 },
320
+ { id: 'openrouter', name: 'OpenRouter', baseUrl: 'https://openrouter.ai/api/v1/chat/completions', defaultModel: 'anthropic/claude-sonnet-4-20250514', supportsStreaming: true, supportsFunctionCalling: true, contextWindow: 200000 },
321
321
  { id: 'qwen', name: 'Qwen', baseUrl: 'https://dashscope.aliyuncs.com/compatible-mode/v1', defaultModel: 'qwen-plus', supportsStreaming: true, contextWindow: 131072 },
322
322
  { id: 'zai', name: 'Z.AI', baseUrl: 'https://api.zai.net/v1', defaultModel: 'zai/llama-3.3-70b-instruct', supportsStreaming: true, contextWindow: 128000 },
323
323
  { id: 'qianfan', name: 'Qianfan', baseUrl: 'https://qianfan.baidubce.com/v3', defaultModel: 'ernie-4.0-8k', supportsStreaming: true, contextWindow: 32000 },
@@ -331,7 +331,8 @@ export const MODEL_PROVIDERS = [
331
331
  { id: 'venice', name: 'Venice AI', baseUrl: 'https://api.venice.ai/api/v1', defaultModel: 'qwen2.5-72b', supportsStreaming: true, contextWindow: 131072 },
332
332
  { id: 'litellm', name: 'LiteLLM', baseUrl: '', defaultModel: '', supportsStreaming: true },
333
333
  { id: 'cloudflare', name: 'Cloudflare AI Gateway', baseUrl: '', defaultModel: '@cf/meta/llama-3.1-70b-instruct', supportsStreaming: false, contextWindow: 128000 },
334
- { id: 'modal', name: 'Modal', baseUrl: 'https://api.us-west-2.modal.direct/v1', defaultModel: 'zai-org/GLM-5-FP8', supportsStreaming: true, contextWindow: 200000 },
334
+ { id: 'modal', name: 'Modal', baseUrl: 'https://api.us-west-2.modal.direct/v1/chat/completions', defaultModel: 'zai-org/GLM-5-FP8', supportsStreaming: true, contextWindow: 200000 },
335
+ { id: 'groq', name: 'Groq', baseUrl: 'https://api.groq.com/openai/v1/chat/completions', defaultModel: 'llama-3.3-70b-versatile', supportsStreaming: true, contextWindow: 131072 },
335
336
  { id: 'custom', name: 'Custom Provider', baseUrl: '', defaultModel: '', supportsStreaming: true },
336
337
  ];
337
338
  export const DEFAULT_CONFIG = {
@@ -372,31 +372,31 @@ export const PROVIDER_INFO = {
372
372
  },
373
373
  openrouter: {
374
374
  name: 'OpenRouter',
375
- baseURL: 'https://openrouter.ai/api/v1',
375
+ baseURL: 'https://openrouter.ai/api/v1/chat/completions',
376
376
  apiKeyEnvName: 'OPENROUTER_API_KEY',
377
377
  supportsVision: true
378
378
  },
379
379
  modal: {
380
380
  name: 'Modal',
381
- baseURL: 'https://api.us-west-2.modal.direct/v1',
381
+ baseURL: 'https://api.us-west-2.modal.direct/v1/chat/completions',
382
382
  apiKeyEnvName: 'MODAL_API_KEY',
383
383
  supportsVision: false
384
384
  },
385
385
  groq: {
386
386
  name: 'Groq',
387
- baseURL: 'https://api.groq.com/openai/v1',
387
+ baseURL: 'https://api.groq.com/openai/v1/chat/completions',
388
388
  apiKeyEnvName: 'GROQ_API_KEY',
389
389
  supportsVision: false
390
390
  },
391
391
  github: {
392
392
  name: 'GitHub Copilot',
393
- baseURL: 'https://api.githubcopilot.com',
393
+ baseURL: 'https://api.githubcopilot.com/chat/completions',
394
394
  apiKeyEnvName: 'GITHUB_TOKEN',
395
395
  supportsVision: true
396
396
  },
397
397
  copilot: {
398
398
  name: 'GitHub Copilot',
399
- baseURL: 'https://api.githubcopilot.com',
399
+ baseURL: 'https://api.githubcopilot.com/chat/completions',
400
400
  apiKeyEnvName: 'GITHUB_TOKEN',
401
401
  supportsVision: true
402
402
  }
@@ -622,7 +622,7 @@ function inferPrimaryModel(config) {
622
622
  return 'google/gemini-flash-lite-latest';
623
623
  }
624
624
  if (hasValue(config.models.modalApiKey)) {
625
- return 'modal/zai-org/GLM-5-FP8';
625
+ return 'modal-zai-glm-5-fp8';
626
626
  }
627
627
  return null;
628
628
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twinclaw",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "Eagle-eyed agentic AI gateway with multi-modal hooks and proactive memory.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {