@holokai/holo-provider-openai 0.1.4 → 1.0.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.
Files changed (68) hide show
  1. package/README.md +87 -70
  2. package/dist/manifest.d.ts +2 -2
  3. package/dist/manifest.d.ts.map +1 -1
  4. package/dist/manifest.js +2 -156
  5. package/dist/manifest.js.map +1 -1
  6. package/dist/openai.auditor.d.ts +5 -3
  7. package/dist/openai.auditor.d.ts.map +1 -1
  8. package/dist/openai.auditor.js +8 -7
  9. package/dist/openai.auditor.js.map +1 -1
  10. package/dist/openai.provider.d.ts +15 -7
  11. package/dist/openai.provider.d.ts.map +1 -1
  12. package/dist/openai.provider.js +23 -15
  13. package/dist/openai.provider.js.map +1 -1
  14. package/dist/openai.response.factory.d.ts +3 -2
  15. package/dist/openai.response.factory.d.ts.map +1 -1
  16. package/dist/openai.response.factory.js +3 -3
  17. package/dist/openai.response.factory.js.map +1 -1
  18. package/dist/openai.translator.d.ts +2 -2
  19. package/dist/openai.translator.d.ts.map +1 -1
  20. package/dist/openai.wire.adapter.d.ts +3 -1
  21. package/dist/openai.wire.adapter.d.ts.map +1 -1
  22. package/dist/openai.wire.adapter.js +1 -1
  23. package/dist/openai.wire.adapter.js.map +1 -1
  24. package/dist/plugin.d.ts +7 -6
  25. package/dist/plugin.d.ts.map +1 -1
  26. package/dist/plugin.js +7 -1
  27. package/dist/plugin.js.map +1 -1
  28. package/dist/services/openai.chatcompletions.service.d.ts +1 -1
  29. package/dist/services/openai.chatcompletions.service.d.ts.map +1 -1
  30. package/dist/translators/openai.chatcompletion.request.translators.d.ts +2 -1
  31. package/dist/translators/openai.chatcompletion.request.translators.d.ts.map +1 -1
  32. package/dist/translators/openai.chatcompletion.request.translators.js +2 -1
  33. package/dist/translators/openai.chatcompletion.request.translators.js.map +1 -1
  34. package/dist/translators/openai.chatcompletion.response.translators.d.ts +1 -1
  35. package/dist/translators/openai.chatcompletion.response.translators.d.ts.map +1 -1
  36. package/dist/translators/openai.chatcompletion.response.translators.js.map +1 -1
  37. package/dist/translators/openai.content.translators.d.ts +1 -1
  38. package/dist/translators/openai.content.translators.d.ts.map +1 -1
  39. package/dist/translators/openai.message.translators.d.ts +1 -1
  40. package/dist/translators/openai.message.translators.d.ts.map +1 -1
  41. package/dist/translators/openai.message.translators.js.map +1 -1
  42. package/dist/translators/openai.response.message.translators.d.ts +1 -1
  43. package/dist/translators/openai.response.message.translators.d.ts.map +1 -1
  44. package/dist/translators/openai.response.message.translators.js.map +1 -1
  45. package/dist/translators/openai.responses.request.translators.d.ts +1 -1
  46. package/dist/translators/openai.responses.request.translators.d.ts.map +1 -1
  47. package/dist/translators/openai.responses.request.translators.js.map +1 -1
  48. package/dist/translators/openai.tool.translators.d.ts +1 -1
  49. package/dist/translators/openai.tool.translators.d.ts.map +1 -1
  50. package/dist/translators/openai.tool.translators.js.map +1 -1
  51. package/dist/translators/openai.usage.translators.d.ts +1 -1
  52. package/dist/translators/openai.usage.translators.d.ts.map +1 -1
  53. package/dist/translators/openai.usage.translators.js.map +1 -1
  54. package/dist/translators/streaming/openai.content.delta.translator.d.ts +1 -1
  55. package/dist/translators/streaming/openai.content.delta.translator.d.ts.map +1 -1
  56. package/dist/translators/streaming/openai.content.delta.translator.js.map +1 -1
  57. package/dist/translators/streaming/openai.message.delta.translator.d.ts +1 -1
  58. package/dist/translators/streaming/openai.message.delta.translator.d.ts.map +1 -1
  59. package/dist/translators/streaming/openai.message.delta.translator.js.map +1 -1
  60. package/dist/translators/streaming/openai.message.start.translator.d.ts +1 -1
  61. package/dist/translators/streaming/openai.message.start.translator.d.ts.map +1 -1
  62. package/dist/translators/streaming/openai.message.start.translator.js.map +1 -1
  63. package/dist/translators/streaming/openai.message.stop.translator.d.ts +1 -1
  64. package/dist/translators/streaming/openai.message.stop.translator.d.ts.map +1 -1
  65. package/dist/translators/streaming/openai.message.stop.translator.js.map +1 -1
  66. package/dist/translators/streaming/openai.stream.translator.d.ts +1 -1
  67. package/dist/translators/streaming/openai.stream.translator.d.ts.map +1 -1
  68. package/package.json +2 -2
package/README.md CHANGED
@@ -9,7 +9,9 @@
9
9
 
10
10
  ## Overview
11
11
 
12
- The OpenAI provider plugin enables Holo to communicate with OpenAI's Chat Completions and Responses APIs through the universal Holo format. This plugin is part of the migration from the monolithic provider architecture to a plugin-based system, providing complete bidirectional translation between OpenAI's native APIs and the portable Holo format.
12
+ The OpenAI provider plugin enables Holo to communicate with OpenAI's Chat Completions and Responses APIs through the
13
+ universal Holo format. This plugin is part of the migration from the monolithic provider architecture to a plugin-based
14
+ system, providing complete bidirectional translation between OpenAI's native APIs and the portable Holo format.
13
15
 
14
16
  ### Key Features
15
17
 
@@ -34,6 +36,7 @@ npm install @holokai/holo-provider-openai
34
36
  ### Peer Dependencies
35
37
 
36
38
  This plugin requires:
39
+
37
40
  - `@holokai/sdk` ^0.1.0 - Holo universal format types and plugin contracts
38
41
  - `openai` ^6.9.1 - Official OpenAI SDK
39
42
 
@@ -43,7 +46,8 @@ This plugin requires:
43
46
 
44
47
  ### Automatic Discovery
45
48
 
46
- When installed in a Holo worker environment, this plugin is automatically discovered and loaded by the plugin system. No manual registration required.
49
+ When installed in a Holo worker environment, this plugin is automatically discovered and loaded by the plugin system. No
50
+ manual registration required.
47
51
 
48
52
  ### Configuration
49
53
 
@@ -89,9 +93,11 @@ const response: HoloResponse = await holoClient.chat(request);
89
93
 
90
94
  ### What Changed
91
95
 
92
- This plugin represents the extraction of OpenAI provider logic from the monolithic `src/providers/openai/` codebase into a standalone, independently versioned package.
96
+ This plugin represents the extraction of OpenAI provider logic from the monolithic `src/providers/openai/` codebase into
97
+ a standalone, independently versioned package.
93
98
 
94
99
  **Before** (Monolithic):
100
+
95
101
  ```
96
102
  src/providers/openai/
97
103
  ├── openai.translator.ts
@@ -104,6 +110,7 @@ src/providers/openai/
104
110
  ```
105
111
 
106
112
  **After** (Plugin):
113
+
107
114
  ```
108
115
  @holokai/holo-provider-openai
109
116
  ├── src/
@@ -225,31 +232,32 @@ This plugin implements the official Holo format mappings as documented in the SD
225
232
 
226
233
  ### Request Mapping: Holo → OpenAI (Chat Completions)
227
234
 
228
- | Holo Field | OpenAI Field | Transformation | Notes |
229
- |------------|-------------|----------------|-------|
230
- | **Direct 1:1** ||||
231
- | `model` | `model` | Direct | Required |
232
- | `temperature` | `temperature` | Direct | 0-2 for OpenAI |
233
- | `top_p` | `top_p` | Direct | Optional |
234
- | `stream` | `stream` | Direct | Optional |
235
- | `max_tokens` | `max_tokens` | Direct | Optional |
236
- | `stop_sequences` | `stop` | Rename | Array format |
237
- | `frequency_penalty` | `frequency_penalty` | Direct | Optional |
238
- | `presence_penalty` | `presence_penalty` | Direct | Optional |
239
- | `seed` | `seed` | Direct | Optional |
240
- | **Structure Transforms** ||||
241
- | `system` (string) | First message with `role:'system'` | Inject as message | Optional |
242
- | `messages` | `messages` | Direct | Array of messages |
243
- | `metadata.user_id` | `user` | Promote to top-level | Optional |
244
- | `tools[].parameters` | `tools[].function.parameters` | Wrap in function | JSON Schema |
245
- | `tool_choice.type: 'specific'` | `{type: 'function', function: {name}}` | Wrap with name | Specific tool |
246
- | `tool_choice.type: 'required'` | `'required'` | Map type | Any tool required |
247
- | `tool_choice.type: 'auto'` | `'auto'` | Direct | Default |
248
- | `tool_choice.type: 'none'` | `'none'` | Direct | Disable tools |
249
- | `response_format.type: 'json_object'` | `{type: 'json_object'}` | Wrap | JSON mode |
250
- | `response_format.type: 'json_schema'` | `{type: 'json_schema', json_schema: {...}}` | Nest schema | Structured output |
235
+ | Holo Field | OpenAI Field | Transformation | Notes |
236
+ |---------------------------------------|---------------------------------------------|----------------------|-------------------|
237
+ | **Direct 1:1** | | | |
238
+ | `model` | `model` | Direct | Required |
239
+ | `temperature` | `temperature` | Direct | 0-2 for OpenAI |
240
+ | `top_p` | `top_p` | Direct | Optional |
241
+ | `stream` | `stream` | Direct | Optional |
242
+ | `max_tokens` | `max_tokens` | Direct | Optional |
243
+ | `stop_sequences` | `stop` | Rename | Array format |
244
+ | `frequency_penalty` | `frequency_penalty` | Direct | Optional |
245
+ | `presence_penalty` | `presence_penalty` | Direct | Optional |
246
+ | `seed` | `seed` | Direct | Optional |
247
+ | **Structure Transforms** | | | |
248
+ | `system` (string) | First message with `role:'system'` | Inject as message | Optional |
249
+ | `messages` | `messages` | Direct | Array of messages |
250
+ | `metadata.user_id` | `user` | Promote to top-level | Optional |
251
+ | `tools[].parameters` | `tools[].function.parameters` | Wrap in function | JSON Schema |
252
+ | `tool_choice.type: 'specific'` | `{type: 'function', function: {name}}` | Wrap with name | Specific tool |
253
+ | `tool_choice.type: 'required'` | `'required'` | Map type | Any tool required |
254
+ | `tool_choice.type: 'auto'` | `'auto'` | Direct | Default |
255
+ | `tool_choice.type: 'none'` | `'none'` | Direct | Disable tools |
256
+ | `response_format.type: 'json_object'` | `{type: 'json_object'}` | Wrap | JSON mode |
257
+ | `response_format.type: 'json_schema'` | `{type: 'json_schema', json_schema: {...}}` | Nest schema | Structured output |
251
258
 
252
259
  **OpenAI-Specific Fields** (not in Holo core):
260
+
253
261
  - `n` - Number of choices (handled via multi-choice streaming)
254
262
  - `logprobs` - Token probabilities (not in Holo spec)
255
263
  - `logit_bias` - Token bias (not in Holo spec)
@@ -258,56 +266,57 @@ This plugin implements the official Holo format mappings as documented in the SD
258
266
 
259
267
  ### Request Mapping: Holo → OpenAI (Responses API)
260
268
 
261
- | Holo Field | OpenAI Field | Transformation | Notes |
262
- |------------|-------------|----------------|-------|
263
- | **Direct 1:1** ||||
264
- | `model` | `model` | Direct | Required |
265
- | `temperature` | `temperature` | Direct | Optional |
266
- | `top_p` | `top_p` | Direct | Optional |
267
- | `stream` | `stream` | Direct | Optional |
268
- | **Structure Transforms** ||||
269
- | `messages` | `input` | Rename field | Different field name |
270
- | `system` (string) | `input[0]` with `role: 'system'` | Inject as first item | Optional |
271
- | `max_tokens` | `max_output_tokens` | Rename | Optional |
272
- | `tools` | `tools` | Transform structure | See Tool Mapping |
273
- | `tool_choice` | `tool_choice` | Similar to Chat | Optional |
274
- | `metadata.user_id` | `metadata.user_id` | Nest in metadata | Optional |
269
+ | Holo Field | OpenAI Field | Transformation | Notes |
270
+ |--------------------------|----------------------------------|----------------------|----------------------|
271
+ | **Direct 1:1** | | | |
272
+ | `model` | `model` | Direct | Required |
273
+ | `temperature` | `temperature` | Direct | Optional |
274
+ | `top_p` | `top_p` | Direct | Optional |
275
+ | `stream` | `stream` | Direct | Optional |
276
+ | **Structure Transforms** | | | |
277
+ | `messages` | `input` | Rename field | Different field name |
278
+ | `system` (string) | `input[0]` with `role: 'system'` | Inject as first item | Optional |
279
+ | `max_tokens` | `max_output_tokens` | Rename | Optional |
280
+ | `tools` | `tools` | Transform structure | See Tool Mapping |
281
+ | `tool_choice` | `tool_choice` | Similar to Chat | Optional |
282
+ | `metadata.user_id` | `metadata.user_id` | Nest in metadata | Optional |
275
283
 
276
284
  **Note**: Responses API uses `input` instead of `messages` and `max_output_tokens` instead of `max_tokens`.
277
285
 
278
286
  ### Response Mapping: OpenAI → Holo
279
287
 
280
- | OpenAI Field | Holo Field | Transformation | Notes |
281
- |-------------|------------|----------------|-------|
282
- | **Direct 1:1** ||||
283
- | `id` | `id` | Direct | Always present |
284
- | `model` | `model` | Direct | Always present |
285
- | `choices[0].message.role` | `messages[0].role` | Extract from choices | Always 'assistant' |
286
- | `choices[0].message.content` | `messages[0].content` | Extract from choices | Text content |
287
- | `choices[0].message.tool_calls` | `messages[0].tool_calls` | Extract from choices | If present |
288
- | **Structure Transforms** ||||
289
- | `created` | `created` | Multiply by 1000 | Seconds → milliseconds |
290
- | `choices[0].finish_reason` | `finish_reason` | Map codes | See table below |
291
- | `usage.prompt_tokens` | `usage.input_tokens` | Rename | Optional |
292
- | `usage.completion_tokens` | `usage.output_tokens` | Rename | Optional |
293
- | `usage.prompt_tokens_details.cached_tokens` | `usage.cache_read_tokens` | Rename | Optional |
294
- | Computed | `usage.total_tokens` | `input + output` | Derived |
295
- | `service_tier` | `service_tier` | Direct | Top-level field |
288
+ | OpenAI Field | Holo Field | Transformation | Notes |
289
+ |---------------------------------------------|---------------------------|----------------------|------------------------|
290
+ | **Direct 1:1** | | | |
291
+ | `id` | `id` | Direct | Always present |
292
+ | `model` | `model` | Direct | Always present |
293
+ | `choices[0].message.role` | `messages[0].role` | Extract from choices | Always 'assistant' |
294
+ | `choices[0].message.content` | `messages[0].content` | Extract from choices | Text content |
295
+ | `choices[0].message.tool_calls` | `messages[0].tool_calls` | Extract from choices | If present |
296
+ | **Structure Transforms** | | | |
297
+ | `created` | `created` | Multiply by 1000 | Seconds → milliseconds |
298
+ | `choices[0].finish_reason` | `finish_reason` | Map codes | See table below |
299
+ | `usage.prompt_tokens` | `usage.input_tokens` | Rename | Optional |
300
+ | `usage.completion_tokens` | `usage.output_tokens` | Rename | Optional |
301
+ | `usage.prompt_tokens_details.cached_tokens` | `usage.cache_read_tokens` | Rename | Optional |
302
+ | Computed | `usage.total_tokens` | `input + output` | Derived |
303
+ | `service_tier` | `service_tier` | Direct | Top-level field |
296
304
 
297
305
  **Timestamp Conversion**:
306
+
298
307
  - OpenAI: Unix timestamp in seconds (`number`)
299
308
  - Holo: Milliseconds since epoch (`number`)
300
309
  - Conversion: `created * 1000`
301
310
 
302
311
  **Finish Reason Mapping**:
303
312
 
304
- | OpenAI `finish_reason` | Holo `finish_reason` | Notes |
305
- |----------------------|---------------------|-------|
306
- | `'stop'` | `'stop'` | Natural completion |
307
- | `'length'` | `'length'` | Hit token limit |
308
- | `'tool_calls'` | `'tool_calls'` | Model called tools |
309
- | `'content_filter'` | `'content_filter'` | Content filtered |
310
- | `'function_call'` | `'tool_calls'` | Legacy function calling |
313
+ | OpenAI `finish_reason` | Holo `finish_reason` | Notes |
314
+ |------------------------|----------------------|-------------------------|
315
+ | `'stop'` | `'stop'` | Natural completion |
316
+ | `'length'` | `'length'` | Hit token limit |
317
+ | `'tool_calls'` | `'tool_calls'` | Model called tools |
318
+ | `'content_filter'` | `'content_filter'` | Content filtered |
319
+ | `'function_call'` | `'tool_calls'` | Legacy function calling |
311
320
 
312
321
  ### Content Mapping
313
322
 
@@ -424,12 +433,12 @@ OpenAI uses incremental deltas for streaming:
424
433
 
425
434
  The plugin translates OpenAI chunks to Holo streaming events:
426
435
 
427
- | OpenAI Chunk | Holo Event | Notes |
428
- |--------------|-----------|-------|
429
- | First chunk (`delta.role`) | `message_start` | Initialize message |
430
- | Content chunks (`delta.content`) | `content_delta` | Incremental text |
431
- | Tool call chunks (`delta.tool_calls`) | `message_delta` (with tools) | Tool accumulation |
432
- | Final chunk (`finish_reason`) | `message_stop` | Completion + usage |
436
+ | OpenAI Chunk | Holo Event | Notes |
437
+ |---------------------------------------|------------------------------|--------------------|
438
+ | First chunk (`delta.role`) | `message_start` | Initialize message |
439
+ | Content chunks (`delta.content`) | `content_delta` | Incremental text |
440
+ | Tool call chunks (`delta.tool_calls`) | `message_delta` (with tools) | Tool accumulation |
441
+ | Final chunk (`finish_reason`) | `message_stop` | Completion + usage |
433
442
 
434
443
  ### Streaming Example
435
444
 
@@ -483,7 +492,8 @@ OpenAI supports multiple completions via the `n` parameter:
483
492
  }
484
493
  ```
485
494
 
486
- **Note**: Multi-choice (`n > 1`) is OpenAI-specific and not part of portable Holo spec. Handled via streaming with `delta.choice` index.
495
+ **Note**: Multi-choice (`n > 1`) is OpenAI-specific and not part of portable Holo spec. Handled via streaming with
496
+ `delta.choice` index.
487
497
 
488
498
  ---
489
499
 
@@ -580,6 +590,7 @@ import type {
580
590
  ### Migration from Legacy Types
581
591
 
582
592
  **Before** (Legacy provider):
593
+
583
594
  ```typescript
584
595
  import { HoloTool } from '../../types/holo/requests';
585
596
 
@@ -589,6 +600,7 @@ interface HoloTool {
589
600
  ```
590
601
 
591
602
  **After** (Plugin SDK):
603
+
592
604
  ```typescript
593
605
  import type { HoloTool, HoloJsonSchema } from '@holokai/sdk';
594
606
 
@@ -709,9 +721,11 @@ npm run clean
709
721
  ## Related Documentation
710
722
 
711
723
  ### SDK Documentation
724
+
712
725
  - [SDK README](../sdk/README.md) - Plugin development guide and templates
713
726
 
714
727
  ### OpenAI Documentation
728
+
715
729
  - [Official API Reference](https://platform.openai.com/docs/api-reference)
716
730
  - [Chat Completions](https://platform.openai.com/docs/api-reference/chat)
717
731
  - [Responses API](https://platform.openai.com/docs/api-reference/responses)
@@ -721,6 +735,7 @@ npm run clean
721
735
  - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)
722
736
 
723
737
  ### Migration Notes
738
+
724
739
  - This plugin was extracted from the monolithic `src/providers/openai/` codebase
725
740
  - Migration to plugin architecture is complete
726
741
 
@@ -738,6 +753,7 @@ npm run clean
738
753
  ### Reporting Issues
739
754
 
740
755
  Found a bug or have a feature request?
756
+
741
757
  - GitHub Issues: https://github.com/holokai/holo-provider-openai/issues
742
758
  - Include: Holo version, OpenAI model, request/response samples
743
759
 
@@ -752,6 +768,7 @@ MIT © Holokai
752
768
  ## Changelog
753
769
 
754
770
  ### v0.1.0 (Current)
771
+
755
772
  - ✅ Initial plugin release
756
773
  - ✅ Extracted from monolithic architecture
757
774
  - ✅ Migrated to SDK types
@@ -1,3 +1,3 @@
1
- import { PluginManifest } from "@holokai/sdk";
2
- export declare const manifest: PluginManifest;
1
+ import type { IHoloPluginManifest } from "@holokai/types/plugin";
2
+ export declare const manifest: IHoloPluginManifest;
3
3
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAE5C,eAAO,MAAM,QAAQ,EAAE,cAyLtB,CAAC"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAE/D,eAAO,MAAM,QAAQ,EAAE,mBAOtB,CAAC"}
package/dist/manifest.js CHANGED
@@ -1,163 +1,9 @@
1
1
  export const manifest = {
2
- // Required identity
3
2
  name: '@holokai/provider-openai',
4
- family: 'openai',
5
3
  version: '1.0.0',
6
4
  pluginType: 'provider',
5
+ family: 'openai',
7
6
  displayName: 'OpenAI Provider',
8
- description: 'First-party OpenAI provider plugin for Holokai, providing chat, tools, and streaming via the Holo universal format.',
9
- // Optional metadata
10
- author: {
11
- name: 'Holokai Team',
12
- url: 'https://holok.ai'
13
- },
14
- license: 'MIT',
15
- homepage: 'https://holok.ai/docs/providers/openai',
16
- repository: {
17
- type: 'git',
18
- url: 'https://github.com/holokai/holokai',
19
- directory: 'packages/provider-openai'
20
- },
21
- bugs: {
22
- url: 'https://github.com/holokai/holokai/issues'
23
- },
24
- keywords: [
25
- 'holokai',
26
- 'holo',
27
- 'openai',
28
- 'provider',
29
- 'llm',
30
- 'chat-completions',
31
- 'tools',
32
- 'streaming'
33
- ],
34
- // Engine / dependency requirements
35
- engineVersion: '>=1.0.0 <2.0.0',
36
- peerDependencies: {
37
- '@holokai/sdk': '^1.0.0'
38
- },
39
- dependencies: {
40
- openai: '^4.73.0'
41
- },
42
- // Capabilities
43
- capabilities: {
44
- supportsStreaming: true,
45
- supportsHotReload: true,
46
- supportsAsync: true,
47
- supportsBatching: false,
48
- supportsDistributed: true,
49
- // Custom capability flags
50
- supportsTools: true,
51
- supportsVision: true,
52
- supportsStructuredOutputs: true
53
- },
54
- // Permissions (what the host must allow)
55
- permissions: ['network', 'env'],
56
- // Configuration schema (what the operator configures for this plugin)
57
- configSchema: {
58
- $schema: 'http://json-schema.org/draft-07/schema#',
59
- type: 'object',
60
- title: 'OpenAI Provider Configuration',
61
- description: 'Configuration for the @holokai/provider-openai plugin. Used by Holokai to connect to the OpenAI API.',
62
- properties: {
63
- apiKey: {
64
- type: 'string',
65
- description: 'OpenAI API key. This SHOULD be supplied via secure secret management (env/secret store), not hard-coded.',
66
- minLength: 20
67
- },
68
- organizationId: {
69
- type: 'string',
70
- description: 'Optional OpenAI organization ID to use for requests.',
71
- minLength: 1
72
- },
73
- projectId: {
74
- type: 'string',
75
- description: 'Optional OpenAI project ID (for org/project-scoped keys).'
76
- },
77
- baseUrl: {
78
- type: 'string',
79
- description: 'Optional custom base URL for OpenAI-compatible endpoints (e.g., proxy or Azure/OpenAI-compatible gateway).',
80
- format: 'uri'
81
- },
82
- defaultModel: {
83
- type: 'string',
84
- description: 'Default OpenAI model to use when no model is specified in the HoloRequest (e.g., "gpt-4o-mini").'
85
- },
86
- allowedModels: {
87
- type: 'array',
88
- description: 'Optional allowlist of OpenAI model IDs that this plugin may use. If set, all requests will be validated against this list.',
89
- items: {
90
- type: 'string'
91
- },
92
- uniqueItems: true
93
- },
94
- timeoutMs: {
95
- type: 'integer',
96
- description: 'Default request timeout in milliseconds for OpenAI calls.',
97
- minimum: 1000,
98
- maximum: 600000,
99
- default: 60000
100
- },
101
- maxRetries: {
102
- type: 'integer',
103
- description: 'Maximum number of retry attempts for transient OpenAI errors.',
104
- minimum: 0,
105
- maximum: 10,
106
- default: 2
107
- },
108
- enableStructuredOutputs: {
109
- type: 'boolean',
110
- description: 'Enable OpenAI structured outputs (json_object/json_schema) when requested via Holo response_format.',
111
- default: true
112
- },
113
- enableVision: {
114
- type: 'boolean',
115
- description: 'Enable multimodal/vision support for models that accept image content.',
116
- default: true
117
- },
118
- logRequests: {
119
- type: 'boolean',
120
- description: 'If true, log summarized request/response metadata for observability (never full content or secrets).',
121
- default: false
122
- },
123
- telemetrySampleRate: {
124
- type: 'number',
125
- description: 'Sampling rate (0.0–1.0) for sending telemetry events related to this provider.',
126
- minimum: 0,
127
- maximum: 1,
128
- default: 1
129
- }
130
- },
131
- required: ['apiKey'],
132
- additionalProperties: false
133
- },
134
- // Marketplace metadata
135
- category: 'ai-providers',
136
- screenshots: [
137
- 'https://holok.ai/assets/screenshots/provider-openai-1.png'
138
- ],
139
- changelog: 'https://holok.ai/docs/providers/openai/changelog',
140
- pricing: {
141
- model: 'free',
142
- price: 0,
143
- currency: 'USD',
144
- billingPeriod: 'one-time'
145
- },
146
- support: {
147
- email: 'support@holok.ai',
148
- documentation: 'https://holok.ai/docs/providers/openai'
149
- },
150
- // Upgrade semantics
151
- upgradeFrom: '>=1.0.0',
152
- // Entrypoints
153
- main: 'dist/index.js',
154
- types: 'dist/index.d.ts',
155
- // Custom metadata for host/runtime
156
- custom: {
157
- // Used by the host/plugin loader to auto-wire this plugin
158
- providerKind: 'openai',
159
- // Hints for the host UI
160
- recommendedDefaultModel: 'gpt-4o-mini'
161
- }
7
+ description: 'OpenAI provider plugin for Holo.',
162
8
  };
163
9
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAwB;IACzC,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,kCAAkC;CAClD,CAAC"}
@@ -1,7 +1,9 @@
1
- import { BaseAuditor, HoloWorkerRequest, ProviderEnvelope, ProviderEvent } from "@holokai/sdk";
1
+ import { BaseAuditor } from "@holokai/sdk/provider";
2
+ import { HoloWorkerRequest } from "@holokai/types/worker";
3
+ import { ProviderEnvelope, ProviderEvent } from "@holokai/types/provider";
4
+ import { LlmRequest, LlmStatus } from "@holokai/types/entities";
2
5
  import { ChatCompletionCreateParamsBase } from "openai/resources/chat/completions";
3
6
  import { ResponseCreateParamsBase } from "openai/resources/responses/responses";
4
- import { LlmRequest, LlmStatus } from "@holokai/sdk/core/entities";
5
7
  export declare class OpenAIAuditor extends BaseAuditor {
6
8
  readonly provider = "openai";
7
9
  protected toHoloRequest(workerRequest: HoloWorkerRequest, llmRequest: Omit<LlmRequest, 'id'>): void;
@@ -16,8 +18,8 @@ export declare class OpenAIAuditor extends BaseAuditor {
16
18
  total_processing_time: any;
17
19
  }>>;
18
20
  protected mapResponseStatus(providerEvent: ProviderEvent): Promise<LlmStatus>;
21
+ protected createProviderEnvelope(payload: ResponseCreateParamsBase | ChatCompletionCreateParamsBase): Promise<ProviderEnvelope>;
19
22
  private extractUserPromptFromMessages;
20
23
  private extractSystemPromptFromMessages;
21
- protected createProviderEnvelope(payload: ResponseCreateParamsBase | ChatCompletionCreateParamsBase): Promise<ProviderEnvelope>;
22
24
  }
23
25
  //# sourceMappingURL=openai.auditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.auditor.d.ts","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAe,gBAAgB,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAC,8BAA8B,EAAC,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAC,wBAAwB,EAAgB,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,4BAA4B,CAAC;AAGjE,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAE7B,SAAS,CAAC,aAAa,CAAC,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI;IAmBnG,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI;cAwBxF,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;;;;;;;cAiCpF,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAenF,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,+BAA+B;cAOvB,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,GAAG,8BAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAKxI"}
1
+ {"version":3,"file":"openai.auditor.d.ts","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,8BAA8B,EAAC,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAC,wBAAwB,EAAgB,MAAM,sCAAsC,CAAC;AAG7F,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAE7B,SAAS,CAAC,aAAa,CAAC,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI;IAmBnG,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI;cAwBxF,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;;;;;;;cAiCpF,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;cAenE,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,GAAG,8BAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMrI,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,+BAA+B;CAM1C"}
@@ -5,8 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { injectable } from 'tsyringe';
8
- import { BaseAuditor, pickDefined } from "@holokai/sdk";
9
- import { LlmStatus } from "@holokai/sdk/core/entities";
8
+ import { pickDefined } from "@holokai/sdk";
9
+ import { BaseAuditor } from "@holokai/sdk/provider";
10
+ import { LlmStatus } from "@holokai/types/entities";
10
11
  let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
11
12
  provider = 'openai';
12
13
  toHoloRequest(workerRequest, llmRequest) {
@@ -104,6 +105,11 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
104
105
  }
105
106
  return super.mapResponseStatus(providerEvent);
106
107
  }
108
+ async createProviderEnvelope(payload) {
109
+ return pickDefined({
110
+ model_slug: payload.model
111
+ });
112
+ }
107
113
  extractUserPromptFromMessages(messages) {
108
114
  if (!messages || !Array.isArray(messages))
109
115
  return undefined;
@@ -130,11 +136,6 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
130
136
  const systemMessage = messages.find(msg => msg.role === 'system');
131
137
  return systemMessage && typeof systemMessage.content === 'string' ? systemMessage.content : undefined;
132
138
  }
133
- async createProviderEnvelope(payload) {
134
- return pickDefined({
135
- model_slug: payload.model
136
- });
137
- }
138
139
  };
139
140
  OpenAIAuditor = __decorate([
140
141
  injectable()
@@ -1 +1 @@
1
- {"version":3,"file":"openai.auditor.js","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,WAAW,EAAqB,WAAW,EAAkC,MAAM,cAAc,CAAC;AAG1G,OAAO,EAAa,SAAS,EAAC,MAAM,4BAA4B,CAAC;AAI1D,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW;IACjC,QAAQ,GAAG,QAAQ,CAAC;IAEnB,aAAa,CAAC,aAAgC,EAAE,UAAkC;QACxF,MAAM,OAAO,GAAG,aAAa,CAAC,OAAyC,CAAC;QAExE,YAAY;QACZ,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;QAEtC,oCAAoC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC;QACxC,CAAC;QAED,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,UAAU,CAAC,aAAa,GAAG,YAAY,CAAC;QAC5C,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,aAAgC,EAAE,UAAkC;QAC7F,MAAM,OAAO,GAAG,aAAa,CAAC,OAAyC,CAAC;QACxE,2CAA2C;QAC3C,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,qBAAqB,KAAK,SAAS;YAAE,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QAC/G,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC9E,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACjF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/D,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;YAAE,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnG,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAChG,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAClE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/D,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACjF,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC7F,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC5D,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;YAAE,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnG,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE5D,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QACjC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,aAAiE;QAChG,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QACtC,IAAI,KAAK,GAAoC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAEvG,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IAAI,YAAY,CAAC;QACjB,IAAI,aAAa,CAAC;QAClB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,GAAG,KAAsB,CAAC;YAC/B,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAClC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,KAAwB,CAAC;YACjC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;YACnC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAC5C,CAAC;QAED,OAAO,WAAW,CAAC;YACf,GAAG,OAAO;YACV,SAAS,EAAE,KAAK;YAChB,YAAY;YACZ,aAAa;SAChB,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,aAA4B;QAC1D,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,MAAM,EAAE,aAAa,EAAE,CAAC;gBACxB,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACpC,OAAO,SAAS,CAAC,OAAO,CAAC;gBAC7B,CAAC;qBAAM,IAAI,MAAM,CAAC,aAAa,KAAK,gBAAgB,EAAE,CAAC;oBACnD,OAAO,SAAS,CAAC,KAAK,CAAC;gBAC3B,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAEO,6BAA6B,CAAC,QAAgB;QAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QAE5D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEhD,uCAAuC;QACvC,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9D,IAAI,OAAO,eAAe,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,eAAe,CAAC,OAAO,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,8CAA8C;YAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO;iBACpC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;iBAC3C,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,+BAA+B,CAAC,QAAgB;QACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QAE5D,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAClE,OAAO,aAAa,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,OAAkE;QACrG,OAAO,WAAW,CAAC;YACf,UAAU,EAAE,OAAO,CAAC,KAAK;SAC5B,CAAqB,CAAA;IAC1B,CAAC;CACJ,CAAA;AA/HY,aAAa;IADzB,UAAU,EAAE;GACA,aAAa,CA+HzB"}
1
+ {"version":3,"file":"openai.auditor.js","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,32 @@
1
1
  import OpenAI from 'openai';
2
- import { BaseProvider, IAuditor, IProviderTranslator, IResponseFactory, ProviderContext, RunHandle } from '@holokai/sdk';
2
+ import { BaseProvider } from '@holokai/sdk/provider';
3
+ import type { IAuditor, IProviderTranslator, IResponseFactory } from '@holokai/types/provider';
4
+ import { ProviderContext, RunHandle } from '@holokai/types/provider';
3
5
  import { ResponseCreateParamsBase, ResponseErrorEvent } from 'openai/resources/responses/responses';
4
6
  import { ChatCompletionCreateParamsBase } from 'openai/resources/chat/completions';
5
7
  import { Model } from 'openai/resources/models';
6
8
  import { APIError } from "openai/core/error";
9
+ import { EmbeddingCreateParams } from "openai/resources";
7
10
  /**
8
11
  * OpenAI provider for connecting to OpenAI API
9
12
  */
10
13
  export declare class OpenAIProvider extends BaseProvider<OpenAI, ResponseCreateParamsBase | ChatCompletionCreateParamsBase> {
11
- protected createAuditor(): IAuditor;
12
- protected createClient(): OpenAI;
13
- protected createTranslator(): IProviderTranslator;
14
- protected createResponseFactory(): IResponseFactory;
15
14
  getModels(allowedModels: string[] | true): Promise<{
16
15
  object: string;
17
16
  data: Model[];
18
17
  }>;
19
- protected handleError(error: APIError): Promise<ResponseErrorEvent>;
20
18
  getModelNameFromRequest(payload: ResponseCreateParamsBase | ChatCompletionCreateParamsBase): Promise<string | undefined>;
21
- protected handleRequest(payload: ResponseCreateParamsBase | ChatCompletionCreateParamsBase, ctx: ProviderContext): Promise<RunHandle<any>>;
19
+ runEmbed(payload: EmbeddingCreateParams): Promise<{
20
+ final: () => Promise<OpenAI.Embeddings.CreateEmbeddingResponse & {
21
+ _request_id?: string | null;
22
+ }>;
23
+ }>;
24
+ protected createAuditor(): IAuditor;
25
+ protected createClient(): OpenAI;
26
+ protected createTranslator(): IProviderTranslator;
27
+ protected createResponseFactory(): IResponseFactory;
28
+ protected handleError(error: APIError): Promise<ResponseErrorEvent>;
29
+ protected handleRequest(payload: ResponseCreateParamsBase | ChatCompletionCreateParamsBase | EmbeddingCreateParams, ctx: ProviderContext): Promise<RunHandle<any>>;
22
30
  private runResponses;
23
31
  private runChatCompletions;
24
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai.provider.d.ts","sourceRoot":"","sources":["../src/openai.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACH,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EAEf,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,wBAAwB,EAAE,kBAAkB,EAAsB,MAAM,sCAAsC,CAAC;AACvH,OAAO,EAAC,8BAA8B,EAAC,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAC,KAAK,EAAa,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAI3C;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY,CAAC,MAAM,EAAE,wBAAwB,GAAG,8BAA8B,CAAC;IAE/G,SAAS,CAAC,aAAa,IAAI,QAAQ;IAInC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAIjD,SAAS,CAAC,qBAAqB,IAAI,gBAAgB;IAI7C,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC;cAa3E,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;IASnE,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,8BAA8B,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAI9G,aAAa,CACzB,OAAO,EAAE,wBAAwB,GAAG,8BAA8B,EAClE,GAAG,EAAE,eAAe,GACrB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAUZ,YAAY;YA4CZ,kBAAkB;CAyCnC"}
1
+ {"version":3,"file":"openai.provider.d.ts","sourceRoot":"","sources":["../src/openai.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAC,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAC,eAAe,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAC,wBAAwB,EAAE,kBAAkB,EAAsB,MAAM,sCAAsC,CAAC;AACvH,OAAO,EAAC,8BAA8B,EAAC,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAC,KAAK,EAAa,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY,CAAC,MAAM,EAAE,wBAAwB,GAAG,8BAA8B,CAAC;IAEzG,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC;IAarF,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,8BAA8B,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIxH,QAAQ,CAAC,OAAO,EAAE,qBAAqB;;;;;IAM7C,SAAS,CAAC,aAAa,IAAI,QAAQ;IAInC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAIjD,SAAS,CAAC,qBAAqB,IAAI,gBAAgB;cAInC,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;cASzD,aAAa,CACzB,OAAO,EAAE,wBAAwB,GAAG,8BAA8B,GAAG,qBAAqB,EAC1F,GAAG,EAAE,eAAe,GACrB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAYZ,YAAY;YA4CZ,kBAAkB;CAyCnC"}