@simulacra-ai/openai 0.0.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/README.md ADDED
@@ -0,0 +1,42 @@
1
+ # Simulacra OpenAI Provider
2
+
3
+ OpenAI provider for the Simulacra conversation engine.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @simulacra-ai/core @simulacra-ai/openai openai
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { Conversation } from "@simulacra-ai/core";
15
+ import { OpenAIProvider } from "@simulacra-ai/openai";
16
+ import OpenAI from "openai";
17
+
18
+ const provider = new OpenAIProvider(new OpenAI(), { model: MODEL_NAME });
19
+ const conversation = new Conversation(provider);
20
+ ```
21
+
22
+ ### OpenAIProviderConfig
23
+
24
+ ```typescript
25
+ interface OpenAIProviderConfig {
26
+ model: string;
27
+ max_tokens?: number;
28
+ }
29
+ ```
30
+
31
+ Additional properties (`temperature`, `top_p`, etc.) spread into the API request.
32
+
33
+ ## System Prompt Handling
34
+
35
+ The provider automatically selects the correct system message role based on the model:
36
+
37
+ - **GPT models** (`gpt-*`): uses `role: "system"`
38
+ - **Other models** (o1, o3, etc.): uses `role: "developer"`
39
+
40
+ ## License
41
+
42
+ MIT
@@ -0,0 +1,2 @@
1
+ export { OpenAIProvider, type OpenAIProviderConfig } from "./openai-provider.ts";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { OpenAIProvider } from "./openai-provider.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA6B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { OpenAI } from "openai";
2
+ import type { CancellationToken, ModelProvider, ModelRequest, ProviderContextTransformer, StreamReceiver } from "@simulacra-ai/core";
3
+ /**
4
+ * Configuration options for the OpenAI provider.
5
+ */
6
+ export interface OpenAIProviderConfig extends Record<string, unknown> {
7
+ /** The model identifier to use (e.g., "gpt-4", "o1-preview"). */
8
+ model: string;
9
+ /** The maximum number of tokens to generate in the response. */
10
+ max_tokens?: number;
11
+ }
12
+ /**
13
+ * Model provider implementation for OpenAI's chat completion models.
14
+ *
15
+ * This provider wraps the OpenAI SDK to provide streaming completions with support
16
+ * for tool use and function calling. It handles message formatting, content streaming,
17
+ * and usage tracking according to the ModelProvider interface. Supports both GPT models
18
+ * (using system messages) and O-series models (using developer messages).
19
+ */
20
+ export declare class OpenAIProvider implements ModelProvider {
21
+ #private;
22
+ readonly context_transformers: ProviderContextTransformer[];
23
+ /**
24
+ * Creates a new OpenAI provider instance.
25
+ *
26
+ * @param sdk - The initialized OpenAI SDK client.
27
+ * @param config - Configuration options for the provider.
28
+ * @param context_transformers - Provider-level context transformers.
29
+ */
30
+ constructor(sdk: OpenAI, config: OpenAIProviderConfig, context_transformers?: ProviderContextTransformer[]);
31
+ /**
32
+ * Executes a model request and streams the response through the provided receiver.
33
+ *
34
+ * @param request - The request containing messages, tools, and system prompt.
35
+ * @param receiver - The receiver that handles streaming events.
36
+ * @param cancellation - Token to signal cancellation of the request.
37
+ * @returns A promise that resolves when the request completes.
38
+ */
39
+ execute_request(request: ModelRequest, receiver: StreamReceiver, cancellation: CancellationToken): Promise<void>;
40
+ /**
41
+ * Creates a clone of this provider with the same configuration.
42
+ *
43
+ * @returns A new provider instance with identical configuration.
44
+ */
45
+ clone(): ModelProvider;
46
+ }
47
+ //# sourceMappingURL=openai-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../src/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAGV,iBAAiB,EAIjB,aAAa,EACb,YAAY,EAEZ,0BAA0B,EAC1B,cAAc,EAIf,MAAM,oBAAoB,CAAC;AAI5B;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnE,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,aAAa;;IAGlD,QAAQ,CAAC,oBAAoB,EAAE,0BAA0B,EAAE,CAAC;IAE5D;;;;;;OAMG;gBAED,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,oBAAoB,EAC5B,oBAAoB,GAAE,0BAA0B,EAAO;IAOzD;;;;;;;OAOG;IACG,eAAe,CACnB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,iBAAiB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;OAIG;IACH,KAAK,IAAI,aAAa;CAgJvB"}
@@ -0,0 +1,582 @@
1
+ /**
2
+ * Model provider implementation for OpenAI's chat completion models.
3
+ *
4
+ * This provider wraps the OpenAI SDK to provide streaming completions with support
5
+ * for tool use and function calling. It handles message formatting, content streaming,
6
+ * and usage tracking according to the ModelProvider interface. Supports both GPT models
7
+ * (using system messages) and O-series models (using developer messages).
8
+ */
9
+ export class OpenAIProvider {
10
+ #sdk;
11
+ #config;
12
+ context_transformers;
13
+ /**
14
+ * Creates a new OpenAI provider instance.
15
+ *
16
+ * @param sdk - The initialized OpenAI SDK client.
17
+ * @param config - Configuration options for the provider.
18
+ * @param context_transformers - Provider-level context transformers.
19
+ */
20
+ constructor(sdk, config, context_transformers = []) {
21
+ this.#sdk = sdk;
22
+ this.#config = config;
23
+ this.context_transformers = context_transformers;
24
+ }
25
+ /**
26
+ * Executes a model request and streams the response through the provided receiver.
27
+ *
28
+ * @param request - The request containing messages, tools, and system prompt.
29
+ * @param receiver - The receiver that handles streaming events.
30
+ * @param cancellation - Token to signal cancellation of the request.
31
+ * @returns A promise that resolves when the request completes.
32
+ */
33
+ async execute_request(request, receiver, cancellation) {
34
+ const { model, max_tokens, ...api_extras } = this.#config;
35
+ const params = {
36
+ ...api_extras,
37
+ model,
38
+ stream: true,
39
+ max_tokens,
40
+ ...(request.tools.length > 0
41
+ ? {
42
+ tool_choice: "auto",
43
+ tools: request.tools.map((t) => to_openai_tool(t)),
44
+ }
45
+ : {}),
46
+ messages: [
47
+ ...get_system_context(model, request.system),
48
+ ...request.messages.flatMap((m) => to_openai_messages(m)),
49
+ ],
50
+ stream_options: {
51
+ include_usage: true,
52
+ },
53
+ };
54
+ receiver.before_request({ params });
55
+ receiver.request_raw(params);
56
+ const stream = await this.#sdk.chat.completions.create(params);
57
+ // Intentionally not awaited. Streaming is event-driven through the receiver.
58
+ // The policy wraps only connection establishment; chunk processing flows
59
+ // asynchronously via StreamListener events back to the conversation.
60
+ this.#stream_response(stream, receiver, cancellation);
61
+ }
62
+ /**
63
+ * Creates a clone of this provider with the same configuration.
64
+ *
65
+ * @returns A new provider instance with identical configuration.
66
+ */
67
+ clone() {
68
+ return new OpenAIProvider(this.#sdk, this.#config, this.context_transformers);
69
+ }
70
+ async #stream_response(stream, receiver, cancellation) {
71
+ try {
72
+ let response;
73
+ for await (const response_chunk of stream) {
74
+ if (cancellation.is_cancellation_requested) {
75
+ receiver.cancel();
76
+ return;
77
+ }
78
+ receiver.stream_raw(response_chunk);
79
+ const { choices: choices_chunk, ...rest } = response_chunk;
80
+ response = {
81
+ ...response,
82
+ ...rest,
83
+ choices: response?.choices ?? [],
84
+ };
85
+ for (const choice_chunk of choices_chunk) {
86
+ if (!response.choices[choice_chunk.index]) {
87
+ response.choices[choice_chunk.index] = choice_chunk;
88
+ const message = from_openai_completion(response_chunk, choice_chunk);
89
+ for (const content of message.content) {
90
+ receiver.start_content({ content, message, usage: {} });
91
+ }
92
+ receiver.start_message({ message, usage: {} });
93
+ continue;
94
+ }
95
+ const { delta: delta_chunk, ...rest } = choice_chunk;
96
+ const choice = (response.choices[choice_chunk.index] = {
97
+ ...response.choices[choice_chunk.index],
98
+ ...rest,
99
+ delta: {
100
+ ...response.choices[choice_chunk.index]?.delta,
101
+ },
102
+ });
103
+ if (delta_chunk.role) {
104
+ choice.delta.role = delta_chunk.role;
105
+ }
106
+ if (delta_chunk.refusal) {
107
+ if (!choice.delta.refusal) {
108
+ choice.delta.refusal = "";
109
+ }
110
+ choice.delta.refusal += delta_chunk.refusal;
111
+ }
112
+ if (delta_chunk.content) {
113
+ if (!choice.delta.content) {
114
+ choice.delta.content = delta_chunk.content;
115
+ receiver.start_content({
116
+ content: from_openai_content(choice.delta),
117
+ message: from_openai_completion(response_chunk, choice),
118
+ usage: response?.usage ? from_openai_usage(response.usage) : {},
119
+ });
120
+ receiver.update_message({
121
+ message: from_openai_completion(response_chunk, choice),
122
+ usage: response?.usage ? from_openai_usage(response.usage) : {},
123
+ });
124
+ }
125
+ else {
126
+ choice.delta.content += delta_chunk.content;
127
+ receiver.update_content({
128
+ content: from_openai_content(choice.delta),
129
+ message: from_openai_completion(response_chunk, choice),
130
+ usage: response?.usage ? from_openai_usage(response.usage) : {},
131
+ });
132
+ }
133
+ }
134
+ if (delta_chunk.tool_calls) {
135
+ if (!choice.delta.tool_calls) {
136
+ choice.delta.tool_calls = [];
137
+ }
138
+ for (const tool_call_chunk of delta_chunk.tool_calls) {
139
+ if (!choice.delta.tool_calls[tool_call_chunk.index]) {
140
+ choice.delta.tool_calls[tool_call_chunk.index] = tool_call_chunk;
141
+ receiver.start_content({
142
+ content: from_openai_tool_call(tool_call_chunk),
143
+ message: from_openai_completion(response_chunk, choice),
144
+ usage: response?.usage ? from_openai_usage(response.usage) : {},
145
+ });
146
+ receiver.update_message({
147
+ message: from_openai_completion(response_chunk, choice),
148
+ usage: response?.usage ? from_openai_usage(response.usage) : {},
149
+ });
150
+ }
151
+ else {
152
+ const tool_call = choice.delta.tool_calls[tool_call_chunk.index];
153
+ if (tool_call_chunk.id) {
154
+ tool_call.id = tool_call_chunk.id;
155
+ }
156
+ if (tool_call_chunk.type) {
157
+ tool_call.type = tool_call_chunk.type;
158
+ }
159
+ if (tool_call_chunk.function) {
160
+ if (!tool_call.function) {
161
+ tool_call.function = tool_call_chunk.function;
162
+ }
163
+ else {
164
+ if (tool_call_chunk.function.name) {
165
+ tool_call.function.name = tool_call_chunk.function.name;
166
+ }
167
+ if (tool_call_chunk.function.arguments) {
168
+ if (!tool_call.function.arguments) {
169
+ tool_call.function.arguments = "";
170
+ }
171
+ tool_call.function.arguments += tool_call_chunk.function.arguments;
172
+ }
173
+ }
174
+ }
175
+ receiver.update_content({
176
+ content: from_openai_tool_call(tool_call),
177
+ message: from_openai_completion(response_chunk, choice),
178
+ usage: response?.usage ? from_openai_usage(response.usage) : {},
179
+ });
180
+ receiver.update_message({
181
+ message: from_openai_completion(response_chunk, choice),
182
+ usage: response?.usage ? from_openai_usage(response.usage) : {},
183
+ });
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+ if (!response || !response.choices?.[0]) {
190
+ throw new Error("no data");
191
+ }
192
+ receiver.response_raw({ ...response });
193
+ const message = from_openai_completion(response, response.choices[0]);
194
+ const usage = response?.usage ? from_openai_usage(response.usage) : {};
195
+ for (const content of message.content) {
196
+ receiver.complete_content({ content, message, usage });
197
+ }
198
+ receiver.complete_message({ message, usage, ...map_stop_reason(response) });
199
+ }
200
+ catch (error) {
201
+ receiver.error(error);
202
+ }
203
+ }
204
+ }
205
+ function get_system_context(model, system) {
206
+ if (!system) {
207
+ return [];
208
+ }
209
+ if (model.startsWith("gpt")) {
210
+ return [
211
+ {
212
+ role: "system",
213
+ content: system,
214
+ },
215
+ ];
216
+ }
217
+ return [
218
+ {
219
+ role: "developer",
220
+ content: system,
221
+ },
222
+ ];
223
+ }
224
+ function to_openai_tool(tool) {
225
+ function map_parameter_type(parameter) {
226
+ switch (parameter.type) {
227
+ case "object":
228
+ return {
229
+ type: parameter.required ? parameter.type : [parameter.type, "null"],
230
+ description: parameter.description,
231
+ properties: Object.fromEntries(Object.entries(parameter.properties).map(([k, v]) => [k, map_parameter_type(v)])),
232
+ additionalProperties: false,
233
+ required: Object.entries(parameter.properties).map(([k]) => k),
234
+ };
235
+ case "array":
236
+ return {
237
+ type: parameter.required ? parameter.type : [parameter.type, "null"],
238
+ description: parameter.description,
239
+ items: map_parameter_type(parameter.items),
240
+ };
241
+ default:
242
+ return {
243
+ type: parameter.required ? parameter.type : [parameter.type, "null"],
244
+ description: parameter.default !== undefined
245
+ ? parameter.description
246
+ ? `${parameter.description} (default: ${parameter.default})`
247
+ : `default: ${parameter.default}`
248
+ : parameter.description,
249
+ enum: "enum" in parameter ? parameter.enum : undefined,
250
+ };
251
+ }
252
+ }
253
+ return {
254
+ type: "function",
255
+ function: {
256
+ name: tool.name,
257
+ description: tool.description,
258
+ parameters: map_parameter_type({
259
+ type: "object",
260
+ required: true,
261
+ properties: Object.fromEntries(tool.parameters.map(({ name, ...parameter }) => [name, parameter])),
262
+ }),
263
+ strict: true,
264
+ },
265
+ };
266
+ }
267
+ function from_openai_completion(completion, choice) {
268
+ let contents = [];
269
+ for (const k in choice.delta) {
270
+ const key = k;
271
+ if (key === "role") {
272
+ continue;
273
+ }
274
+ if (key === "content" && choice.delta.content) {
275
+ contents = [...contents, from_openai_content(choice.delta)];
276
+ }
277
+ else if (key === "refusal" && choice.delta.refusal) {
278
+ contents = [...contents, from_openai_refusal(choice.delta)];
279
+ }
280
+ else if (key === "tool_calls" && choice.delta.tool_calls) {
281
+ contents = [...contents, ...choice.delta.tool_calls.map((t) => from_openai_tool_call(t))];
282
+ }
283
+ else if (choice.delta[key] !== undefined && choice.delta[key] !== null) {
284
+ const { [key]: data } = choice.delta;
285
+ contents = [
286
+ ...contents,
287
+ {
288
+ type: "raw",
289
+ model_kind: "openai",
290
+ data: JSON.stringify({ [key]: data }),
291
+ },
292
+ ];
293
+ }
294
+ }
295
+ return {
296
+ id: completion.id,
297
+ timestamp: completion.created,
298
+ role: map_role(choice),
299
+ content: contents,
300
+ };
301
+ }
302
+ function from_openai_refusal(content) {
303
+ const { refusal, tool_calls: _, function_call: __, content: ___, role: ____, ...rest } = content;
304
+ return {
305
+ type: "text",
306
+ text: refusal,
307
+ extended: {
308
+ ...rest,
309
+ openai_refusal: true,
310
+ },
311
+ };
312
+ }
313
+ function from_openai_content(content) {
314
+ const { content: c, tool_calls: _, function_call: __, refusal: ___, role: ____, ...rest } = content;
315
+ return {
316
+ type: "text",
317
+ text: c,
318
+ extended: rest,
319
+ };
320
+ }
321
+ function from_openai_tool_call(tool_call) {
322
+ const { id: tool_request_id, function: fn, type: _, index: __, ...extended } = tool_call;
323
+ let params;
324
+ try {
325
+ params = JSON.parse(fn?.arguments ?? "{}");
326
+ }
327
+ catch {
328
+ params = fn?.arguments;
329
+ }
330
+ return {
331
+ tool_request_id,
332
+ type: "tool",
333
+ tool: fn?.name,
334
+ params,
335
+ extended,
336
+ };
337
+ }
338
+ function to_openai_messages(message) {
339
+ if (message.role === "assistant") {
340
+ return [to_openai_assistant_message(message)];
341
+ }
342
+ // Partition content so tool_result blocks come before non-tool_result blocks.
343
+ // OpenAI requires all tool-role messages immediately after the assistant message
344
+ // containing the corresponding tool_calls; interleaving user messages between
345
+ // tool messages causes a validation error.
346
+ const tool_result_content = message.content.filter((c) => c.type === "tool_result");
347
+ const other_content = message.content.filter((c) => c.type !== "tool_result");
348
+ const ordered_content = [...tool_result_content, ...other_content];
349
+ const results = [];
350
+ let result;
351
+ for (const content of ordered_content) {
352
+ if (content.type === "text") {
353
+ if (!result) {
354
+ result = {
355
+ role: "user",
356
+ content: content.text,
357
+ };
358
+ }
359
+ else if (result.role === "tool") {
360
+ results.push(result);
361
+ result = {
362
+ role: "user",
363
+ content: content.text,
364
+ };
365
+ }
366
+ else {
367
+ if (typeof result.content === "string") {
368
+ result.content = [
369
+ {
370
+ type: "text",
371
+ text: result.content,
372
+ },
373
+ ];
374
+ }
375
+ if (!result.content) {
376
+ result.content = [
377
+ {
378
+ type: "text",
379
+ text: content.text,
380
+ },
381
+ ];
382
+ }
383
+ else {
384
+ result.content.push({
385
+ type: "text",
386
+ text: content.text,
387
+ });
388
+ }
389
+ }
390
+ }
391
+ else if (content.type === "tool_result") {
392
+ if (!result) {
393
+ result = {
394
+ role: "tool",
395
+ tool_call_id: content.tool_request_id,
396
+ content: JSON.stringify(content.result),
397
+ };
398
+ }
399
+ else if (result.role !== "tool" || result.tool_call_id !== content.tool_request_id) {
400
+ results.push(result);
401
+ result = {
402
+ role: "tool",
403
+ tool_call_id: content.tool_request_id,
404
+ content: JSON.stringify(content.result),
405
+ };
406
+ }
407
+ else {
408
+ if (typeof result.content === "string") {
409
+ result.content = [
410
+ {
411
+ type: "text",
412
+ text: result.content,
413
+ },
414
+ ];
415
+ }
416
+ result.content.push({
417
+ type: "text",
418
+ text: JSON.stringify(content.result),
419
+ });
420
+ }
421
+ }
422
+ else if (content.type === "raw") {
423
+ result = {
424
+ ...(result ?? {}),
425
+ ...JSON.parse(content.data),
426
+ };
427
+ }
428
+ }
429
+ if (result) {
430
+ results.push(result);
431
+ }
432
+ return results;
433
+ }
434
+ function to_openai_assistant_message(message) {
435
+ let result = {
436
+ role: "assistant",
437
+ };
438
+ for (const content of message.content) {
439
+ switch (content.type) {
440
+ case "text":
441
+ if (content.extended && content.extended.openai_refusal === true) {
442
+ result.refusal = content.text;
443
+ }
444
+ else {
445
+ if (typeof result.content === "string") {
446
+ result.content = [
447
+ {
448
+ type: "text",
449
+ text: result.content,
450
+ },
451
+ ];
452
+ }
453
+ if (!result.content) {
454
+ result.content = content.text;
455
+ }
456
+ else {
457
+ result.content.push({
458
+ type: "text",
459
+ text: content.text,
460
+ });
461
+ }
462
+ }
463
+ break;
464
+ case "tool":
465
+ if (!result.tool_calls) {
466
+ result.tool_calls = [];
467
+ }
468
+ result.tool_calls.push({
469
+ id: content.tool_request_id,
470
+ type: "function",
471
+ function: {
472
+ name: content.tool,
473
+ arguments: JSON.stringify(content.params),
474
+ },
475
+ });
476
+ break;
477
+ case "raw":
478
+ if (content.model_kind !== "openai") {
479
+ if (typeof result.content === "string") {
480
+ result.content = [
481
+ {
482
+ type: "text",
483
+ text: result.content,
484
+ },
485
+ ];
486
+ }
487
+ if (!result.content) {
488
+ result.content = content.data;
489
+ }
490
+ else {
491
+ result.content.push({
492
+ type: "text",
493
+ text: content.data,
494
+ });
495
+ }
496
+ break;
497
+ }
498
+ result = {
499
+ ...result,
500
+ ...JSON.parse(content.data),
501
+ };
502
+ break;
503
+ case "thinking":
504
+ if (typeof result.content === "string") {
505
+ result.content = [
506
+ {
507
+ type: "text",
508
+ text: result.content,
509
+ },
510
+ ];
511
+ }
512
+ if (!result.content) {
513
+ result.content = content.thought;
514
+ }
515
+ else {
516
+ result.content.push({
517
+ type: "text",
518
+ text: content.thought,
519
+ });
520
+ }
521
+ break;
522
+ default:
523
+ throw new Error("unexpected content type");
524
+ }
525
+ }
526
+ return result;
527
+ }
528
+ function from_openai_usage(usage) {
529
+ return {
530
+ input_tokens: usage?.prompt_tokens,
531
+ output_tokens: usage?.completion_tokens,
532
+ };
533
+ }
534
+ function map_stop_reason(completion) {
535
+ for (const choice of completion.choices) {
536
+ switch (choice.finish_reason) {
537
+ case "content_filter":
538
+ return {
539
+ stop_reason: "error",
540
+ stop_details: choice.finish_reason,
541
+ };
542
+ case "function_call":
543
+ return {
544
+ stop_reason: "tool_use",
545
+ };
546
+ case "length":
547
+ return {
548
+ stop_reason: "max_tokens",
549
+ };
550
+ case "stop":
551
+ return {
552
+ stop_reason: "end_turn",
553
+ };
554
+ case "tool_calls":
555
+ return {
556
+ stop_reason: "tool_use",
557
+ };
558
+ default:
559
+ return {
560
+ stop_reason: "other",
561
+ stop_details: `${choice.finish_reason}`,
562
+ };
563
+ }
564
+ }
565
+ return {
566
+ stop_reason: "other",
567
+ };
568
+ }
569
+ function map_role(choice) {
570
+ switch (choice.delta.role) {
571
+ case "user":
572
+ case "developer":
573
+ case "system":
574
+ return "user";
575
+ case "assistant":
576
+ case "tool":
577
+ return "assistant";
578
+ default:
579
+ throw new Error("invalid role");
580
+ }
581
+ }
582
+ //# sourceMappingURL=openai-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../src/openai-provider.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@simulacra-ai/openai",
3
+ "version": "0.0.1",
4
+ "description": "OpenAI provider for the Simulacra conversation engine",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "default": "./dist/index.js"
10
+ }
11
+ },
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc -p tsconfig.json",
17
+ "clean": "rm -rf dist *.tsbuildinfo"
18
+ },
19
+ "peerDependencies": {
20
+ "@simulacra-ai/core": "0.0.1",
21
+ "openai": ">=4.0.0 <7.0.0"
22
+ },
23
+ "license": "MIT"
24
+ }