@revenium/openai 1.0.11 → 1.0.13

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 (96) hide show
  1. package/.env.example +20 -0
  2. package/CHANGELOG.md +47 -47
  3. package/README.md +121 -964
  4. package/dist/cjs/core/config/loader.js +1 -1
  5. package/dist/cjs/core/config/loader.js.map +1 -1
  6. package/dist/cjs/core/config/manager.js +2 -1
  7. package/dist/cjs/core/config/manager.js.map +1 -1
  8. package/dist/cjs/core/providers/detector.js +3 -3
  9. package/dist/cjs/core/providers/detector.js.map +1 -1
  10. package/dist/cjs/core/tracking/api-client.js +1 -1
  11. package/dist/cjs/core/tracking/api-client.js.map +1 -1
  12. package/dist/cjs/core/tracking/payload-builder.js +17 -12
  13. package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
  14. package/dist/cjs/index.js +23 -2
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/types/index.js.map +1 -1
  17. package/dist/cjs/utils/metadata-builder.js +12 -5
  18. package/dist/cjs/utils/metadata-builder.js.map +1 -1
  19. package/dist/cjs/utils/stop-reason-mapper.js +4 -0
  20. package/dist/cjs/utils/stop-reason-mapper.js.map +1 -1
  21. package/dist/cjs/utils/url-builder.js +32 -7
  22. package/dist/cjs/utils/url-builder.js.map +1 -1
  23. package/dist/esm/core/config/loader.js +1 -1
  24. package/dist/esm/core/config/loader.js.map +1 -1
  25. package/dist/esm/core/config/manager.js +2 -1
  26. package/dist/esm/core/config/manager.js.map +1 -1
  27. package/dist/esm/core/providers/detector.js +3 -3
  28. package/dist/esm/core/providers/detector.js.map +1 -1
  29. package/dist/esm/core/tracking/api-client.js +1 -1
  30. package/dist/esm/core/tracking/api-client.js.map +1 -1
  31. package/dist/esm/core/tracking/payload-builder.js +17 -12
  32. package/dist/esm/core/tracking/payload-builder.js.map +1 -1
  33. package/dist/esm/index.js +22 -2
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/types/index.js.map +1 -1
  36. package/dist/esm/utils/metadata-builder.js +12 -5
  37. package/dist/esm/utils/metadata-builder.js.map +1 -1
  38. package/dist/esm/utils/stop-reason-mapper.js +4 -0
  39. package/dist/esm/utils/stop-reason-mapper.js.map +1 -1
  40. package/dist/esm/utils/url-builder.js +32 -7
  41. package/dist/esm/utils/url-builder.js.map +1 -1
  42. package/dist/types/core/config/manager.d.ts.map +1 -1
  43. package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
  44. package/dist/types/index.d.ts +23 -2
  45. package/dist/types/index.d.ts.map +1 -1
  46. package/dist/types/types/index.d.ts +9 -13
  47. package/dist/types/types/index.d.ts.map +1 -1
  48. package/dist/types/types/openai-augmentation.d.ts +1 -2
  49. package/dist/types/types/openai-augmentation.d.ts.map +1 -1
  50. package/dist/types/utils/metadata-builder.d.ts +2 -1
  51. package/dist/types/utils/metadata-builder.d.ts.map +1 -1
  52. package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -1
  53. package/dist/types/utils/url-builder.d.ts +11 -3
  54. package/dist/types/utils/url-builder.d.ts.map +1 -1
  55. package/examples/README.md +213 -255
  56. package/examples/azure-basic.ts +26 -14
  57. package/examples/azure-responses-basic.ts +39 -10
  58. package/examples/azure-responses-streaming.ts +39 -10
  59. package/examples/azure-streaming.ts +41 -20
  60. package/examples/getting_started.ts +54 -0
  61. package/examples/openai-basic.ts +39 -17
  62. package/examples/openai-function-calling.ts +259 -0
  63. package/examples/openai-responses-basic.ts +38 -9
  64. package/examples/openai-responses-streaming.ts +38 -9
  65. package/examples/openai-streaming.ts +24 -13
  66. package/examples/openai-vision.ts +289 -0
  67. package/package.json +3 -9
  68. package/src/core/config/azure-config.ts +72 -0
  69. package/src/core/config/index.ts +23 -0
  70. package/src/core/config/loader.ts +66 -0
  71. package/src/core/config/manager.ts +95 -0
  72. package/src/core/config/validator.ts +89 -0
  73. package/src/core/providers/detector.ts +159 -0
  74. package/src/core/providers/index.ts +16 -0
  75. package/src/core/tracking/api-client.ts +78 -0
  76. package/src/core/tracking/index.ts +21 -0
  77. package/src/core/tracking/payload-builder.ts +137 -0
  78. package/src/core/tracking/usage-tracker.ts +189 -0
  79. package/src/core/wrapper/index.ts +9 -0
  80. package/src/core/wrapper/instance-patcher.ts +288 -0
  81. package/src/core/wrapper/request-handler.ts +423 -0
  82. package/src/core/wrapper/stream-wrapper.ts +100 -0
  83. package/src/index.ts +360 -0
  84. package/src/types/function-parameters.ts +251 -0
  85. package/src/types/index.ts +310 -0
  86. package/src/types/openai-augmentation.ts +232 -0
  87. package/src/types/responses-api.ts +308 -0
  88. package/src/utils/azure-model-resolver.ts +220 -0
  89. package/src/utils/constants.ts +21 -0
  90. package/src/utils/error-handler.ts +251 -0
  91. package/src/utils/metadata-builder.ts +228 -0
  92. package/src/utils/provider-detection.ts +257 -0
  93. package/src/utils/request-handler-factory.ts +285 -0
  94. package/src/utils/stop-reason-mapper.ts +78 -0
  95. package/src/utils/type-guards.ts +202 -0
  96. package/src/utils/url-builder.ts +68 -0
package/.env.example ADDED
@@ -0,0 +1,20 @@
1
+ # Revenium OpenAI Middleware Configuration
2
+ # Copy this file to .env and fill in your actual values
3
+
4
+ # Required: Your Revenium API key (starts with hak_)
5
+ REVENIUM_METERING_API_KEY=hak_your_revenium_api_key_here
6
+
7
+ # Optional: Revenium API base URL (defaults to https://api.revenium.ai)
8
+ #REVENIUM_METERING_BASE_URL=https://api.revenium.ai
9
+
10
+ # Required: Your OpenAI API key (starts with sk-)
11
+ OPENAI_API_KEY=sk_your_openai_api_key_here
12
+
13
+ # Optional: Azure OpenAI configuration (uncomment if using Azure)
14
+ #AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com/
15
+ #AZURE_OPENAI_API_KEY=your-azure-openai-api-key-here
16
+ #AZURE_OPENAI_DEPLOYMENT=your-deployment-name-here
17
+ #AZURE_OPENAI_API_VERSION=2024-12-01-preview
18
+
19
+ # Optional: Enable debug logging
20
+ #REVENIUM_DEBUG=true
package/CHANGELOG.md CHANGED
@@ -5,73 +5,73 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [1.0.11] - 2025-10-21
8
+ ## [1.0.13] - 2025-11-06
9
9
 
10
10
  ### Added
11
- - Examples now included in npm package for offline access
12
- - New `examples/README.md` with comprehensive step-by-step guide
13
- - Step 4: Protect Your API Keys - Security best practices in main README
14
- - TypeScript and JavaScript examples for getting started
11
+ - configure() function for manual configuration (simpler alias for initializeRevenium)
12
+ - Support for COST_LIMIT and COMPLETION_LIMIT stop reasons
13
+ - Support for all 7 operationType enum values (CHAT, GENERATE, EMBED, CLASSIFY, SUMMARIZE, TRANSLATE, OTHER)
15
14
 
16
15
  ### Changed
17
- - Removed internal QA environment references from documentation
18
- - Documentation standardized for public repository
19
- - Improved README structure with enhanced security guidance
20
-
21
- ### Security
22
- - Added `.gitignore` best practices to protect API keys
23
- - Enhanced environment variable security documentation
16
+ - **BREAKING:** responseQualityScore now uses 0.0-1.0 scale (was 0-100) per updated API specification
17
+ - API endpoint updated from api.revenium.io to api.revenium.ai (new production domain)
18
+ - Improved API compliance with proper enum values and field casing
19
+ - Enhanced token counting accuracy for cache operations
20
+ - Email addresses now masked in debug logs for PII protection
21
+ - All examples updated to use 0.0-1.0 scale for responseQualityScore
22
+
23
+ ### Fixed
24
+ - Improved documentation accuracy and removed deprecated configuration options
25
+ - config.debug property now properly enables debug logging
26
+ - Manual configuration example now includes required patchOpenAIInstance call
27
+ - Updated OpenAI version requirement to match peer dependency (v5.0.0+)
28
+ - Enhanced metadata validation for responseQualityScore scale
29
+ - Improved provider detection fallback handling
30
+ - Fixed cache token reporting for embeddings API
31
+ - reasoningTokenCount now correctly optional based on provider support
32
+
33
+ ## [1.0.12] - 2025-10-30
24
34
 
25
- ## [1.0.10] - 2025-10-17
35
+ ### Changed
36
+ - Improved documentation structure and Getting Started tutorial
37
+ - Enhanced package distribution to include TypeScript source files
26
38
 
27
- ### Added
28
- - Support for OpenAI Responses API (SDK 5.8+)
29
- - New example files for Responses API with Azure and standard OpenAI
30
- - Enhanced TypeScript type definitions for Responses API
39
+ ### Fixed
40
+ - Repository configuration updates
31
41
 
32
- ### Changed
33
- - README documentation significantly expanded with step-by-step guides
34
- - Improved examples structure and organization
35
- - Package maintenance and stability improvements
42
+ ## [1.0.11] - 2025-10-21
36
43
 
37
- ## [1.0.9] - 2025-10-16
44
+ ### Added
45
+ - Examples now included in npm package
46
+ - Comprehensive examples documentation
38
47
 
39
48
  ### Changed
40
- - Internal improvements and bug fixes
41
- - Enhanced error handling and logging
49
+ - Updated API endpoint configuration
50
+ - Improved documentation structure
42
51
 
43
- ## [1.0.8] - 2025-10-15
52
+ ## [1.0.10] - 2025-10-17
44
53
 
45
54
  ### Added
46
- - Initial release of @revenium/openai scoped package
47
- - Migration from revenium-middleware-openai-node to @revenium/openai
48
- - Transparent OpenAI API usage tracking middleware
49
- - Support for streaming responses
50
- - Support for function/tool calling
51
- - Automatic metadata collection and forwarding
52
- - Azure OpenAI support with automatic detection
53
- - Full TypeScript support with native type integration
54
- - Zero configuration setup from environment variables
55
+ - Support for OpenAI Responses API
55
56
 
56
57
  ### Changed
57
- - Package name migrated to scoped format (@revenium/openai)
58
-
59
- ---
60
-
61
- ## Package Migration Notice
58
+ - Enhanced documentation and examples
62
59
 
63
- This package was previously published as `revenium-middleware-openai-node` up to v1.1.0.
60
+ ## [1.0.9] - 2025-10-16
64
61
 
65
- Starting with v1.0.8, the package has been migrated to the scoped format `@revenium/openai`.
62
+ ### Changed
63
+ - Bug fixes and stability improvements
66
64
 
67
- The old package has been deprecated with a notice directing users to the new scoped package.
65
+ ## [1.0.8] - 2025-10-15
68
66
 
69
- To upgrade:
70
- ```bash
71
- npm uninstall revenium-middleware-openai-node
72
- npm install @revenium/openai
73
- ```
67
+ ### Added
68
+ - Initial release with OpenAI usage tracking
69
+ - Support for streaming responses and function calling
70
+ - Azure OpenAI support
71
+ - TypeScript support with native type integration
74
72
 
73
+ [1.0.13]: https://github.com/revenium/revenium-middleware-openai-node/releases/tag/v1.0.13
74
+ [1.0.12]: https://github.com/revenium/revenium-middleware-openai-node/releases/tag/v1.0.12
75
75
  [1.0.11]: https://github.com/revenium/revenium-middleware-openai-node/releases/tag/v1.0.11
76
76
  [1.0.10]: https://github.com/revenium/revenium-middleware-openai-node/releases/tag/v1.0.10
77
77
  [1.0.9]: https://github.com/revenium/revenium-middleware-openai-node/releases/tag/v1.0.9