@livekit/agents-plugin-cerebras 1.5.0 → 1.5.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.cjs CHANGED
@@ -27,7 +27,7 @@ class CerebrasPlugin extends import_agents.Plugin {
27
27
  constructor() {
28
28
  super({
29
29
  title: "cerebras",
30
- version: "1.5.0",
30
+ version: "1.5.1",
31
31
  package: "@livekit/agents-plugin-cerebras"
32
32
  });
33
33
  }
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ class CerebrasPlugin extends Plugin {
4
4
  constructor() {
5
5
  super({
6
6
  title: "cerebras",
7
- version: "1.5.0",
7
+ version: "1.5.1",
8
8
  package: "@livekit/agents-plugin-cerebras"
9
9
  });
10
10
  }
package/dist/llm.cjs CHANGED
@@ -74,6 +74,7 @@ class LLM extends import_agents_plugin_openai.LLM {
74
74
  merged.client = new import_openai.default({
75
75
  apiKey: merged.apiKey,
76
76
  baseURL: merged.baseURL,
77
+ maxRetries: 0,
77
78
  fetch: createCompressedFetch({
78
79
  useMsgpack: merged.msgpackEncoding ?? true,
79
80
  useGzip: merged.gzipCompression ?? true
package/dist/llm.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/llm.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2026 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { llm } from '@livekit/agents';\nimport { LLM as OpenAILLM } from '@livekit/agents-plugin-openai';\nimport { encode } from '@msgpack/msgpack';\nimport { gzipSync } from 'node:zlib';\nimport OpenAI from 'openai';\nimport type { CerebrasChatModels } from './models.js';\n\nexport interface LLMOptions {\n model: string | CerebrasChatModels;\n apiKey?: string;\n baseURL?: string;\n user?: string;\n temperature?: number;\n client?: OpenAI;\n toolChoice?: llm.ToolChoice;\n parallelToolCalls?: boolean;\n gzipCompression?: boolean;\n msgpackEncoding?: boolean;\n}\n\nconst defaultLLMOptions: LLMOptions = {\n model: 'llama-4-scout-17b-16e-instruct',\n baseURL: 'https://api.cerebras.ai/v1',\n gzipCompression: true,\n msgpackEncoding: true,\n};\n\n/**\n * Create a custom fetch that compresses request payloads via msgpack and/or gzip.\n *\n * @see https://inference-docs.cerebras.ai/payload-optimization\n */\nfunction createCompressedFetch(opts: {\n useMsgpack: boolean;\n useGzip: boolean;\n}): typeof globalThis.fetch {\n return async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n if (init?.method === 'POST' && init.body && typeof init.body === 'string') {\n const headers = new Headers(init.headers);\n\n let body: Uint8Array;\n if (opts.useMsgpack) {\n body = encode(JSON.parse(init.body));\n headers.set('Content-Type', 'application/vnd.msgpack');\n } else {\n body = new TextEncoder().encode(init.body);\n }\n\n if (opts.useGzip) {\n body = gzipSync(body, { level: 5 });\n headers.set('Content-Encoding', 'gzip');\n }\n\n return globalThis.fetch(input, { ...init, body: Buffer.from(body), headers });\n }\n return globalThis.fetch(input, init);\n };\n}\n\nexport class LLM extends OpenAILLM {\n constructor(opts: Partial<LLMOptions> = {}) {\n const merged = { ...defaultLLMOptions, ...opts };\n\n merged.apiKey = merged.apiKey || process.env.CEREBRAS_API_KEY;\n if (merged.apiKey === undefined && !merged.client) {\n throw new Error(\n 'Cerebras API key is required, either as an argument or as $CEREBRAS_API_KEY',\n );\n }\n\n if (!merged.client && (merged.gzipCompression || merged.msgpackEncoding)) {\n merged.client = new OpenAI({\n apiKey: merged.apiKey,\n baseURL: merged.baseURL,\n fetch: createCompressedFetch({\n useMsgpack: merged.msgpackEncoding ?? true,\n useGzip: merged.gzipCompression ?? true,\n }),\n });\n }\n\n super(merged);\n }\n\n override label(): string {\n return 'cerebras.LLM';\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kCAAiC;AACjC,qBAAuB;AACvB,uBAAyB;AACzB,oBAAmB;AAgBnB,MAAM,oBAAgC;AAAA,EACpC,OAAO;AAAA,EACP,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;AAOA,SAAS,sBAAsB,MAGH;AAC1B,SAAO,OAAO,OAA0B,SAA0C;AAChF,SAAI,6BAAM,YAAW,UAAU,KAAK,QAAQ,OAAO,KAAK,SAAS,UAAU;AACzE,YAAM,UAAU,IAAI,QAAQ,KAAK,OAAO;AAExC,UAAI;AACJ,UAAI,KAAK,YAAY;AACnB,mBAAO,uBAAO,KAAK,MAAM,KAAK,IAAI,CAAC;AACnC,gBAAQ,IAAI,gBAAgB,yBAAyB;AAAA,MACvD,OAAO;AACL,eAAO,IAAI,YAAY,EAAE,OAAO,KAAK,IAAI;AAAA,MAC3C;AAEA,UAAI,KAAK,SAAS;AAChB,mBAAO,2BAAS,MAAM,EAAE,OAAO,EAAE,CAAC;AAClC,gBAAQ,IAAI,oBAAoB,MAAM;AAAA,MACxC;AAEA,aAAO,WAAW,MAAM,OAAO,EAAE,GAAG,MAAM,MAAM,OAAO,KAAK,IAAI,GAAG,QAAQ,CAAC;AAAA,IAC9E;AACA,WAAO,WAAW,MAAM,OAAO,IAAI;AAAA,EACrC;AACF;AAEO,MAAM,YAAY,4BAAAA,IAAU;AAAA,EACjC,YAAY,OAA4B,CAAC,GAAG;AAC1C,UAAM,SAAS,EAAE,GAAG,mBAAmB,GAAG,KAAK;AAE/C,WAAO,SAAS,OAAO,UAAU,QAAQ,IAAI;AAC7C,QAAI,OAAO,WAAW,UAAa,CAAC,OAAO,QAAQ;AACjD,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,OAAO,WAAW,OAAO,mBAAmB,OAAO,kBAAkB;AACxE,aAAO,SAAS,IAAI,cAAAC,QAAO;AAAA,QACzB,QAAQ,OAAO;AAAA,QACf,SAAS,OAAO;AAAA,QAChB,OAAO,sBAAsB;AAAA,UAC3B,YAAY,OAAO,mBAAmB;AAAA,UACtC,SAAS,OAAO,mBAAmB;AAAA,QACrC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,UAAM,MAAM;AAAA,EACd;AAAA,EAES,QAAgB;AACvB,WAAO;AAAA,EACT;AACF;","names":["OpenAILLM","OpenAI"]}
1
+ {"version":3,"sources":["../src/llm.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2026 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { llm } from '@livekit/agents';\nimport { LLM as OpenAILLM } from '@livekit/agents-plugin-openai';\nimport { encode } from '@msgpack/msgpack';\nimport { gzipSync } from 'node:zlib';\nimport OpenAI from 'openai';\nimport type { CerebrasChatModels } from './models.js';\n\nexport interface LLMOptions {\n model: string | CerebrasChatModels;\n apiKey?: string;\n baseURL?: string;\n user?: string;\n temperature?: number;\n client?: OpenAI;\n toolChoice?: llm.ToolChoice;\n parallelToolCalls?: boolean;\n gzipCompression?: boolean;\n msgpackEncoding?: boolean;\n}\n\nconst defaultLLMOptions: LLMOptions = {\n model: 'llama-4-scout-17b-16e-instruct',\n baseURL: 'https://api.cerebras.ai/v1',\n gzipCompression: true,\n msgpackEncoding: true,\n};\n\n/**\n * Create a custom fetch that compresses request payloads via msgpack and/or gzip.\n *\n * @see https://inference-docs.cerebras.ai/payload-optimization\n */\nfunction createCompressedFetch(opts: {\n useMsgpack: boolean;\n useGzip: boolean;\n}): typeof globalThis.fetch {\n return async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n if (init?.method === 'POST' && init.body && typeof init.body === 'string') {\n const headers = new Headers(init.headers);\n\n let body: Uint8Array;\n if (opts.useMsgpack) {\n body = encode(JSON.parse(init.body));\n headers.set('Content-Type', 'application/vnd.msgpack');\n } else {\n body = new TextEncoder().encode(init.body);\n }\n\n if (opts.useGzip) {\n body = gzipSync(body, { level: 5 });\n headers.set('Content-Encoding', 'gzip');\n }\n\n return globalThis.fetch(input, { ...init, body: Buffer.from(body), headers });\n }\n return globalThis.fetch(input, init);\n };\n}\n\nexport class LLM extends OpenAILLM {\n constructor(opts: Partial<LLMOptions> = {}) {\n const merged = { ...defaultLLMOptions, ...opts };\n\n merged.apiKey = merged.apiKey || process.env.CEREBRAS_API_KEY;\n if (merged.apiKey === undefined && !merged.client) {\n throw new Error(\n 'Cerebras API key is required, either as an argument or as $CEREBRAS_API_KEY',\n );\n }\n\n if (!merged.client && (merged.gzipCompression || merged.msgpackEncoding)) {\n merged.client = new OpenAI({\n apiKey: merged.apiKey,\n baseURL: merged.baseURL,\n maxRetries: 0,\n fetch: createCompressedFetch({\n useMsgpack: merged.msgpackEncoding ?? true,\n useGzip: merged.gzipCompression ?? true,\n }),\n });\n }\n\n super(merged);\n }\n\n override label(): string {\n return 'cerebras.LLM';\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kCAAiC;AACjC,qBAAuB;AACvB,uBAAyB;AACzB,oBAAmB;AAgBnB,MAAM,oBAAgC;AAAA,EACpC,OAAO;AAAA,EACP,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;AAOA,SAAS,sBAAsB,MAGH;AAC1B,SAAO,OAAO,OAA0B,SAA0C;AAChF,SAAI,6BAAM,YAAW,UAAU,KAAK,QAAQ,OAAO,KAAK,SAAS,UAAU;AACzE,YAAM,UAAU,IAAI,QAAQ,KAAK,OAAO;AAExC,UAAI;AACJ,UAAI,KAAK,YAAY;AACnB,mBAAO,uBAAO,KAAK,MAAM,KAAK,IAAI,CAAC;AACnC,gBAAQ,IAAI,gBAAgB,yBAAyB;AAAA,MACvD,OAAO;AACL,eAAO,IAAI,YAAY,EAAE,OAAO,KAAK,IAAI;AAAA,MAC3C;AAEA,UAAI,KAAK,SAAS;AAChB,mBAAO,2BAAS,MAAM,EAAE,OAAO,EAAE,CAAC;AAClC,gBAAQ,IAAI,oBAAoB,MAAM;AAAA,MACxC;AAEA,aAAO,WAAW,MAAM,OAAO,EAAE,GAAG,MAAM,MAAM,OAAO,KAAK,IAAI,GAAG,QAAQ,CAAC;AAAA,IAC9E;AACA,WAAO,WAAW,MAAM,OAAO,IAAI;AAAA,EACrC;AACF;AAEO,MAAM,YAAY,4BAAAA,IAAU;AAAA,EACjC,YAAY,OAA4B,CAAC,GAAG;AAC1C,UAAM,SAAS,EAAE,GAAG,mBAAmB,GAAG,KAAK;AAE/C,WAAO,SAAS,OAAO,UAAU,QAAQ,IAAI;AAC7C,QAAI,OAAO,WAAW,UAAa,CAAC,OAAO,QAAQ;AACjD,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,OAAO,WAAW,OAAO,mBAAmB,OAAO,kBAAkB;AACxE,aAAO,SAAS,IAAI,cAAAC,QAAO;AAAA,QACzB,QAAQ,OAAO;AAAA,QACf,SAAS,OAAO;AAAA,QAChB,YAAY;AAAA,QACZ,OAAO,sBAAsB;AAAA,UAC3B,YAAY,OAAO,mBAAmB;AAAA,UACtC,SAAS,OAAO,mBAAmB;AAAA,QACrC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,UAAM,MAAM;AAAA,EACd;AAAA,EAES,QAAgB;AACvB,WAAO;AAAA,EACT;AACF;","names":["OpenAILLM","OpenAI"]}
package/dist/llm.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAyCD,qBAAa,GAAI,SAAQ,SAAS;gBACpB,IAAI,GAAE,OAAO,CAAC,UAAU,CAAM;IAwBjC,KAAK,IAAI,MAAM;CAGzB"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAyCD,qBAAa,GAAI,SAAQ,SAAS;gBACpB,IAAI,GAAE,OAAO,CAAC,UAAU,CAAM;IAyBjC,KAAK,IAAI,MAAM;CAGzB"}
package/dist/llm.js CHANGED
@@ -41,6 +41,7 @@ class LLM extends OpenAILLM {
41
41
  merged.client = new OpenAI({
42
42
  apiKey: merged.apiKey,
43
43
  baseURL: merged.baseURL,
44
+ maxRetries: 0,
44
45
  fetch: createCompressedFetch({
45
46
  useMsgpack: merged.msgpackEncoding ?? true,
46
47
  useGzip: merged.gzipCompression ?? true
package/dist/llm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/llm.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2026 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { llm } from '@livekit/agents';\nimport { LLM as OpenAILLM } from '@livekit/agents-plugin-openai';\nimport { encode } from '@msgpack/msgpack';\nimport { gzipSync } from 'node:zlib';\nimport OpenAI from 'openai';\nimport type { CerebrasChatModels } from './models.js';\n\nexport interface LLMOptions {\n model: string | CerebrasChatModels;\n apiKey?: string;\n baseURL?: string;\n user?: string;\n temperature?: number;\n client?: OpenAI;\n toolChoice?: llm.ToolChoice;\n parallelToolCalls?: boolean;\n gzipCompression?: boolean;\n msgpackEncoding?: boolean;\n}\n\nconst defaultLLMOptions: LLMOptions = {\n model: 'llama-4-scout-17b-16e-instruct',\n baseURL: 'https://api.cerebras.ai/v1',\n gzipCompression: true,\n msgpackEncoding: true,\n};\n\n/**\n * Create a custom fetch that compresses request payloads via msgpack and/or gzip.\n *\n * @see https://inference-docs.cerebras.ai/payload-optimization\n */\nfunction createCompressedFetch(opts: {\n useMsgpack: boolean;\n useGzip: boolean;\n}): typeof globalThis.fetch {\n return async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n if (init?.method === 'POST' && init.body && typeof init.body === 'string') {\n const headers = new Headers(init.headers);\n\n let body: Uint8Array;\n if (opts.useMsgpack) {\n body = encode(JSON.parse(init.body));\n headers.set('Content-Type', 'application/vnd.msgpack');\n } else {\n body = new TextEncoder().encode(init.body);\n }\n\n if (opts.useGzip) {\n body = gzipSync(body, { level: 5 });\n headers.set('Content-Encoding', 'gzip');\n }\n\n return globalThis.fetch(input, { ...init, body: Buffer.from(body), headers });\n }\n return globalThis.fetch(input, init);\n };\n}\n\nexport class LLM extends OpenAILLM {\n constructor(opts: Partial<LLMOptions> = {}) {\n const merged = { ...defaultLLMOptions, ...opts };\n\n merged.apiKey = merged.apiKey || process.env.CEREBRAS_API_KEY;\n if (merged.apiKey === undefined && !merged.client) {\n throw new Error(\n 'Cerebras API key is required, either as an argument or as $CEREBRAS_API_KEY',\n );\n }\n\n if (!merged.client && (merged.gzipCompression || merged.msgpackEncoding)) {\n merged.client = new OpenAI({\n apiKey: merged.apiKey,\n baseURL: merged.baseURL,\n fetch: createCompressedFetch({\n useMsgpack: merged.msgpackEncoding ?? true,\n useGzip: merged.gzipCompression ?? true,\n }),\n });\n }\n\n super(merged);\n }\n\n override label(): string {\n return 'cerebras.LLM';\n }\n}\n"],"mappings":"AAIA,SAAS,OAAO,iBAAiB;AACjC,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,OAAO,YAAY;AAgBnB,MAAM,oBAAgC;AAAA,EACpC,OAAO;AAAA,EACP,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;AAOA,SAAS,sBAAsB,MAGH;AAC1B,SAAO,OAAO,OAA0B,SAA0C;AAChF,SAAI,6BAAM,YAAW,UAAU,KAAK,QAAQ,OAAO,KAAK,SAAS,UAAU;AACzE,YAAM,UAAU,IAAI,QAAQ,KAAK,OAAO;AAExC,UAAI;AACJ,UAAI,KAAK,YAAY;AACnB,eAAO,OAAO,KAAK,MAAM,KAAK,IAAI,CAAC;AACnC,gBAAQ,IAAI,gBAAgB,yBAAyB;AAAA,MACvD,OAAO;AACL,eAAO,IAAI,YAAY,EAAE,OAAO,KAAK,IAAI;AAAA,MAC3C;AAEA,UAAI,KAAK,SAAS;AAChB,eAAO,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC;AAClC,gBAAQ,IAAI,oBAAoB,MAAM;AAAA,MACxC;AAEA,aAAO,WAAW,MAAM,OAAO,EAAE,GAAG,MAAM,MAAM,OAAO,KAAK,IAAI,GAAG,QAAQ,CAAC;AAAA,IAC9E;AACA,WAAO,WAAW,MAAM,OAAO,IAAI;AAAA,EACrC;AACF;AAEO,MAAM,YAAY,UAAU;AAAA,EACjC,YAAY,OAA4B,CAAC,GAAG;AAC1C,UAAM,SAAS,EAAE,GAAG,mBAAmB,GAAG,KAAK;AAE/C,WAAO,SAAS,OAAO,UAAU,QAAQ,IAAI;AAC7C,QAAI,OAAO,WAAW,UAAa,CAAC,OAAO,QAAQ;AACjD,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,OAAO,WAAW,OAAO,mBAAmB,OAAO,kBAAkB;AACxE,aAAO,SAAS,IAAI,OAAO;AAAA,QACzB,QAAQ,OAAO;AAAA,QACf,SAAS,OAAO;AAAA,QAChB,OAAO,sBAAsB;AAAA,UAC3B,YAAY,OAAO,mBAAmB;AAAA,UACtC,SAAS,OAAO,mBAAmB;AAAA,QACrC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,UAAM,MAAM;AAAA,EACd;AAAA,EAES,QAAgB;AACvB,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/llm.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2026 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { llm } from '@livekit/agents';\nimport { LLM as OpenAILLM } from '@livekit/agents-plugin-openai';\nimport { encode } from '@msgpack/msgpack';\nimport { gzipSync } from 'node:zlib';\nimport OpenAI from 'openai';\nimport type { CerebrasChatModels } from './models.js';\n\nexport interface LLMOptions {\n model: string | CerebrasChatModels;\n apiKey?: string;\n baseURL?: string;\n user?: string;\n temperature?: number;\n client?: OpenAI;\n toolChoice?: llm.ToolChoice;\n parallelToolCalls?: boolean;\n gzipCompression?: boolean;\n msgpackEncoding?: boolean;\n}\n\nconst defaultLLMOptions: LLMOptions = {\n model: 'llama-4-scout-17b-16e-instruct',\n baseURL: 'https://api.cerebras.ai/v1',\n gzipCompression: true,\n msgpackEncoding: true,\n};\n\n/**\n * Create a custom fetch that compresses request payloads via msgpack and/or gzip.\n *\n * @see https://inference-docs.cerebras.ai/payload-optimization\n */\nfunction createCompressedFetch(opts: {\n useMsgpack: boolean;\n useGzip: boolean;\n}): typeof globalThis.fetch {\n return async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n if (init?.method === 'POST' && init.body && typeof init.body === 'string') {\n const headers = new Headers(init.headers);\n\n let body: Uint8Array;\n if (opts.useMsgpack) {\n body = encode(JSON.parse(init.body));\n headers.set('Content-Type', 'application/vnd.msgpack');\n } else {\n body = new TextEncoder().encode(init.body);\n }\n\n if (opts.useGzip) {\n body = gzipSync(body, { level: 5 });\n headers.set('Content-Encoding', 'gzip');\n }\n\n return globalThis.fetch(input, { ...init, body: Buffer.from(body), headers });\n }\n return globalThis.fetch(input, init);\n };\n}\n\nexport class LLM extends OpenAILLM {\n constructor(opts: Partial<LLMOptions> = {}) {\n const merged = { ...defaultLLMOptions, ...opts };\n\n merged.apiKey = merged.apiKey || process.env.CEREBRAS_API_KEY;\n if (merged.apiKey === undefined && !merged.client) {\n throw new Error(\n 'Cerebras API key is required, either as an argument or as $CEREBRAS_API_KEY',\n );\n }\n\n if (!merged.client && (merged.gzipCompression || merged.msgpackEncoding)) {\n merged.client = new OpenAI({\n apiKey: merged.apiKey,\n baseURL: merged.baseURL,\n maxRetries: 0,\n fetch: createCompressedFetch({\n useMsgpack: merged.msgpackEncoding ?? true,\n useGzip: merged.gzipCompression ?? true,\n }),\n });\n }\n\n super(merged);\n }\n\n override label(): string {\n return 'cerebras.LLM';\n }\n}\n"],"mappings":"AAIA,SAAS,OAAO,iBAAiB;AACjC,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,OAAO,YAAY;AAgBnB,MAAM,oBAAgC;AAAA,EACpC,OAAO;AAAA,EACP,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;AAOA,SAAS,sBAAsB,MAGH;AAC1B,SAAO,OAAO,OAA0B,SAA0C;AAChF,SAAI,6BAAM,YAAW,UAAU,KAAK,QAAQ,OAAO,KAAK,SAAS,UAAU;AACzE,YAAM,UAAU,IAAI,QAAQ,KAAK,OAAO;AAExC,UAAI;AACJ,UAAI,KAAK,YAAY;AACnB,eAAO,OAAO,KAAK,MAAM,KAAK,IAAI,CAAC;AACnC,gBAAQ,IAAI,gBAAgB,yBAAyB;AAAA,MACvD,OAAO;AACL,eAAO,IAAI,YAAY,EAAE,OAAO,KAAK,IAAI;AAAA,MAC3C;AAEA,UAAI,KAAK,SAAS;AAChB,eAAO,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC;AAClC,gBAAQ,IAAI,oBAAoB,MAAM;AAAA,MACxC;AAEA,aAAO,WAAW,MAAM,OAAO,EAAE,GAAG,MAAM,MAAM,OAAO,KAAK,IAAI,GAAG,QAAQ,CAAC;AAAA,IAC9E;AACA,WAAO,WAAW,MAAM,OAAO,IAAI;AAAA,EACrC;AACF;AAEO,MAAM,YAAY,UAAU;AAAA,EACjC,YAAY,OAA4B,CAAC,GAAG;AAC1C,UAAM,SAAS,EAAE,GAAG,mBAAmB,GAAG,KAAK;AAE/C,WAAO,SAAS,OAAO,UAAU,QAAQ,IAAI;AAC7C,QAAI,OAAO,WAAW,UAAa,CAAC,OAAO,QAAQ;AACjD,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,OAAO,WAAW,OAAO,mBAAmB,OAAO,kBAAkB;AACxE,aAAO,SAAS,IAAI,OAAO;AAAA,QACzB,QAAQ,OAAO;AAAA,QACf,SAAS,OAAO;AAAA,QAChB,YAAY;AAAA,QACZ,OAAO,sBAAsB;AAAA,UAC3B,YAAY,OAAO,mBAAmB;AAAA,UACtC,SAAS,OAAO,mBAAmB;AAAA,QACrC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,UAAM,MAAM;AAAA,EACd;AAAA,EAES,QAAgB;AACvB,WAAO;AAAA,EACT;AACF;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livekit/agents-plugin-cerebras",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "Cerebras plugin for LiveKit Node Agents",
5
5
  "main": "dist/index.js",
6
6
  "require": "dist/index.cjs",
@@ -25,23 +25,23 @@
25
25
  "README.md"
26
26
  ],
27
27
  "devDependencies": {
28
- "@livekit/rtc-node": "^0.13.30",
28
+ "@livekit/rtc-node": "^0.13.31",
29
29
  "@microsoft/api-extractor": "^7.35.0",
30
30
  "tsup": "^8.3.5",
31
31
  "typescript": "^5.0.0",
32
32
  "zod": "^3.25.76 || ^4.1.8",
33
- "@livekit/agents": "1.5.0",
34
- "@livekit/agents-plugin-openai": "1.5.0",
35
- "@livekit/agents-plugins-test": "1.5.0"
33
+ "@livekit/agents": "1.5.1",
34
+ "@livekit/agents-plugin-openai": "1.5.1",
35
+ "@livekit/agents-plugins-test": "1.5.1"
36
36
  },
37
37
  "dependencies": {
38
38
  "@msgpack/msgpack": "^3.0.0",
39
39
  "openai": "^6.8.1"
40
40
  },
41
41
  "peerDependencies": {
42
- "@livekit/rtc-node": "^0.13.30",
43
- "@livekit/agents": "1.5.0",
44
- "@livekit/agents-plugin-openai": "1.5.0"
42
+ "@livekit/rtc-node": "^0.13.31",
43
+ "@livekit/agents": "1.5.1",
44
+ "@livekit/agents-plugin-openai": "1.5.1"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "tsup --onSuccess \"pnpm build:types\"",
package/src/llm.ts CHANGED
@@ -75,6 +75,7 @@ export class LLM extends OpenAILLM {
75
75
  merged.client = new OpenAI({
76
76
  apiKey: merged.apiKey,
77
77
  baseURL: merged.baseURL,
78
+ maxRetries: 0,
78
79
  fetch: createCompressedFetch({
79
80
  useMsgpack: merged.msgpackEncoding ?? true,
80
81
  useGzip: merged.gzipCompression ?? true,