@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.
- package/README.md +87 -70
- package/dist/manifest.d.ts +2 -2
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +2 -156
- package/dist/manifest.js.map +1 -1
- package/dist/openai.auditor.d.ts +5 -3
- package/dist/openai.auditor.d.ts.map +1 -1
- package/dist/openai.auditor.js +8 -7
- package/dist/openai.auditor.js.map +1 -1
- package/dist/openai.provider.d.ts +15 -7
- package/dist/openai.provider.d.ts.map +1 -1
- package/dist/openai.provider.js +23 -15
- package/dist/openai.provider.js.map +1 -1
- package/dist/openai.response.factory.d.ts +3 -2
- package/dist/openai.response.factory.d.ts.map +1 -1
- package/dist/openai.response.factory.js +3 -3
- package/dist/openai.response.factory.js.map +1 -1
- package/dist/openai.translator.d.ts +2 -2
- package/dist/openai.translator.d.ts.map +1 -1
- package/dist/openai.wire.adapter.d.ts +3 -1
- package/dist/openai.wire.adapter.d.ts.map +1 -1
- package/dist/openai.wire.adapter.js +1 -1
- package/dist/openai.wire.adapter.js.map +1 -1
- package/dist/plugin.d.ts +7 -6
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +7 -1
- package/dist/plugin.js.map +1 -1
- package/dist/services/openai.chatcompletions.service.d.ts +1 -1
- package/dist/services/openai.chatcompletions.service.d.ts.map +1 -1
- package/dist/translators/openai.chatcompletion.request.translators.d.ts +2 -1
- package/dist/translators/openai.chatcompletion.request.translators.d.ts.map +1 -1
- package/dist/translators/openai.chatcompletion.request.translators.js +2 -1
- package/dist/translators/openai.chatcompletion.request.translators.js.map +1 -1
- package/dist/translators/openai.chatcompletion.response.translators.d.ts +1 -1
- package/dist/translators/openai.chatcompletion.response.translators.d.ts.map +1 -1
- package/dist/translators/openai.chatcompletion.response.translators.js.map +1 -1
- package/dist/translators/openai.content.translators.d.ts +1 -1
- package/dist/translators/openai.content.translators.d.ts.map +1 -1
- package/dist/translators/openai.message.translators.d.ts +1 -1
- package/dist/translators/openai.message.translators.d.ts.map +1 -1
- package/dist/translators/openai.message.translators.js.map +1 -1
- package/dist/translators/openai.response.message.translators.d.ts +1 -1
- package/dist/translators/openai.response.message.translators.d.ts.map +1 -1
- package/dist/translators/openai.response.message.translators.js.map +1 -1
- package/dist/translators/openai.responses.request.translators.d.ts +1 -1
- package/dist/translators/openai.responses.request.translators.d.ts.map +1 -1
- package/dist/translators/openai.responses.request.translators.js.map +1 -1
- package/dist/translators/openai.tool.translators.d.ts +1 -1
- package/dist/translators/openai.tool.translators.d.ts.map +1 -1
- package/dist/translators/openai.tool.translators.js.map +1 -1
- package/dist/translators/openai.usage.translators.d.ts +1 -1
- package/dist/translators/openai.usage.translators.d.ts.map +1 -1
- package/dist/translators/openai.usage.translators.js.map +1 -1
- package/dist/translators/streaming/openai.content.delta.translator.d.ts +1 -1
- package/dist/translators/streaming/openai.content.delta.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.content.delta.translator.js.map +1 -1
- package/dist/translators/streaming/openai.message.delta.translator.d.ts +1 -1
- package/dist/translators/streaming/openai.message.delta.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.message.delta.translator.js.map +1 -1
- package/dist/translators/streaming/openai.message.start.translator.d.ts +1 -1
- package/dist/translators/streaming/openai.message.start.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.message.start.translator.js.map +1 -1
- package/dist/translators/streaming/openai.message.stop.translator.d.ts +1 -1
- package/dist/translators/streaming/openai.message.stop.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.message.stop.translator.js.map +1 -1
- package/dist/translators/streaming/openai.stream.translator.d.ts +1 -1
- package/dist/translators/streaming/openai.stream.translator.d.ts.map +1 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
229
|
-
|
|
230
|
-
| **Direct 1:1**
|
|
231
|
-
| `model`
|
|
232
|
-
| `temperature`
|
|
233
|
-
| `top_p`
|
|
234
|
-
| `stream`
|
|
235
|
-
| `max_tokens`
|
|
236
|
-
| `stop_sequences`
|
|
237
|
-
| `frequency_penalty`
|
|
238
|
-
| `presence_penalty`
|
|
239
|
-
| `seed`
|
|
240
|
-
| **Structure Transforms**
|
|
241
|
-
| `system` (string)
|
|
242
|
-
| `messages`
|
|
243
|
-
| `metadata.user_id`
|
|
244
|
-
| `tools[].parameters`
|
|
245
|
-
| `tool_choice.type: 'specific'`
|
|
246
|
-
| `tool_choice.type: 'required'`
|
|
247
|
-
| `tool_choice.type: 'auto'`
|
|
248
|
-
| `tool_choice.type: 'none'`
|
|
249
|
-
| `response_format.type: 'json_object'` | `{type: 'json_object'}`
|
|
250
|
-
| `response_format.type: 'json_schema'` | `{type: 'json_schema', json_schema: {...}}` | Nest schema
|
|
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
|
|
262
|
-
|
|
263
|
-
| **Direct 1:1**
|
|
264
|
-
| `model`
|
|
265
|
-
| `temperature`
|
|
266
|
-
| `top_p`
|
|
267
|
-
| `stream`
|
|
268
|
-
| **Structure Transforms**
|
|
269
|
-
| `messages`
|
|
270
|
-
| `system` (string)
|
|
271
|
-
| `max_tokens`
|
|
272
|
-
| `tools`
|
|
273
|
-
| `tool_choice`
|
|
274
|
-
| `metadata.user_id`
|
|
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
|
|
281
|
-
|
|
282
|
-
| **Direct 1:1**
|
|
283
|
-
| `id`
|
|
284
|
-
| `model`
|
|
285
|
-
| `choices[0].message.role`
|
|
286
|
-
| `choices[0].message.content`
|
|
287
|
-
| `choices[0].message.tool_calls`
|
|
288
|
-
| **Structure Transforms**
|
|
289
|
-
| `created`
|
|
290
|
-
| `choices[0].finish_reason`
|
|
291
|
-
| `usage.prompt_tokens`
|
|
292
|
-
| `usage.completion_tokens`
|
|
293
|
-
| `usage.prompt_tokens_details.cached_tokens` | `usage.cache_read_tokens` | Rename
|
|
294
|
-
| Computed
|
|
295
|
-
| `service_tier`
|
|
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'`
|
|
307
|
-
| `'length'`
|
|
308
|
-
| `'tool_calls'`
|
|
309
|
-
| `'content_filter'`
|
|
310
|
-
| `'function_call'`
|
|
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
|
|
428
|
-
|
|
429
|
-
| First chunk (`delta.role`)
|
|
430
|
-
| Content chunks (`delta.content`)
|
|
431
|
-
| Tool call chunks (`delta.tool_calls`) | `message_delta` (with tools) | Tool accumulation
|
|
432
|
-
| Final chunk (`finish_reason`)
|
|
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
|
|
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
|
package/dist/manifest.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const manifest:
|
|
1
|
+
import type { IHoloPluginManifest } from "@holokai/types/plugin";
|
|
2
|
+
export declare const manifest: IHoloPluginManifest;
|
|
3
3
|
//# sourceMappingURL=manifest.d.ts.map
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
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: '
|
|
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
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,
|
|
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"}
|
package/dist/openai.auditor.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { BaseAuditor
|
|
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":"
|
|
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"}
|
package/dist/openai.auditor.js
CHANGED
|
@@ -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 {
|
|
9
|
-
import {
|
|
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,
|
|
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
|
|
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
|
-
|
|
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,
|
|
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"}
|