mindrx 0.1.3 → 0.1.4

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.
@@ -0,0 +1,13 @@
1
+ import type { Provider, CompletionRequest, Response, Chunk } from '../types.js';
2
+ export declare class AnthropicProvider implements Provider {
3
+ name: string;
4
+ private client;
5
+ private defaultModel;
6
+ constructor(options?: {
7
+ apiKey?: string;
8
+ model?: string;
9
+ });
10
+ complete(request: CompletionRequest): Promise<Response>;
11
+ stream(request: CompletionRequest): AsyncIterable<Chunk>;
12
+ }
13
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhF,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,IAAI,SAAe;IACnB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAOvD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0BtD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC;CAoBhE"}
@@ -0,0 +1,54 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ export class AnthropicProvider {
3
+ name = 'anthropic';
4
+ client;
5
+ defaultModel;
6
+ constructor(options = {}) {
7
+ this.client = new Anthropic({
8
+ apiKey: options.apiKey || process.env.ANTHROPIC_API_KEY,
9
+ });
10
+ this.defaultModel = options.model || 'claude-3-5-sonnet-20241022';
11
+ }
12
+ async complete(request) {
13
+ const model = request.model || this.defaultModel;
14
+ const message = await this.client.messages.create({
15
+ model,
16
+ max_tokens: request.parameters.max_tokens || 4096,
17
+ system: request.systemPrompt,
18
+ messages: [{ role: 'user', content: request.userPrompt }],
19
+ temperature: request.parameters.temperature,
20
+ top_p: request.parameters.top_p,
21
+ });
22
+ const textContent = message.content.find((c) => c.type === 'text');
23
+ return {
24
+ text: textContent?.type === 'text' ? textContent.text : '',
25
+ state: '',
26
+ model,
27
+ usage: {
28
+ promptTokens: message.usage.input_tokens,
29
+ completionTokens: message.usage.output_tokens,
30
+ totalTokens: message.usage.input_tokens + message.usage.output_tokens,
31
+ },
32
+ };
33
+ }
34
+ async *stream(request) {
35
+ const model = request.model || this.defaultModel;
36
+ const stream = this.client.messages.stream({
37
+ model,
38
+ max_tokens: request.parameters.max_tokens || 4096,
39
+ system: request.systemPrompt,
40
+ messages: [{ role: 'user', content: request.userPrompt }],
41
+ temperature: request.parameters.temperature,
42
+ top_p: request.parameters.top_p,
43
+ });
44
+ for await (const event of stream) {
45
+ if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') {
46
+ yield { text: event.delta.text, done: false };
47
+ }
48
+ else if (event.type === 'message_stop') {
49
+ yield { text: '', done: true };
50
+ }
51
+ }
52
+ }
53
+ }
54
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAG1C,MAAM,OAAO,iBAAiB;IAC5B,IAAI,GAAG,WAAW,CAAC;IACX,MAAM,CAAY;IAClB,YAAY,CAAS;IAE7B,YAAY,UAA+C,EAAE;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,4BAA4B,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAEjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChD,KAAK;YACL,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI;YACjD,MAAM,EAAE,OAAO,CAAC,YAAY;YAC5B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACzD,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW;YAC3C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK;SAChC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAEnE,OAAO;YACL,IAAI,EAAE,WAAW,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC1D,KAAK,EAAE,EAAE;YACT,KAAK;YACL,KAAK,EAAE;gBACL,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY;gBACxC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;gBAC7C,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa;aACtE;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAA0B;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzC,KAAK;YACL,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI;YACjD,MAAM,EAAE,OAAO,CAAC,YAAY;YAC5B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACzD,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW;YAC3C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK;SAChC,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9E,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAChD,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACzC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { Provider, CompletionRequest, Response, Chunk } from '../types.js';
2
+ export declare class GoogleProvider implements Provider {
3
+ name: string;
4
+ private client;
5
+ private defaultModel;
6
+ constructor(options?: {
7
+ apiKey?: string;
8
+ model?: string;
9
+ });
10
+ complete(request: CompletionRequest): Promise<Response>;
11
+ stream(request: CompletionRequest): AsyncIterable<Chunk>;
12
+ }
13
+ //# sourceMappingURL=google.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhF,qBAAa,cAAe,YAAW,QAAQ;IAC7C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IASvD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA8BtD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC;CAwBhE"}
@@ -0,0 +1,62 @@
1
+ import OpenAI from 'openai';
2
+ export class GoogleProvider {
3
+ name = 'google';
4
+ client;
5
+ defaultModel;
6
+ constructor(options = {}) {
7
+ const apiKey = options.apiKey || process.env.GOOGLE_API_KEY;
8
+ this.client = new OpenAI({
9
+ apiKey,
10
+ baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai',
11
+ });
12
+ this.defaultModel = options.model || 'gemini-1.5-flash';
13
+ }
14
+ async complete(request) {
15
+ const model = request.model || this.defaultModel;
16
+ const completion = await this.client.chat.completions.create({
17
+ model,
18
+ messages: [
19
+ { role: 'system', content: request.systemPrompt },
20
+ { role: 'user', content: request.userPrompt },
21
+ ],
22
+ temperature: request.parameters.temperature,
23
+ top_p: request.parameters.top_p,
24
+ max_tokens: request.parameters.max_tokens,
25
+ });
26
+ const choice = completion.choices[0];
27
+ return {
28
+ text: choice?.message?.content || '',
29
+ state: '',
30
+ model,
31
+ usage: completion.usage
32
+ ? {
33
+ promptTokens: completion.usage.prompt_tokens,
34
+ completionTokens: completion.usage.completion_tokens,
35
+ totalTokens: completion.usage.total_tokens,
36
+ }
37
+ : undefined,
38
+ };
39
+ }
40
+ async *stream(request) {
41
+ const model = request.model || this.defaultModel;
42
+ const stream = await this.client.chat.completions.create({
43
+ model,
44
+ messages: [
45
+ { role: 'system', content: request.systemPrompt },
46
+ { role: 'user', content: request.userPrompt },
47
+ ],
48
+ temperature: request.parameters.temperature,
49
+ top_p: request.parameters.top_p,
50
+ max_tokens: request.parameters.max_tokens,
51
+ stream: true,
52
+ });
53
+ for await (const chunk of stream) {
54
+ const delta = chunk.choices[0]?.delta?.content || '';
55
+ const done = chunk.choices[0]?.finish_reason !== null;
56
+ if (delta || done) {
57
+ yield { text: delta, done };
58
+ }
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=google.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,9 @@ import type { Provider, ProviderName } from '../types.js';
2
2
  export { OpenAIProvider } from './openai.js';
3
3
  export { OllamaProvider } from './ollama.js';
4
4
  export { MindRxProvider } from './mindrx.js';
5
+ export { AnthropicProvider } from './anthropic.js';
6
+ export { GoogleProvider } from './google.js';
7
+ export { XAIProvider } from './xai.js';
5
8
  export interface ProviderOptions {
6
9
  apiKey?: string;
7
10
  baseUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK1D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,CAcV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ1D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,CAiBV"}
@@ -1,9 +1,15 @@
1
1
  import { OpenAIProvider } from './openai.js';
2
2
  import { OllamaProvider } from './ollama.js';
3
3
  import { MindRxProvider } from './mindrx.js';
4
+ import { AnthropicProvider } from './anthropic.js';
5
+ import { GoogleProvider } from './google.js';
6
+ import { XAIProvider } from './xai.js';
4
7
  export { OpenAIProvider } from './openai.js';
5
8
  export { OllamaProvider } from './ollama.js';
6
9
  export { MindRxProvider } from './mindrx.js';
10
+ export { AnthropicProvider } from './anthropic.js';
11
+ export { GoogleProvider } from './google.js';
12
+ export { XAIProvider } from './xai.js';
7
13
  export function createProvider(name, options = {}) {
8
14
  switch (name) {
9
15
  case 'openai':
@@ -13,8 +19,11 @@ export function createProvider(name, options = {}) {
13
19
  case 'mindrx':
14
20
  return new MindRxProvider(options);
15
21
  case 'anthropic':
16
- // TODO: Implement Anthropic provider
17
- throw new Error('Anthropic provider not yet implemented. Use openai, ollama, or mindrx.');
22
+ return new AnthropicProvider(options);
23
+ case 'google':
24
+ return new GoogleProvider(options);
25
+ case 'xai':
26
+ return new XAIProvider(options);
18
27
  default:
19
28
  throw new Error(`Unknown provider: ${name}`);
20
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQ7C,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,UAA2B,EAAE;IAE7B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,WAAW;YACd,qCAAqC;YACrC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQvC,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,UAA2B,EAAE;IAE7B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,KAAK;YACR,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Provider, CompletionRequest, Response, Chunk } from '../types.js';
2
+ export declare class XAIProvider implements Provider {
3
+ name: string;
4
+ private client;
5
+ private defaultModel;
6
+ constructor(options?: {
7
+ apiKey?: string;
8
+ model?: string;
9
+ });
10
+ complete(request: CompletionRequest): Promise<Response>;
11
+ stream(request: CompletionRequest): AsyncIterable<Chunk>;
12
+ }
13
+ //# sourceMappingURL=xai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.d.ts","sourceRoot":"","sources":["../../src/providers/xai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhF,qBAAa,WAAY,YAAW,QAAQ;IAC1C,IAAI,SAAS;IACb,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IASvD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgCtD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC;CA0BhE"}
@@ -0,0 +1,66 @@
1
+ import OpenAI from 'openai';
2
+ export class XAIProvider {
3
+ name = 'xai';
4
+ client;
5
+ defaultModel;
6
+ constructor(options = {}) {
7
+ const apiKey = options.apiKey || process.env.XAI_API_KEY;
8
+ this.client = new OpenAI({
9
+ apiKey,
10
+ baseURL: 'https://api.x.ai/v1',
11
+ });
12
+ this.defaultModel = options.model || 'grok-2-latest';
13
+ }
14
+ async complete(request) {
15
+ const model = request.model || this.defaultModel;
16
+ const completion = await this.client.chat.completions.create({
17
+ model,
18
+ messages: [
19
+ { role: 'system', content: request.systemPrompt },
20
+ { role: 'user', content: request.userPrompt },
21
+ ],
22
+ temperature: request.parameters.temperature,
23
+ top_p: request.parameters.top_p,
24
+ frequency_penalty: request.parameters.frequency_penalty,
25
+ presence_penalty: request.parameters.presence_penalty,
26
+ max_tokens: request.parameters.max_tokens,
27
+ });
28
+ const choice = completion.choices[0];
29
+ return {
30
+ text: choice?.message?.content || '',
31
+ state: '',
32
+ model,
33
+ usage: completion.usage
34
+ ? {
35
+ promptTokens: completion.usage.prompt_tokens,
36
+ completionTokens: completion.usage.completion_tokens,
37
+ totalTokens: completion.usage.total_tokens,
38
+ }
39
+ : undefined,
40
+ };
41
+ }
42
+ async *stream(request) {
43
+ const model = request.model || this.defaultModel;
44
+ const stream = await this.client.chat.completions.create({
45
+ model,
46
+ messages: [
47
+ { role: 'system', content: request.systemPrompt },
48
+ { role: 'user', content: request.userPrompt },
49
+ ],
50
+ temperature: request.parameters.temperature,
51
+ top_p: request.parameters.top_p,
52
+ frequency_penalty: request.parameters.frequency_penalty,
53
+ presence_penalty: request.parameters.presence_penalty,
54
+ max_tokens: request.parameters.max_tokens,
55
+ stream: true,
56
+ });
57
+ for await (const chunk of stream) {
58
+ const delta = chunk.choices[0]?.delta?.content || '';
59
+ const done = chunk.choices[0]?.finish_reason !== null;
60
+ if (delta || done) {
61
+ yield { text: delta, done };
62
+ }
63
+ }
64
+ }
65
+ }
66
+ //# sourceMappingURL=xai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.js","sourceRoot":"","sources":["../../src/providers/xai.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { StateDefinition, StateParameters } from 'mindrx-core';
2
- export type ProviderName = 'openai' | 'anthropic' | 'ollama' | 'mindrx';
2
+ export type ProviderName = 'openai' | 'anthropic' | 'google' | 'xai' | 'ollama' | 'mindrx';
3
3
  export interface MindRxOptions {
4
4
  state?: string;
5
5
  provider?: ProviderName;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;CAC1D;AAED,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3F,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;CAC1D;AAED,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindrx",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Cognitive state simulation toolkit for AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,6 +24,7 @@
24
24
  "test": "node --test"
25
25
  },
26
26
  "dependencies": {
27
+ "@anthropic-ai/sdk": "^0.35.0",
27
28
  "mindrx-core": "^0.1.1",
28
29
  "openai": "^4.20.0"
29
30
  },