@just-every/ensemble 0.1.15 → 0.1.16

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 CHANGED
@@ -32,6 +32,23 @@ Perhaps most importantly, the ensemble approach future-proofs your application.
32
32
  npm install @just-every/ensemble
33
33
  ```
34
34
 
35
+ ### Migration from OpenAI SDK
36
+
37
+ If you're currently using the OpenAI SDK, migration is simple:
38
+
39
+ ```typescript
40
+ // Before:
41
+ import OpenAI from 'openai';
42
+ const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
43
+
44
+ // After:
45
+ import OpenAIEnsemble from '@just-every/ensemble/openai-compat';
46
+ const client = OpenAIEnsemble;
47
+
48
+ // Your existing code works unchanged!
49
+ const completion = await client.chat.completions.create({ /* ... */ });
50
+ ```
51
+
35
52
  ## Quick Start
36
53
 
37
54
  ```typescript
@@ -488,17 +505,29 @@ if (quotaTracker.canMakeRequest('gpt-4o', 'openai')) {
488
505
  ```typescript
489
506
  import { convertStreamToMessages, chainRequests } from '@just-every/ensemble';
490
507
 
491
- // Convert stream to conversation history
492
- const stream = request('claude-3.5-sonnet', [
493
- { type: 'message', role: 'user', content: 'Write a haiku about coding' }
494
- ]);
508
+ let currentMessages = [
509
+ { type: 'message', role: 'user', content: 'Write a haiku about coding' },
510
+ { type: 'message', role: 'user', content: 'Make it really long' }
511
+ ];
512
+
513
+ let messages = [
514
+ { type: 'message', role: 'developer', content: 'You are a helpful coding assistant' },
515
+ { type: 'message', role: 'user', content: 'How do I center a div in CSS?' },
516
+ ];
517
+ messages = [...messages, ...(await convertStreamToMessages(request('claude-4-sonnet', messages))).messages];
518
+ messages = [...messages, ...(await convertStreamToMessages(request(getModelFromClass('reasoning_mini'), messages))).messages];
519
+ messages = [...messages, ...(await convertStreamToMessages(request('gemini-2.5-flash', messages))).messages];
520
+
495
521
 
496
- const result = await convertStreamToMessages(stream);
497
522
  console.log(result.messages); // Full conversation history
498
523
  console.log(result.fullResponse); // Just the assistant's response
499
524
 
500
525
  // Chain multiple models for multi-step tasks
501
- const analysis = await chainRequests([
526
+ const analysis = await chainRequests(
527
+ [
528
+ { type: 'message', role: 'user', content: codeToAnalyze }
529
+ ],
530
+ [
502
531
  {
503
532
  model: getModelFromClass('code'),
504
533
  systemPrompt: 'Analyze this code for bugs and security issues',
@@ -508,11 +537,9 @@ const analysis = await chainRequests([
508
537
  systemPrompt: 'Prioritize the issues found and suggest fixes',
509
538
  },
510
539
  {
511
- model: 'gpt-4o-mini',
540
+ model: 'gpt-4.1-mini',
512
541
  systemPrompt: 'Summarize the analysis in 3 bullet points',
513
542
  }
514
- ], [
515
- { type: 'message', role: 'user', content: codeToAnalyze }
516
543
  ]);
517
544
  ```
518
545
 
@@ -605,6 +632,55 @@ if (process.env.NODE_ENV === 'development') {
605
632
 
606
633
  ## Advanced Topics
607
634
 
635
+ ### OpenAI SDK Compatibility
636
+
637
+ Ensemble provides a drop-in replacement for the OpenAI SDK, allowing you to use any supported model with OpenAI's familiar API:
638
+
639
+ ```typescript
640
+ import OpenAIEnsemble from '@just-every/ensemble/openai-compat';
641
+ // Or named imports: import { chat, completions } from '@just-every/ensemble';
642
+
643
+ // Replace OpenAI client
644
+ const openai = OpenAIEnsemble; // Instead of: new OpenAI({ apiKey: '...' })
645
+
646
+ // Use exactly like OpenAI SDK - but with any model!
647
+ const completion = await openai.chat.completions.create({
648
+ model: 'claude-3.5-sonnet', // or 'gpt-4o', 'gemini-2.0-flash', etc.
649
+ messages: [
650
+ { role: 'system', content: 'You are a helpful assistant.' },
651
+ { role: 'user', content: 'Hello!' }
652
+ ],
653
+ temperature: 0.7
654
+ });
655
+
656
+ console.log(completion.choices[0].message.content);
657
+
658
+ // Streaming
659
+ const stream = await openai.chat.completions.create({
660
+ model: 'gpt-4o-mini',
661
+ messages: [{ role: 'user', content: 'Tell me a story' }],
662
+ stream: true
663
+ });
664
+
665
+ for await (const chunk of stream) {
666
+ process.stdout.write(chunk.choices[0].delta.content || '');
667
+ }
668
+
669
+ // Legacy completions API also supported
670
+ const legacyCompletion = await openai.completions.create({
671
+ model: 'deepseek-chat',
672
+ prompt: 'Once upon a time',
673
+ max_tokens: 100
674
+ });
675
+ ```
676
+
677
+ This compatibility layer supports:
678
+ - All chat.completions.create parameters (temperature, tools, response_format, etc.)
679
+ - Streaming and non-streaming responses
680
+ - Tool/function calling
681
+ - Legacy completions.create API
682
+ - Proper TypeScript types matching OpenAI's SDK
683
+
608
684
  ### Custom Model Providers
609
685
 
610
686
  ```typescript
package/dist/index.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  export * from './types.js';
2
2
  export { getModelProvider, getProviderFromModel, getModelFromClass, isProviderKeyValid, ModelProvider, EmbedOpts } from './model_providers/model_provider.js';
3
+ export { chat, completions, responses, default as OpenAIEnsemble } from './openai-compat.js';
4
+ export type { ResponsesCreateParams, ResponsesCreateResponse, ResponsesCreateChunk } from './openai-compat.js';
5
+ export type { ChatCompletion, ChatCompletionChunk, ChatCompletionCreateParams, OpenAIMessage, OpenAITool, CompletionCreateParams } from './openai-compat.js';
3
6
  export { registerExternalModel, getExternalModel, getAllExternalModels, getExternalProvider, isExternalModel, clearExternalRegistrations, overrideModelClass, getModelClassOverride } from './external_models.js';
4
7
  export { MODEL_REGISTRY, MODEL_CLASSES, findModel, ModelProviderID, ModelUsage, TieredPrice, TimeBasedPrice, ModelEntry } from './model_data.js';
5
8
  export * from './model_providers/claude.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACZ,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACH,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACb,MAAM,iBAAiB,CAAC;AAIzB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAKtC,eAAO,MAAM,WAAW,+CAAe,CAAC;AACxC,eAAO,MAAM,YAAY,iDAAgB,CAAC;AAG1C,OAAO,KAAK,EACR,cAAc,EACd,aAAa,EAKb,mBAAmB,EAEtB,MAAM,YAAY,CAAC;AAuFpB,wBAAuB,OAAO,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,cAAmB,GAC7B,cAAc,CAAC,mBAAmB,CAAC,CAyLrC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACZ,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7F,YAAY,EACR,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACvB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACR,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,EACb,UAAU,EACV,sBAAsB,EACzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACH,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACb,MAAM,iBAAiB,CAAC;AAIzB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAKtC,eAAO,MAAM,WAAW,+CAAe,CAAC;AACxC,eAAO,MAAM,YAAY,iDAAgB,CAAC;AAG1C,OAAO,KAAK,EACR,cAAc,EACd,aAAa,EAKb,mBAAmB,EAEtB,MAAM,YAAY,CAAC;AAuFpB,wBAAuB,OAAO,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,cAAmB,GAC7B,cAAc,CAAC,mBAAmB,CAAC,CAyLrC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './types.js';
2
2
  export { getModelProvider, getProviderFromModel, getModelFromClass, isProviderKeyValid } from './model_providers/model_provider.js';
3
+ export { chat, completions, responses, default as OpenAIEnsemble } from './openai-compat.js';
3
4
  export { registerExternalModel, getExternalModel, getAllExternalModels, getExternalProvider, isExternalModel, clearExternalRegistrations, overrideModelClass, getModelClassOverride } from './external_models.js';
4
5
  export { MODEL_REGISTRY, MODEL_CLASSES, findModel } from './model_data.js';
5
6
  export * from './model_providers/claude.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAGrB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAkB7F,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACH,cAAc,EACd,aAAa,EACb,SAAS,EAMZ,MAAM,iBAAiB,CAAC;AAIzB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAa1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE,SAAS,YAAY,CAAC,KAAU;IAC5B,OAAO,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACnF,CAAC;AAGD,SAAS,iBAAiB,CAAC,KAAU;IACjC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC;AAC3F,CAAC;AAGD,MAAM,YAAY;IACd,QAAQ,CAAS;IACjB,aAAa,CAAiB;IAC9B,UAAU,CAAgB;IAClB,KAAK,CAAiB;IAC9B,YAAY,OAAuB;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACJ;AA2DD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,OAAO,CAC1B,KAAa,EACb,QAAuB,EACvB,UAA0B,EAAE;IAE5B,MAAM,EACF,YAAY,GAAG,EAAE,EACjB,eAAe,EACf,GAAG,cAAc,EACpB,GAAG,OAAO,CAAC;IAEZ,IAAI,eAAe,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IACpC,IAAI,aAAa,GAAG,CAAC,CAAC;IAGtB,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,kBAAkB,GAAe,EAAE,CAAC;QAC1C,MAAM,WAAW,GAA2D,EAAE,CAAC;QAC/E,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,cAAc,GAAG,EAAE,CAAC;QAGxB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;QAG/C,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAY,CAAC,CAAC;QAEnF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAE/B,MAAM,KAAK,CAAC;YAEZ,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACtB,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3B,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;wBAC/B,UAAU,GAAG,IAAI,CAAC;wBAGlB,eAAe,CAAC,IAAI,CAAC;4BACjB,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,MAAM,EAAE,WAAW;yBACtB,CAAC,CAAC;oBACP,CAAC;oBACD,MAAM;gBACV,CAAC;gBAED,KAAK,YAAY,CAAC,CAAC,CAAC;oBAEhB,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;wBAEtB,kBAAkB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;wBAG7C,IAAI,eAAe,EAAE,CAAC;4BAClB,IAAI,CAAC;gCACD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gCAGxD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oCACvC,CAAC,CAAC,OAAO;oCACT,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gCAGhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oCAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oCACrC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;oCAElD,WAAW,CAAC,IAAI,CAAC;wCACb,EAAE,EAAE,QAAQ,CAAC,EAAE;wCACf,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;wCACxC,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ;4CAC9B,CAAC,CAAC,MAAM;4CACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;qCAC/B,CAAC,CAAC;gCACP,CAAC;4BACL,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCAEb,MAAM,WAAW,GAAG;oCAChB,KAAK,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iCAC5F,CAAC;gCAEF,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oCACtC,WAAW,CAAC,IAAI,CAAC;wCACb,EAAE,EAAE,QAAQ,CAAC,EAAE;wCACf,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;wCACxC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;qCACtC,CAAC,CAAC;gCACP,CAAC;4BACL,CAAC;wBACL,CAAC;6BAAM,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;4BAE9B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gCACtC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAC7D,CAAC;gCAEF,IAAI,IAAI,EAAE,CAAC;oCACP,IAAI,CAAC;wCAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS;4CACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;4CACzC,CAAC,CAAC,EAAE,CAAC;wCAGT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wCAEzC,WAAW,CAAC,IAAI,CAAC;4CACb,EAAE,EAAE,QAAQ,CAAC,EAAE;4CACf,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;4CACxC,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ;gDAC9B,CAAC,CAAC,MAAM;gDACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;yCAC/B,CAAC,CAAC;oCACP,CAAC;oCAAC,OAAO,KAAK,EAAE,CAAC;wCACb,WAAW,CAAC,IAAI,CAAC;4CACb,EAAE,EAAE,QAAQ,CAAC,EAAE;4CACf,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;4CACxC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;gDACnB,KAAK,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;6CAC5F,CAAC;yCACL,CAAC,CAAC;oCACP,CAAC;gCACL,CAAC;qCAAM,CAAC;oCACJ,WAAW,CAAC,IAAI,CAAC;wCACb,EAAE,EAAE,QAAQ,CAAC,EAAE;wCACf,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;wCACxC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;4CACnB,KAAK,EAAE,QAAQ,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY;yCACpD,CAAC;qCACL,CAAC,CAAC;gCACP,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;oBACD,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QAGD,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAyB,CAAC;YACzF,MAAM;QACV,CAAC;QAGD,aAAa,EAAE,CAAC;QAChB,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM;gBACF,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,IAAI,KAAK,CAAC,uBAAuB,YAAY,WAAW,CAAC;gBAChE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACf,CAAC;YACzB,MAAM;QACV,CAAC;QAGD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAExC,eAAe,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;gBACxC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gBAC5B,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;aACzC,CAAC,CAAC;YAGH,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAChC,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,CAClD,CAAC;YAEF,IAAI,MAAM,EAAE,CAAC;gBACT,eAAe,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,sBAAsB;oBAC5B,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;oBACxC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;oBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;iBACxB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IAIL,CAAC;AACL,CAAC"}
@@ -0,0 +1,79 @@
1
+ import OpenAI from 'openai';
2
+ export type OpenAIMessage = OpenAI.Chat.ChatCompletionMessageParam;
3
+ export type OpenAITool = OpenAI.Chat.ChatCompletionTool;
4
+ export type ChatCompletion = OpenAI.Chat.ChatCompletion;
5
+ export type ChatCompletionChunk = OpenAI.Chat.ChatCompletionChunk;
6
+ export type ChatCompletionCreateParams = OpenAI.Chat.ChatCompletionCreateParams;
7
+ export type CompletionCreateParams = OpenAI.Completions.CompletionCreateParams;
8
+ export declare const chat: {
9
+ completions: {
10
+ create(params: OpenAI.Chat.ChatCompletionCreateParams): Promise<OpenAI.Chat.ChatCompletion | AsyncIterable<OpenAI.Chat.ChatCompletionChunk>>;
11
+ };
12
+ };
13
+ export interface ResponsesCreateParams {
14
+ model: string;
15
+ input: string | OpenAI.Chat.ChatCompletionMessageParam[];
16
+ instructions?: string;
17
+ previous_response_id?: string;
18
+ tools?: Array<{
19
+ name: 'web_search' | 'file_search' | 'computer_use' | string;
20
+ config?: Record<string, any>;
21
+ }>;
22
+ temperature?: number;
23
+ max_tokens?: number;
24
+ stream?: boolean;
25
+ metadata?: Record<string, any>;
26
+ }
27
+ export interface ResponsesCreateResponse {
28
+ id: string;
29
+ object: 'response';
30
+ created: number;
31
+ model: string;
32
+ content: string;
33
+ tool_uses?: Array<{
34
+ name: string;
35
+ input: any;
36
+ output: any;
37
+ }>;
38
+ usage: {
39
+ prompt_tokens: number;
40
+ completion_tokens: number;
41
+ total_tokens: number;
42
+ };
43
+ metadata?: Record<string, any>;
44
+ }
45
+ export interface ResponsesCreateChunk {
46
+ id: string;
47
+ object: 'response.chunk';
48
+ created: number;
49
+ delta: {
50
+ content?: string;
51
+ tool_uses?: Array<{
52
+ index: number;
53
+ name?: string;
54
+ input?: string;
55
+ output?: string;
56
+ }>;
57
+ };
58
+ }
59
+ export declare const responses: {
60
+ create(params: ResponsesCreateParams): Promise<ResponsesCreateResponse | AsyncIterable<ResponsesCreateChunk>>;
61
+ };
62
+ export declare const completions: {
63
+ create(params: OpenAI.Completions.CompletionCreateParams): Promise<any>;
64
+ };
65
+ declare const OpenAIEnsemble: {
66
+ chat: {
67
+ completions: {
68
+ create(params: OpenAI.Chat.ChatCompletionCreateParams): Promise<OpenAI.Chat.ChatCompletion | AsyncIterable<OpenAI.Chat.ChatCompletionChunk>>;
69
+ };
70
+ };
71
+ completions: {
72
+ create(params: OpenAI.Completions.CompletionCreateParams): Promise<any>;
73
+ };
74
+ responses: {
75
+ create(params: ResponsesCreateParams): Promise<ResponsesCreateResponse | AsyncIterable<ResponsesCreateChunk>>;
76
+ };
77
+ };
78
+ export default OpenAIEnsemble;
79
+ //# sourceMappingURL=openai-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-compat.d.ts","sourceRoot":"","sources":["../openai-compat.ts"],"names":[],"mappings":"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"}