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.
- package/dist/providers/anthropic.d.ts +13 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +54 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/google.d.ts +13 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +62 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +3 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +11 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/xai.d.ts +13 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +66 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -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;
|
|
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"}
|
package/dist/providers/index.js
CHANGED
|
@@ -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
|
-
|
|
17
|
-
|
|
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;
|
|
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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
+
"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
|
},
|