mindrx 0.1.0

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/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,230 @@
1
+ #!/usr/bin/env node
2
+ import { parseArgs } from 'node:util';
3
+ import { createInterface } from 'node:readline';
4
+ import { MindRx } from './mindrx.js';
5
+ const VERSION = '0.1.0';
6
+ function printHelp() {
7
+ console.log(`
8
+ mindrx - Cognitive state simulation for AI agents
9
+
10
+ USAGE:
11
+ mindrx <command> [options]
12
+
13
+ COMMANDS:
14
+ list List available cognitive states
15
+ run <prompt> Run a prompt with a cognitive state
16
+ repl Start interactive mode
17
+
18
+ OPTIONS:
19
+ -s, --state Cognitive state to apply (default: sober)
20
+ -p, --provider LLM provider: mindrx, openai, ollama (default: mindrx)
21
+ -m, --model Specific model to use
22
+ --json Output as JSON
23
+ --no-stream Disable streaming output
24
+ -h, --help Show this help message
25
+ -v, --version Show version
26
+
27
+ PROVIDERS:
28
+ mindrx MindRx hosted backend (free, no API key needed)
29
+ openai OpenAI API (requires OPENAI_API_KEY)
30
+ ollama Local Ollama instance
31
+
32
+ EXAMPLES:
33
+ mindrx list
34
+ mindrx run --state ketamine "What is the nature of time?"
35
+ mindrx run -s cannabis "Write a poem about clouds"
36
+ mindrx run -s cocaine -p openai "Give me a business plan"
37
+ mindrx repl --state ayahuasca
38
+
39
+ ENVIRONMENT:
40
+ OPENAI_API_KEY API key for OpenAI provider
41
+ OLLAMA_BASE_URL Base URL for local Ollama (default: http://localhost:11434)
42
+ `);
43
+ }
44
+ function printVersion() {
45
+ console.log(`mindrx v${VERSION}`);
46
+ }
47
+ async function listStates() {
48
+ const agent = new MindRx();
49
+ const states = agent.listStates();
50
+ console.log('\nAvailable states:\n');
51
+ for (const name of states) {
52
+ const state = new MindRx({ state: name }).getState();
53
+ const desc = state?.description || '';
54
+ console.log(` ${name.padEnd(14)} ${desc}`);
55
+ }
56
+ console.log('');
57
+ }
58
+ async function runPrompt(prompt, options) {
59
+ const agent = new MindRx({
60
+ state: options.state,
61
+ provider: options.provider,
62
+ model: options.model,
63
+ });
64
+ if (options.stream && !options.json) {
65
+ for await (const chunk of agent.stream(prompt)) {
66
+ process.stdout.write(chunk.text);
67
+ }
68
+ console.log('');
69
+ }
70
+ else {
71
+ const response = await agent.run(prompt);
72
+ if (options.json) {
73
+ console.log(JSON.stringify(response, null, 2));
74
+ }
75
+ else {
76
+ console.log(response.text);
77
+ }
78
+ }
79
+ }
80
+ async function startRepl(options) {
81
+ const agent = new MindRx({
82
+ state: options.state,
83
+ provider: options.provider,
84
+ model: options.model,
85
+ });
86
+ const rl = createInterface({
87
+ input: process.stdin,
88
+ output: process.stdout,
89
+ });
90
+ console.log(`\nmindrx REPL - State: ${options.state} | Provider: ${options.provider}`);
91
+ console.log('Commands: /state <name>, /list, /clear, /exit\n');
92
+ const prompt = () => {
93
+ rl.question(`[${agent.getStateName()}] > `, async (input) => {
94
+ const trimmed = input.trim();
95
+ if (!trimmed) {
96
+ prompt();
97
+ return;
98
+ }
99
+ if (trimmed.startsWith('/')) {
100
+ const [cmd, ...args] = trimmed.slice(1).split(' ');
101
+ switch (cmd) {
102
+ case 'state':
103
+ if (args[0]) {
104
+ try {
105
+ agent.setState(args[0]);
106
+ console.log(`Switched to state: ${args[0]}\n`);
107
+ }
108
+ catch (e) {
109
+ console.log(`Error: ${e.message}\n`);
110
+ }
111
+ }
112
+ else {
113
+ console.log(`Current state: ${agent.getStateName()}\n`);
114
+ }
115
+ break;
116
+ case 'list':
117
+ const states = agent.listStates();
118
+ console.log('\nAvailable states:');
119
+ for (const name of states) {
120
+ const marker = name === agent.getStateName() ? ' *' : '';
121
+ console.log(` ${name}${marker}`);
122
+ }
123
+ console.log('');
124
+ break;
125
+ case 'clear':
126
+ console.clear();
127
+ console.log(`mindrx REPL - State: ${agent.getStateName()}\n`);
128
+ break;
129
+ case 'exit':
130
+ case 'quit':
131
+ rl.close();
132
+ process.exit(0);
133
+ break;
134
+ default:
135
+ console.log(`Unknown command: ${cmd}\n`);
136
+ }
137
+ prompt();
138
+ return;
139
+ }
140
+ try {
141
+ process.stdout.write('\n');
142
+ for await (const chunk of agent.stream(trimmed)) {
143
+ process.stdout.write(chunk.text);
144
+ }
145
+ console.log('\n');
146
+ }
147
+ catch (e) {
148
+ console.log(`Error: ${e.message}\n`);
149
+ }
150
+ prompt();
151
+ });
152
+ };
153
+ prompt();
154
+ }
155
+ async function readStdin() {
156
+ if (process.stdin.isTTY) {
157
+ return '';
158
+ }
159
+ const chunks = [];
160
+ for await (const chunk of process.stdin) {
161
+ chunks.push(chunk);
162
+ }
163
+ return Buffer.concat(chunks).toString('utf-8').trim();
164
+ }
165
+ async function main() {
166
+ const { values, positionals } = parseArgs({
167
+ allowPositionals: true,
168
+ options: {
169
+ help: { type: 'boolean', short: 'h' },
170
+ version: { type: 'boolean', short: 'v' },
171
+ state: { type: 'string', short: 's', default: 'sober' },
172
+ provider: { type: 'string', short: 'p', default: 'mindrx' },
173
+ model: { type: 'string', short: 'm' },
174
+ json: { type: 'boolean', default: false },
175
+ 'no-stream': { type: 'boolean', default: false },
176
+ },
177
+ });
178
+ if (values.help) {
179
+ printHelp();
180
+ return;
181
+ }
182
+ if (values.version) {
183
+ printVersion();
184
+ return;
185
+ }
186
+ const command = positionals[0];
187
+ if (!command) {
188
+ printHelp();
189
+ return;
190
+ }
191
+ const state = values.state || 'sober';
192
+ const provider = (values.provider || 'mindrx');
193
+ const model = values.model;
194
+ switch (command) {
195
+ case 'list':
196
+ await listStates();
197
+ break;
198
+ case 'run': {
199
+ let prompt = positionals.slice(1).join(' ');
200
+ // Read from stdin if no prompt provided
201
+ if (!prompt) {
202
+ prompt = await readStdin();
203
+ }
204
+ if (!prompt) {
205
+ console.error('Error: No prompt provided');
206
+ process.exit(1);
207
+ }
208
+ await runPrompt(prompt, {
209
+ state,
210
+ provider,
211
+ model,
212
+ json: values.json || false,
213
+ stream: !values['no-stream'],
214
+ });
215
+ break;
216
+ }
217
+ case 'repl':
218
+ await startRepl({ state, provider, model });
219
+ break;
220
+ default:
221
+ console.error(`Unknown command: ${command}`);
222
+ printHelp();
223
+ process.exit(1);
224
+ }
225
+ }
226
+ main().catch((e) => {
227
+ console.error('Error:', e.message);
228
+ process.exit(1);
229
+ });
230
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { StateDefinition, StateBehavior, StateParameters } from '@mindrx/core';
2
+ export interface DefineStateInput {
3
+ name: string;
4
+ description?: string;
5
+ parameters?: Partial<StateParameters>;
6
+ behavior?: Partial<StateBehavior>;
7
+ systemPrompt: string;
8
+ }
9
+ export declare function defineState(input: DefineStateInput): StateDefinition;
10
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,eAAe,CAiBpE"}
package/dist/define.js ADDED
@@ -0,0 +1,19 @@
1
+ export function defineState(input) {
2
+ return {
3
+ name: input.name,
4
+ description: input.description || '',
5
+ parameters: {
6
+ temperature: 0.7,
7
+ ...input.parameters,
8
+ },
9
+ behavior: {
10
+ association: 'normal',
11
+ coherence: 'normal',
12
+ pacing: 'normal',
13
+ confidence: 'normal',
14
+ ...input.behavior,
15
+ },
16
+ system_prompt: input.systemPrompt,
17
+ };
18
+ }
19
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,UAAU,EAAE;YACV,WAAW,EAAE,GAAG;YAChB,GAAG,KAAK,CAAC,UAAU;SACpB;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,QAAQ;YACrB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,KAAK,CAAC,QAAQ;SAClB;QACD,aAAa,EAAE,KAAK,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { MindRx } from './mindrx.js';
2
+ export { defineState } from './define.js';
3
+ export type { DefineStateInput } from './define.js';
4
+ export { OpenAIProvider, OllamaProvider, createProvider } from './providers/index.js';
5
+ export type { MindRxOptions, Response, Chunk, Provider, ProviderName, CompletionRequest, StateDefinition, StateParameters, StateBehavior, StateInfo, } from './types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtF,YAAY,EACV,aAAa,EACb,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,SAAS,GACV,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ // Main class
2
+ export { MindRx } from './mindrx.js';
3
+ // State definition helper
4
+ export { defineState } from './define.js';
5
+ // Providers
6
+ export { OpenAIProvider, OllamaProvider, createProvider } from './providers/index.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { StateDefinition } from '@mindrx/core';
2
+ import type { MindRxOptions, Response, Chunk } from './types.js';
3
+ export declare class MindRx {
4
+ private engine;
5
+ private _provider;
6
+ private providerName;
7
+ private providerOptions;
8
+ private currentStateName;
9
+ private model?;
10
+ constructor(options?: MindRxOptions);
11
+ private get provider();
12
+ run(prompt: string): Promise<Response>;
13
+ stream(prompt: string): AsyncIterable<Chunk>;
14
+ setState(name: string): void;
15
+ getState(): StateDefinition | null;
16
+ getStateName(): string;
17
+ listStates(): string[];
18
+ hasState(name: string): boolean;
19
+ registerState(state: StateDefinition): void;
20
+ addCustomStateDir(dir: string): void;
21
+ }
22
+ //# sourceMappingURL=mindrx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mindrx.d.ts","sourceRoot":"","sources":["../src/mindrx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EACV,aAAa,EAGb,QAAQ,EACR,KAAK,EACN,MAAM,YAAY,CAAC;AAEpB,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,KAAK,CAAC,CAAS;gBAEX,OAAO,GAAE,aAAkB;IA2BvC,OAAO,KAAK,QAAQ,GAKnB;IAEK,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAcrC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;IAWnD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,QAAQ,IAAI,eAAe,GAAG,IAAI;IAIlC,YAAY,IAAI,MAAM;IAItB,UAAU,IAAI,MAAM,EAAE;IAItB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAI3C,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAGrC"}
package/dist/mindrx.js ADDED
@@ -0,0 +1,81 @@
1
+ import { StateEngine } from '@mindrx/core';
2
+ import { createProvider } from './providers/index.js';
3
+ export class MindRx {
4
+ engine;
5
+ _provider = null;
6
+ providerName;
7
+ providerOptions;
8
+ currentStateName;
9
+ model;
10
+ constructor(options = {}) {
11
+ this.engine = new StateEngine();
12
+ // Register custom states
13
+ if (options.customStates) {
14
+ for (const state of options.customStates) {
15
+ this.engine.register(state);
16
+ }
17
+ }
18
+ // Store provider config for lazy initialization
19
+ this.providerName = options.provider || 'openai';
20
+ this.providerOptions = {
21
+ apiKey: options.apiKey,
22
+ baseUrl: options.baseUrl,
23
+ model: options.model,
24
+ };
25
+ this.model = options.model;
26
+ // Set initial state
27
+ this.currentStateName = options.state || 'sober';
28
+ if (this.engine.has(this.currentStateName)) {
29
+ this.engine.load(this.currentStateName);
30
+ }
31
+ }
32
+ get provider() {
33
+ if (!this._provider) {
34
+ this._provider = createProvider(this.providerName, this.providerOptions);
35
+ }
36
+ return this._provider;
37
+ }
38
+ async run(prompt) {
39
+ const modulated = this.engine.apply(prompt);
40
+ const response = await this.provider.complete({
41
+ systemPrompt: modulated.systemPrompt,
42
+ userPrompt: modulated.userPrompt,
43
+ parameters: modulated.parameters,
44
+ model: this.model,
45
+ });
46
+ response.state = this.currentStateName;
47
+ return response;
48
+ }
49
+ async *stream(prompt) {
50
+ const modulated = this.engine.apply(prompt);
51
+ yield* this.provider.stream({
52
+ systemPrompt: modulated.systemPrompt,
53
+ userPrompt: modulated.userPrompt,
54
+ parameters: modulated.parameters,
55
+ model: this.model,
56
+ });
57
+ }
58
+ setState(name) {
59
+ this.engine.load(name);
60
+ this.currentStateName = name;
61
+ }
62
+ getState() {
63
+ return this.engine.getCurrent();
64
+ }
65
+ getStateName() {
66
+ return this.currentStateName;
67
+ }
68
+ listStates() {
69
+ return this.engine.listNames();
70
+ }
71
+ hasState(name) {
72
+ return this.engine.has(name);
73
+ }
74
+ registerState(state) {
75
+ this.engine.register(state);
76
+ }
77
+ addCustomStateDir(dir) {
78
+ this.engine.addCustomStateDir(dir);
79
+ }
80
+ }
81
+ //# sourceMappingURL=mindrx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mindrx.js","sourceRoot":"","sources":["../src/mindrx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Provider, ProviderName } from '../types.js';
2
+ export { OpenAIProvider } from './openai.js';
3
+ export { OllamaProvider } from './ollama.js';
4
+ export { MindRxProvider } from './mindrx.js';
5
+ export interface ProviderOptions {
6
+ apiKey?: string;
7
+ baseUrl?: string;
8
+ model?: string;
9
+ }
10
+ export declare function createProvider(name: ProviderName, options?: ProviderOptions): Provider;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,22 @@
1
+ import { OpenAIProvider } from './openai.js';
2
+ import { OllamaProvider } from './ollama.js';
3
+ import { MindRxProvider } from './mindrx.js';
4
+ export { OpenAIProvider } from './openai.js';
5
+ export { OllamaProvider } from './ollama.js';
6
+ export { MindRxProvider } from './mindrx.js';
7
+ export function createProvider(name, options = {}) {
8
+ switch (name) {
9
+ case 'openai':
10
+ return new OpenAIProvider(options);
11
+ case 'ollama':
12
+ return new OllamaProvider(options);
13
+ case 'mindrx':
14
+ return new MindRxProvider(options);
15
+ case 'anthropic':
16
+ // TODO: Implement Anthropic provider
17
+ throw new Error('Anthropic provider not yet implemented. Use openai, ollama, or mindrx.');
18
+ default:
19
+ throw new Error(`Unknown provider: ${name}`);
20
+ }
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ import type { Provider, CompletionRequest, Response, Chunk } from '../types.js';
2
+ export declare class MindRxProvider implements Provider {
3
+ name: string;
4
+ private baseUrl;
5
+ private defaultModel;
6
+ constructor(options?: {
7
+ baseUrl?: string;
8
+ model?: string;
9
+ });
10
+ complete(request: CompletionRequest): Promise<Response>;
11
+ stream(request: CompletionRequest): AsyncIterable<Chunk>;
12
+ }
13
+ //# sourceMappingURL=mindrx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mindrx.d.ts","sourceRoot":"","sources":["../../src/providers/mindrx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA2BhF,qBAAa,cAAe,YAAW,QAAQ;IAC7C,IAAI,SAAY;IAChB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAKxD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyCtD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC;CA2DhE"}
@@ -0,0 +1,101 @@
1
+ // MindRx hosted Ollama backend
2
+ const MINDRX_API_URL = 'http://72.60.110.67:11434';
3
+ const DEFAULT_MODEL = 'dolphin-mistral';
4
+ export class MindRxProvider {
5
+ name = 'mindrx';
6
+ baseUrl;
7
+ defaultModel;
8
+ constructor(options = {}) {
9
+ this.baseUrl = options.baseUrl || MINDRX_API_URL;
10
+ this.defaultModel = options.model || DEFAULT_MODEL;
11
+ }
12
+ async complete(request) {
13
+ const model = request.model || this.defaultModel;
14
+ const response = await fetch(`${this.baseUrl}/api/chat`, {
15
+ method: 'POST',
16
+ headers: { 'Content-Type': 'application/json' },
17
+ body: JSON.stringify({
18
+ model,
19
+ messages: [
20
+ { role: 'system', content: request.systemPrompt },
21
+ { role: 'user', content: request.userPrompt },
22
+ ],
23
+ options: {
24
+ temperature: request.parameters.temperature,
25
+ top_p: request.parameters.top_p,
26
+ },
27
+ stream: false,
28
+ }),
29
+ });
30
+ if (!response.ok) {
31
+ const text = await response.text();
32
+ throw new Error(`MindRx API error: ${response.status} - ${text}`);
33
+ }
34
+ const data = (await response.json());
35
+ return {
36
+ text: data.message?.content || '',
37
+ state: '',
38
+ model,
39
+ usage: data.prompt_eval_count && data.eval_count
40
+ ? {
41
+ promptTokens: data.prompt_eval_count,
42
+ completionTokens: data.eval_count,
43
+ totalTokens: data.prompt_eval_count + data.eval_count,
44
+ }
45
+ : undefined,
46
+ };
47
+ }
48
+ async *stream(request) {
49
+ const model = request.model || this.defaultModel;
50
+ const response = await fetch(`${this.baseUrl}/api/chat`, {
51
+ method: 'POST',
52
+ headers: { 'Content-Type': 'application/json' },
53
+ body: JSON.stringify({
54
+ model,
55
+ messages: [
56
+ { role: 'system', content: request.systemPrompt },
57
+ { role: 'user', content: request.userPrompt },
58
+ ],
59
+ options: {
60
+ temperature: request.parameters.temperature,
61
+ top_p: request.parameters.top_p,
62
+ },
63
+ stream: true,
64
+ }),
65
+ });
66
+ if (!response.ok) {
67
+ const text = await response.text();
68
+ throw new Error(`MindRx API error: ${response.status} - ${text}`);
69
+ }
70
+ const reader = response.body?.getReader();
71
+ if (!reader) {
72
+ throw new Error('No response body');
73
+ }
74
+ const decoder = new TextDecoder();
75
+ let buffer = '';
76
+ while (true) {
77
+ const { done, value } = await reader.read();
78
+ if (done) {
79
+ break;
80
+ }
81
+ buffer += decoder.decode(value, { stream: true });
82
+ const lines = buffer.split('\n');
83
+ buffer = lines.pop() || '';
84
+ for (const line of lines) {
85
+ if (line.trim()) {
86
+ try {
87
+ const chunk = JSON.parse(line);
88
+ yield {
89
+ text: chunk.message?.content || '',
90
+ done: chunk.done,
91
+ };
92
+ }
93
+ catch {
94
+ // Skip malformed JSON
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ //# sourceMappingURL=mindrx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mindrx.js","sourceRoot":"","sources":["../../src/providers/mindrx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Provider, CompletionRequest, Response, Chunk } from '../types.js';
2
+ export declare class OllamaProvider implements Provider {
3
+ name: string;
4
+ private baseUrl;
5
+ private defaultModel;
6
+ constructor(options?: {
7
+ baseUrl?: string;
8
+ model?: string;
9
+ });
10
+ complete(request: CompletionRequest): Promise<Response>;
11
+ stream(request: CompletionRequest): AsyncIterable<Chunk>;
12
+ }
13
+ //# sourceMappingURL=ollama.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAuBhF,qBAAa,cAAe,YAAW,QAAQ;IAC7C,IAAI,SAAY;IAChB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAKxD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAwCtD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC;CA0DhE"}
@@ -0,0 +1,96 @@
1
+ export class OllamaProvider {
2
+ name = 'ollama';
3
+ baseUrl;
4
+ defaultModel;
5
+ constructor(options = {}) {
6
+ this.baseUrl = options.baseUrl || process.env.OLLAMA_BASE_URL || 'http://localhost:11434';
7
+ this.defaultModel = options.model || 'llama3.2';
8
+ }
9
+ async complete(request) {
10
+ const model = request.model || this.defaultModel;
11
+ const response = await fetch(`${this.baseUrl}/api/chat`, {
12
+ method: 'POST',
13
+ headers: { 'Content-Type': 'application/json' },
14
+ body: JSON.stringify({
15
+ model,
16
+ messages: [
17
+ { role: 'system', content: request.systemPrompt },
18
+ { role: 'user', content: request.userPrompt },
19
+ ],
20
+ options: {
21
+ temperature: request.parameters.temperature,
22
+ top_p: request.parameters.top_p,
23
+ },
24
+ stream: false,
25
+ }),
26
+ });
27
+ if (!response.ok) {
28
+ throw new Error(`Ollama request failed: ${response.statusText}`);
29
+ }
30
+ const data = (await response.json());
31
+ return {
32
+ text: data.message?.content || '',
33
+ state: '',
34
+ model,
35
+ usage: data.prompt_eval_count && data.eval_count
36
+ ? {
37
+ promptTokens: data.prompt_eval_count,
38
+ completionTokens: data.eval_count,
39
+ totalTokens: data.prompt_eval_count + data.eval_count,
40
+ }
41
+ : undefined,
42
+ };
43
+ }
44
+ async *stream(request) {
45
+ const model = request.model || this.defaultModel;
46
+ const response = await fetch(`${this.baseUrl}/api/chat`, {
47
+ method: 'POST',
48
+ headers: { 'Content-Type': 'application/json' },
49
+ body: JSON.stringify({
50
+ model,
51
+ messages: [
52
+ { role: 'system', content: request.systemPrompt },
53
+ { role: 'user', content: request.userPrompt },
54
+ ],
55
+ options: {
56
+ temperature: request.parameters.temperature,
57
+ top_p: request.parameters.top_p,
58
+ },
59
+ stream: true,
60
+ }),
61
+ });
62
+ if (!response.ok) {
63
+ throw new Error(`Ollama request failed: ${response.statusText}`);
64
+ }
65
+ const reader = response.body?.getReader();
66
+ if (!reader) {
67
+ throw new Error('No response body');
68
+ }
69
+ const decoder = new TextDecoder();
70
+ let buffer = '';
71
+ while (true) {
72
+ const { done, value } = await reader.read();
73
+ if (done) {
74
+ break;
75
+ }
76
+ buffer += decoder.decode(value, { stream: true });
77
+ const lines = buffer.split('\n');
78
+ buffer = lines.pop() || '';
79
+ for (const line of lines) {
80
+ if (line.trim()) {
81
+ try {
82
+ const chunk = JSON.parse(line);
83
+ yield {
84
+ text: chunk.message?.content || '',
85
+ done: chunk.done,
86
+ };
87
+ }
88
+ catch {
89
+ // Skip malformed JSON
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ //# sourceMappingURL=ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Provider, CompletionRequest, Response, Chunk } from '../types.js';
2
+ export declare class OpenAIProvider implements Provider {
3
+ name: string;
4
+ private client;
5
+ private defaultModel;
6
+ constructor(options?: {
7
+ apiKey?: string;
8
+ baseUrl?: string;
9
+ model?: string;
10
+ });
11
+ complete(request: CompletionRequest): Promise<Response>;
12
+ stream(request: CompletionRequest): AsyncIterable<Chunk>;
13
+ }
14
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.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,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAQzE,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,65 @@
1
+ import OpenAI from 'openai';
2
+ export class OpenAIProvider {
3
+ name = 'openai';
4
+ client;
5
+ defaultModel;
6
+ constructor(options = {}) {
7
+ this.client = new OpenAI({
8
+ apiKey: options.apiKey || process.env.OPENAI_API_KEY,
9
+ baseURL: options.baseUrl,
10
+ });
11
+ this.defaultModel = options.model || 'gpt-4o-mini';
12
+ }
13
+ async complete(request) {
14
+ const model = request.model || this.defaultModel;
15
+ const completion = await this.client.chat.completions.create({
16
+ model,
17
+ messages: [
18
+ { role: 'system', content: request.systemPrompt },
19
+ { role: 'user', content: request.userPrompt },
20
+ ],
21
+ temperature: request.parameters.temperature,
22
+ top_p: request.parameters.top_p,
23
+ frequency_penalty: request.parameters.frequency_penalty,
24
+ presence_penalty: request.parameters.presence_penalty,
25
+ max_tokens: request.parameters.max_tokens,
26
+ });
27
+ const choice = completion.choices[0];
28
+ return {
29
+ text: choice?.message?.content || '',
30
+ state: '', // Will be set by MindRx class
31
+ model,
32
+ usage: completion.usage
33
+ ? {
34
+ promptTokens: completion.usage.prompt_tokens,
35
+ completionTokens: completion.usage.completion_tokens,
36
+ totalTokens: completion.usage.total_tokens,
37
+ }
38
+ : undefined,
39
+ };
40
+ }
41
+ async *stream(request) {
42
+ const model = request.model || this.defaultModel;
43
+ const stream = await this.client.chat.completions.create({
44
+ model,
45
+ messages: [
46
+ { role: 'system', content: request.systemPrompt },
47
+ { role: 'user', content: request.userPrompt },
48
+ ],
49
+ temperature: request.parameters.temperature,
50
+ top_p: request.parameters.top_p,
51
+ frequency_penalty: request.parameters.frequency_penalty,
52
+ presence_penalty: request.parameters.presence_penalty,
53
+ max_tokens: request.parameters.max_tokens,
54
+ stream: true,
55
+ });
56
+ for await (const chunk of stream) {
57
+ const delta = chunk.choices[0]?.delta?.content || '';
58
+ const done = chunk.choices[0]?.finish_reason !== null;
59
+ if (delta || done) {
60
+ yield { text: delta, done };
61
+ }
62
+ }
63
+ }
64
+ }
65
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { StateDefinition, StateParameters } from '@mindrx/core';
2
+ export type ProviderName = 'openai' | 'anthropic' | 'ollama' | 'mindrx';
3
+ export interface MindRxOptions {
4
+ state?: string;
5
+ provider?: ProviderName;
6
+ model?: string;
7
+ apiKey?: string;
8
+ baseUrl?: string;
9
+ customStates?: StateDefinition[];
10
+ }
11
+ export interface Response {
12
+ text: string;
13
+ state: string;
14
+ model: string;
15
+ usage?: {
16
+ promptTokens: number;
17
+ completionTokens: number;
18
+ totalTokens: number;
19
+ };
20
+ }
21
+ export interface Chunk {
22
+ text: string;
23
+ done: boolean;
24
+ }
25
+ export interface CompletionRequest {
26
+ systemPrompt: string;
27
+ userPrompt: string;
28
+ parameters: StateParameters;
29
+ model?: string;
30
+ }
31
+ export interface Provider {
32
+ name: string;
33
+ complete(request: CompletionRequest): Promise<Response>;
34
+ stream(request: CompletionRequest): AsyncIterable<Chunk>;
35
+ }
36
+ export type { StateDefinition, StateParameters, StateBehavior, StateInfo } from '@mindrx/core';
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAErE,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,cAAc,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "mindrx",
3
+ "version": "0.1.0",
4
+ "description": "Cognitive state simulation toolkit for AI agents",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "mindrx": "./dist/cli.js"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc",
22
+ "dev": "tsc --watch",
23
+ "clean": "rm -rf dist",
24
+ "test": "node --test"
25
+ },
26
+ "dependencies": {
27
+ "@mindrx/core": "*",
28
+ "openai": "^4.20.0"
29
+ },
30
+ "devDependencies": {
31
+ "typescript": "^5.3.0",
32
+ "@types/node": "^20.0.0"
33
+ },
34
+ "keywords": [
35
+ "ai",
36
+ "cognitive",
37
+ "simulation",
38
+ "llm",
39
+ "prompt-engineering",
40
+ "chatgpt",
41
+ "openai",
42
+ "ollama"
43
+ ],
44
+ "license": "MIT",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "https://github.com/yourusername/mindrx"
48
+ }
49
+ }