@revenium/openai 1.0.16 → 1.1.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 (49) hide show
  1. package/.env.example +28 -8
  2. package/CHANGELOG.md +13 -21
  3. package/README.md +159 -18
  4. package/dist/cjs/core/config/loader.js +27 -1
  5. package/dist/cjs/core/config/loader.js.map +1 -1
  6. package/dist/cjs/core/middleware/interfaces.js +70 -32
  7. package/dist/cjs/core/middleware/interfaces.js.map +1 -1
  8. package/dist/cjs/core/tracking/index.js +3 -1
  9. package/dist/cjs/core/tracking/index.js.map +1 -1
  10. package/dist/cjs/core/tracking/payload-builder.js +34 -5
  11. package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
  12. package/dist/cjs/core/tracking/summary-printer.js +196 -0
  13. package/dist/cjs/core/tracking/summary-printer.js.map +1 -0
  14. package/dist/cjs/core/tracking/usage-tracker.js +37 -5
  15. package/dist/cjs/core/tracking/usage-tracker.js.map +1 -1
  16. package/dist/cjs/types/index.js.map +1 -1
  17. package/dist/cjs/utils/prompt-extraction.js +231 -0
  18. package/dist/cjs/utils/prompt-extraction.js.map +1 -0
  19. package/dist/esm/core/config/loader.js +27 -1
  20. package/dist/esm/core/config/loader.js.map +1 -1
  21. package/dist/esm/core/middleware/interfaces.js +70 -32
  22. package/dist/esm/core/middleware/interfaces.js.map +1 -1
  23. package/dist/esm/core/tracking/index.js +1 -0
  24. package/dist/esm/core/tracking/index.js.map +1 -1
  25. package/dist/esm/core/tracking/payload-builder.js +34 -5
  26. package/dist/esm/core/tracking/payload-builder.js.map +1 -1
  27. package/dist/esm/core/tracking/summary-printer.js +193 -0
  28. package/dist/esm/core/tracking/summary-printer.js.map +1 -0
  29. package/dist/esm/core/tracking/usage-tracker.js +37 -5
  30. package/dist/esm/core/tracking/usage-tracker.js.map +1 -1
  31. package/dist/esm/types/index.js.map +1 -1
  32. package/dist/esm/utils/prompt-extraction.js +225 -0
  33. package/dist/esm/utils/prompt-extraction.js.map +1 -0
  34. package/dist/types/core/config/loader.d.ts.map +1 -1
  35. package/dist/types/core/middleware/interfaces.d.ts +4 -1
  36. package/dist/types/core/middleware/interfaces.d.ts.map +1 -1
  37. package/dist/types/core/tracking/index.d.ts +1 -0
  38. package/dist/types/core/tracking/index.d.ts.map +1 -1
  39. package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
  40. package/dist/types/core/tracking/summary-printer.d.ts +9 -0
  41. package/dist/types/core/tracking/summary-printer.d.ts.map +1 -0
  42. package/dist/types/core/tracking/usage-tracker.d.ts +2 -0
  43. package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -1
  44. package/dist/types/types/index.d.ts +25 -0
  45. package/dist/types/types/index.d.ts.map +1 -1
  46. package/dist/types/utils/prompt-extraction.d.ts +29 -0
  47. package/dist/types/utils/prompt-extraction.d.ts.map +1 -0
  48. package/examples/openai/prompt-capture.ts +95 -0
  49. package/package.json +12 -1
package/.env.example CHANGED
@@ -1,15 +1,35 @@
1
- # Revenium Configuration (Required)
1
+ # OpenAI API Configuration
2
+ OPENAI_API_KEY=sk-your-openai-api-key-here
3
+
4
+ # Azure OpenAI Configuration (Optional)
5
+ AZURE_OPENAI_API_KEY=your-azure-openai-api-key
6
+ AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
7
+ AZURE_OPENAI_API_VERSION=2024-02-15-preview
8
+
9
+ # Revenium Metering Configuration
2
10
  REVENIUM_METERING_API_KEY=hak_your_revenium_api_key_here
3
11
  REVENIUM_METERING_BASE_URL=https://api.revenium.ai
4
12
 
5
- # OpenAI Configuration (Required for OpenAI native API)
6
- OPENAI_API_KEY=sk-your_openai_api_key_here
13
+ # Trace Visualization Fields (Optional)
14
+ REVENIUM_ENVIRONMENT=production
15
+ REVENIUM_REGION=us-east-1
16
+ REVENIUM_CREDENTIAL_ALIAS=OpenAI Production Key
17
+ REVENIUM_TRACE_TYPE=customer_support
18
+ REVENIUM_TRACE_NAME=Support Ticket #12345
19
+ REVENIUM_PARENT_TRANSACTION_ID=parent-txn-123
20
+ REVENIUM_TRANSACTION_NAME=Answer Customer Question
21
+ REVENIUM_RETRY_NUMBER=0
7
22
 
8
- # Azure OpenAI Configuration (Optional - for Azure OpenAI support)
9
- AZURE_OPENAI_API_KEY=your_azure_openai_api_key
10
- AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
11
- AZURE_OPENAI_API_VERSION=your_azure_openai_api_version
23
+ # Terminal Summary Output (Optional)
24
+ # Enable to print cost/metrics summary to terminal after each API request
25
+ # Values: 'true' or 'human' for human-readable output, 'json' for JSON output, 'false' to disable
26
+ REVENIUM_PRINT_SUMMARY=false
27
+ # Team ID required to display cost information in terminal summary
28
+ # Find your team ID in the Revenium web application
29
+ REVENIUM_TEAM_ID=your-team-id-here
12
30
 
13
31
  # Debug Configuration (Optional)
14
- REVENIUM_DEBUG=false # Set to true to enable debug logging
32
+ REVENIUM_DEBUG=false
15
33
 
34
+ # AWS Region Detection (Optional - auto-detected if not set)
35
+ AWS_REGION=us-east-1
package/CHANGELOG.md CHANGED
@@ -5,32 +5,24 @@ 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.16] - 2026-01-12
8
+ ## [1.1.0] - 2026-01-20
9
9
 
10
10
  ### Added
11
11
 
12
- - **Trace Visualization Fields**: Full implementation of trace fields in payload builder
13
- - `environment` - Deployment environment with fallback chain (REVENIUM_ENVIRONMENT NODE_ENV → DEPLOYMENT_ENV)
14
- - `region` - Cloud region with auto-detection from AWS/Azure/GCP and metadata service fallback
15
- - `credentialAlias` - Human-readable credential name
16
- - `traceType` - Categorical identifier with format validation (alphanumeric, hyphens, underscores, max 128 chars)
17
- - `traceName` - Human-readable trace label with length validation (max 256 chars)
18
- - `parentTransactionId` - Parent transaction reference for distributed tracing
19
- - `transactionName` - Human-friendly operation label
20
- - `retryNumber` - Retry attempt tracking (0 for first attempt, 1+ for retries)
21
- - `operationSubtype` - Auto-detected operation details (e.g., function_call when tools are present)
12
+ - Comprehensive credential sanitization with support for:
13
+ - OpenAI keys (sk-_, sk-proj-_, sk-ant-\*)
14
+ - Perplexity keys (pplx-\*)
15
+ - AWS access keys (AKIA\*)
16
+ - GitHub tokens (ghp*\*, ghs*\*)
17
+ - JWT tokens
18
+ - Bearer tokens
19
+ - Generic API keys, tokens, passwords, and secrets
22
20
 
23
- ### Changed
24
-
25
- - Updated `buildPayload()` function to async to support region detection
26
- - Enhanced README with comprehensive trace visualization fields documentation
27
- - Added trace fields to TypeScript interface `ReveniumPayload`
28
-
29
- ### Documentation
21
+ ### Security
30
22
 
31
- - Added "Trace Visualization Fields" section to README with complete field descriptions
32
- - Added example configuration for trace fields
33
- - Updated documentation to match other middleware packages (anthropic-node, perplexity-node)
23
+ - Enhanced credential sanitization with support for multiple credential types
24
+ - Fixed password regex pattern to properly handle quoted values
25
+ - Improved character class consistency across all patterns
34
26
 
35
27
  ## [1.0.15] - 2025-12-09
36
28
 
package/README.md CHANGED
@@ -106,6 +106,28 @@ The middleware provides a Go-aligned API with the following main functions:
106
106
 
107
107
  **For complete API documentation and usage examples, see [`examples/README.md`](https://github.com/revenium/revenium-middleware-openai-node/blob/HEAD/examples/README.md).**
108
108
 
109
+ ## Metadata Fields
110
+
111
+ The middleware supports the following optional metadata fields for tracking:
112
+
113
+ | Field | Type | Description |
114
+ | ----------------------- | ------ | ----------------------------------------------------------- |
115
+ | `traceId` | string | Unique identifier for session or conversation tracking |
116
+ | `taskType` | string | Type of AI task being performed (e.g., "chat", "embedding") |
117
+ | `agent` | string | AI agent or bot identifier |
118
+ | `organizationId` | string | Organization or company identifier |
119
+ | `productId` | string | Your product or feature identifier |
120
+ | `subscriptionId` | string | Subscription plan identifier |
121
+ | `responseQualityScore` | number | Custom quality rating (0.0-1.0) |
122
+ | `subscriber.id` | string | Unique user identifier |
123
+ | `subscriber.email` | string | User email address |
124
+ | `subscriber.credential` | object | Authentication credential (`name` and `value` fields) |
125
+
126
+ **All metadata fields are optional.** For complete metadata documentation and usage examples, see:
127
+
128
+ - [`examples/README.md`](https://github.com/revenium/revenium-middleware-openai-node/blob/HEAD/examples/README.md) - All usage examples
129
+ - [Revenium API Reference](https://revenium.readme.io/reference/meter_ai_completion) - Complete API documentation
130
+
109
131
  ## Trace Visualization Fields
110
132
 
111
133
  The middleware automatically captures trace visualization fields for distributed tracing and analytics:
@@ -113,7 +135,7 @@ The middleware automatically captures trace visualization fields for distributed
113
135
  | Field | Type | Description | Environment Variable |
114
136
  | --------------------- | ------ | ------------------------------------------------------------------------------- | ---------------------------------- |
115
137
  | `environment` | string | Deployment environment (production, staging, development) | `REVENIUM_ENVIRONMENT`, `NODE_ENV` |
116
- | `operationType` | string | Operation classification (CHAT, EMBED, IMAGE, AUDIO) - automatically detected | N/A (auto-detected) |
138
+ | `operationType` | string | Operation classification (CHAT, EMBED, etc.) - automatically detected | N/A (auto-detected) |
117
139
  | `operationSubtype` | string | Additional detail (function_call, etc.) - automatically detected | N/A (auto-detected) |
118
140
  | `retryNumber` | number | Retry attempt number (0 for first attempt, 1+ for retries) | `REVENIUM_RETRY_NUMBER` |
119
141
  | `parentTransactionId` | string | Parent transaction reference for distributed tracing | `REVENIUM_PARENT_TRANSACTION_ID` |
@@ -138,27 +160,113 @@ REVENIUM_TRANSACTION_NAME=Answer Customer Question
138
160
  REVENIUM_RETRY_NUMBER=0
139
161
  ```
140
162
 
141
- ## Metadata Fields
163
+ ## Terminal Summary Output
142
164
 
143
- The middleware supports the following optional metadata fields for tracking:
165
+ The middleware can optionally print a cost/metrics summary to the terminal after each API request. This is useful during development to see token usage and estimated costs without checking the dashboard.
144
166
 
145
- | Field | Type | Description |
146
- | ----------------------- | ------ | ----------------------------------------------------------- |
147
- | `traceId` | string | Unique identifier for session or conversation tracking |
148
- | `taskType` | string | Type of AI task being performed (e.g., "chat", "embedding") |
149
- | `agent` | string | AI agent or bot identifier |
150
- | `organizationId` | string | Organization or company identifier |
151
- | `productId` | string | Your product or feature identifier |
152
- | `subscriptionId` | string | Subscription plan identifier |
153
- | `responseQualityScore` | number | Custom quality rating (0.0-1.0) |
154
- | `subscriber.id` | string | Unique user identifier |
155
- | `subscriber.email` | string | User email address |
156
- | `subscriber.credential` | object | Authentication credential (`name` and `value` fields) |
167
+ ### Enabling Terminal Summary
157
168
 
158
- **All metadata fields are optional.** For complete metadata documentation and usage examples, see:
169
+ Set the following environment variables:
159
170
 
160
- - [`examples/README.md`](https://github.com/revenium/revenium-middleware-openai-node/blob/HEAD/examples/README.md) - All usage examples
161
- - [Revenium API Reference](https://revenium.readme.io/reference/meter_ai_completion) - Complete API documentation
171
+ ```env
172
+ # Use 'true' or 'human' for human-readable output, 'json' for JSON output
173
+ REVENIUM_PRINT_SUMMARY=true
174
+ REVENIUM_TEAM_ID=your-team-id-here
175
+ ```
176
+
177
+ Or configure programmatically:
178
+
179
+ ```typescript
180
+ Initialize({
181
+ reveniumApiKey: "hak_your-api-key",
182
+ printSummary: true, // or 'human' or 'json'
183
+ teamId: "your-team-id",
184
+ });
185
+ ```
186
+
187
+ ### Output Formats
188
+
189
+ #### Human-Readable Format (default)
190
+
191
+ Set `REVENIUM_PRINT_SUMMARY=true` or `REVENIUM_PRINT_SUMMARY=human`:
192
+
193
+ ```
194
+ ============================================================
195
+ 📊 REVENIUM USAGE SUMMARY
196
+ ============================================================
197
+ 🤖 Model: gpt-4o-mini
198
+ 🏢 Provider: OpenAI
199
+ ⏱️ Duration: 1.23s
200
+
201
+ 💬 Token Usage:
202
+ 📥 Input Tokens: 150
203
+ 📤 Output Tokens: 250
204
+ 📊 Total Tokens: 400
205
+
206
+ 💰 Cost: $0.000450
207
+ ============================================================
208
+ ```
209
+
210
+ #### JSON Format
211
+
212
+ Set `REVENIUM_PRINT_SUMMARY=json` for machine-readable output:
213
+
214
+ ```json
215
+ {
216
+ "model": "gpt-4o-mini",
217
+ "provider": "OpenAI",
218
+ "durationSeconds": 1.23,
219
+ "inputTokenCount": 150,
220
+ "outputTokenCount": 250,
221
+ "totalTokenCount": 400,
222
+ "cost": 0.00045,
223
+ "traceId": "abc-123"
224
+ }
225
+ ```
226
+
227
+ The JSON output includes all the same fields as the human-readable format and is ideal for log parsing, automation, and integration with other tools.
228
+
229
+ **Note:** The `teamId` is required to display cost information. If not provided, the summary will show token usage but the `cost` field will be `null` with a `costStatus` of `"unavailable"`. When `teamId` is set but the cost hasn't been aggregated yet, the `cost` field will be `null` with a `costStatus` of `"pending"`. You can find your team ID in the Revenium web application.
230
+
231
+ ## Prompt Capture
232
+
233
+ The middleware can capture prompts and responses for analysis. This feature is **disabled by default** for privacy and performance.
234
+
235
+ ### Configuration
236
+
237
+ Enable prompt capture globally via environment variable:
238
+
239
+ ```bash
240
+ REVENIUM_CAPTURE_PROMPTS=true
241
+ REVENIUM_MAX_PROMPT_SIZE=50000 # Optional: default is 50000 characters
242
+ ```
243
+
244
+ Or enable per-request via metadata:
245
+
246
+ ```typescript
247
+ const response = await client.chat.completions.create(
248
+ {
249
+ model: "gpt-4",
250
+ messages: [{ role: "user", content: "Hello!" }],
251
+ },
252
+ {
253
+ usageMetadata: { capturePrompts: true },
254
+ },
255
+ );
256
+ ```
257
+
258
+ ### Security
259
+
260
+ Captured prompts are automatically sanitized to remove sensitive credentials:
261
+
262
+ - API keys (OpenAI, Anthropic, Perplexity)
263
+ - AWS access keys
264
+ - GitHub tokens
265
+ - JWT tokens
266
+ - Bearer tokens
267
+ - Passwords and secrets
268
+
269
+ Prompts exceeding `maxPromptSize` are truncated and marked with `promptsTruncated: true`.
162
270
 
163
271
  ## Configuration Options
164
272
 
@@ -281,6 +389,39 @@ For detailed documentation, visit [docs.revenium.io](https://docs.revenium.io)
281
389
 
282
390
  See [CONTRIBUTING.md](https://github.com/revenium/revenium-middleware-openai-node/blob/HEAD/CONTRIBUTING.md)
283
391
 
392
+ ## Testing
393
+
394
+ The middleware includes comprehensive automated tests that fail the build when something is wrong.
395
+
396
+ ### Run All Tests
397
+
398
+ Run unit, integration, and performance tests:
399
+
400
+ ```bash
401
+ npm test
402
+ ```
403
+
404
+ ### Run Tests with Coverage
405
+
406
+ ```bash
407
+ npm run test:coverage
408
+ ```
409
+
410
+ ### Run Tests in Watch Mode
411
+
412
+ ```bash
413
+ npm run test:watch
414
+ ```
415
+
416
+ ### Test Requirements
417
+
418
+ All tests are designed to:
419
+
420
+ - ✅ Fail the build when something is wrong (`process.exit(1)`)
421
+ - ✅ Pass when everything works correctly (`process.exit(0)`)
422
+ - ✅ Provide clear error messages
423
+ - ✅ Test trace field validation, environment detection, and region detection
424
+
284
425
  ## Code of Conduct
285
426
 
286
427
  See [CODE_OF_CONDUCT.md](https://github.com/revenium/revenium-middleware-openai-node/blob/HEAD/CODE_OF_CONDUCT.md)
@@ -13,6 +13,23 @@ const dotenv_1 = require("dotenv");
13
13
  const fs_1 = require("fs");
14
14
  const path_1 = require("path");
15
15
  const constants_js_1 = require("../../utils/constants.js");
16
+ /**
17
+ * Parse REVENIUM_PRINT_SUMMARY environment variable value
18
+ * @param value - The raw environment variable value
19
+ * @returns boolean | SummaryFormat - false if disabled, 'human' or 'json' if enabled
20
+ */
21
+ function parsePrintSummaryValue(value) {
22
+ if (!value)
23
+ return false;
24
+ const normalized = value.toLowerCase().trim();
25
+ if (normalized === "json") {
26
+ return "json";
27
+ }
28
+ if (normalized === "human" || normalized === "true") {
29
+ return "human";
30
+ }
31
+ return false;
32
+ }
16
33
  /**
17
34
  * Flag to track if .env files have been loaded
18
35
  */
@@ -48,13 +65,22 @@ function loadConfigFromEnv() {
48
65
  process.env.REVENIUM_BASE_URL ||
49
66
  constants_js_1.DEFAULT_REVENIUM_BASE_URL;
50
67
  const openaiApiKey = process.env.OPENAI_API_KEY;
68
+ const printSummary = parsePrintSummaryValue(process.env.REVENIUM_PRINT_SUMMARY);
69
+ const teamId = process.env.REVENIUM_TEAM_ID;
70
+ const capturePromptsEnv = process.env.REVENIUM_CAPTURE_PROMPTS;
51
71
  if (!reveniumApiKey)
52
72
  return null;
53
- return {
73
+ const config = {
54
74
  reveniumApiKey,
55
75
  reveniumBaseUrl,
56
76
  openaiApiKey,
77
+ printSummary,
78
+ teamId,
57
79
  };
80
+ if (capturePromptsEnv !== undefined) {
81
+ config.capturePrompts = capturePromptsEnv.toLowerCase() === "true";
82
+ }
83
+ return config;
58
84
  }
59
85
  /**
60
86
  * Load Azure configuration from environment variables
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAwCH,8CAiBC;AAMD,wDAcC;AAKD,kDAIC;AAnFD,mCAA8C;AAC9C,2BAAgC;AAChC,+BAA4B;AAC5B,2DAAqE;AAErE;;GAEG;AACH,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;;GAGG;AACH,SAAS,YAAY;IACnB,IAAI,cAAc;QAAE,OAAO;IAE3B,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACnC,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,IAAA,eAAU,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB;IAC/B,YAAY,EAAE,CAAC;IAEf,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACxE,MAAM,eAAe,GACnB,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,wCAAyB,CAAC;IAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAEhD,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO;QACL,cAAc;QACd,eAAe;QACf,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB;IACpC,YAAY,EAAE,CAAC;IAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAEhD,4CAA4C;IAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO;QACL,QAAQ;QACR,UAAU;QACV,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,CAAC,CAAC,CACP,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CACtE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA8DH,8CA+BC;AAMD,wDAcC;AAKD,kDAIC;AAvHD,mCAA8C;AAC9C,2BAAgC;AAChC,+BAA4B;AAC5B,2DAAqE;AAErE;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,KAAyB;IAEzB,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAE9C,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;;GAGG;AACH,SAAS,YAAY;IACnB,IAAI,cAAc;QAAE,OAAO;IAE3B,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACnC,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,IAAA,eAAU,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB;IAC/B,YAAY,EAAE,CAAC;IAEf,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACxE,MAAM,eAAe,GACnB,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,wCAAyB,CAAC;IAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAChD,MAAM,YAAY,GAAG,sBAAsB,CACzC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CACnC,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAE/D,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,MAAM,GAAmB;QAC7B,cAAc;QACd,eAAe;QACf,YAAY;QACZ,YAAY;QACZ,MAAM;KACP,CAAC;IAEF,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,cAAc,GAAG,iBAAiB,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IACrE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB;IACpC,YAAY,EAAE,CAAC;IAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAEhD,4CAA4C;IAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO;QACL,QAAQ;QACR,UAAU;QACV,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,CAAC,CAAC,CACP,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CACtE,CAAC;AACJ,CAAC"}
@@ -10,28 +10,62 @@ exports.AudioSpeechInterface = exports.AudioTranslationsInterface = exports.Audi
10
10
  const crypto_1 = require("crypto");
11
11
  const config_1 = require("../config");
12
12
  const tracking_1 = require("../tracking");
13
+ const prompt_extraction_js_1 = require("../../utils/prompt-extraction.js");
13
14
  const logger = (0, config_1.getLogger)();
14
15
  /**
15
16
  * StreamingWrapper - wraps OpenAI stream and tracks tokens
16
17
  */
17
18
  class StreamingWrapper {
18
- constructor(stream, config, providerInfo, model, metadata) {
19
+ constructor(stream, config, providerInfo, model, messages, metadata) {
19
20
  this.usage = {};
21
+ this.accumulatedContent = "";
20
22
  this.stream = stream;
21
23
  this.config = config;
22
24
  this.providerInfo = providerInfo;
23
25
  this.model = model;
26
+ this.messages = messages;
24
27
  this.metadata = metadata;
25
28
  this.startTime = Date.now();
26
29
  this.requestId = (0, crypto_1.randomUUID)();
27
30
  }
31
+ buildTrackingPayload(finishReason, timeToFirstToken) {
32
+ return {
33
+ requestId: this.requestId,
34
+ model: this.model,
35
+ promptTokens: this.usage.prompt_tokens || 0,
36
+ completionTokens: this.usage.completion_tokens || 0,
37
+ totalTokens: this.usage.total_tokens || 0,
38
+ reasoningTokens: this.usage.completion_tokens_details?.reasoning_tokens,
39
+ cachedTokens: this.usage.prompt_tokens_details?.cached_tokens,
40
+ duration: Date.now() - this.startTime,
41
+ finishReason,
42
+ usageMetadata: this.metadata,
43
+ isStreamed: true,
44
+ timeToFirstToken,
45
+ providerInfo: this.providerInfo,
46
+ messages: this.messages,
47
+ responseContent: this.accumulatedContent
48
+ ? (0, prompt_extraction_js_1.sanitizeCredentials)(this.accumulatedContent)
49
+ : undefined,
50
+ };
51
+ }
28
52
  async *[Symbol.asyncIterator]() {
53
+ let completed = false;
29
54
  try {
30
55
  for await (const chunk of this.stream) {
31
56
  // Record time to first token
32
57
  if (!this.firstTokenTime && chunk.choices[0]?.delta?.content) {
33
58
  this.firstTokenTime = Date.now();
34
59
  }
60
+ // Accumulate content for prompt capture
61
+ if (chunk.choices[0]?.delta?.content &&
62
+ (0, prompt_extraction_js_1.shouldCapturePrompts)(this.metadata)) {
63
+ const maxSize = (0, prompt_extraction_js_1.getMaxPromptSize)();
64
+ const remaining = maxSize - this.accumulatedContent.length;
65
+ if (remaining > 0) {
66
+ this.accumulatedContent += chunk.choices[0].delta.content.slice(0, remaining);
67
+ }
68
+ }
35
69
  // Accumulate usage data
36
70
  if (chunk.usage) {
37
71
  this.usage = chunk.usage;
@@ -42,54 +76,42 @@ class StreamingWrapper {
42
76
  }
43
77
  yield chunk;
44
78
  }
79
+ completed = true;
45
80
  // Stream completed - track usage
46
- const duration = Date.now() - this.startTime;
47
81
  const timeToFirstToken = this.firstTokenTime
48
82
  ? this.firstTokenTime - this.startTime
49
83
  : undefined;
50
- (0, tracking_1.trackUsageAsync)({
51
- requestId: this.requestId,
52
- model: this.model,
53
- promptTokens: this.usage.prompt_tokens || 0,
54
- completionTokens: this.usage.completion_tokens || 0,
55
- totalTokens: this.usage.total_tokens || 0,
56
- reasoningTokens: this.usage.completion_tokens_details?.reasoning_tokens,
57
- cachedTokens: this.usage.prompt_tokens_details?.cached_tokens,
58
- duration,
59
- finishReason: null, // Will be in final chunk
60
- usageMetadata: this.metadata,
61
- isStreamed: true,
62
- timeToFirstToken,
63
- providerInfo: this.providerInfo,
64
- });
84
+ (0, tracking_1.trackUsageAsync)(this.buildTrackingPayload(null, timeToFirstToken));
65
85
  logger.debug("Streaming completed", {
66
86
  requestId: this.requestId,
67
87
  model: this.model,
68
- duration,
88
+ duration: Date.now() - this.startTime,
69
89
  timeToFirstToken,
70
90
  });
71
91
  }
72
92
  catch (error) {
73
- const duration = Date.now() - this.startTime;
93
+ completed = true;
74
94
  // Track error
75
- (0, tracking_1.trackUsageAsync)({
76
- requestId: this.requestId,
77
- model: this.model,
78
- promptTokens: this.usage.prompt_tokens || 0,
79
- completionTokens: this.usage.completion_tokens || 0,
80
- totalTokens: this.usage.total_tokens || 0,
81
- duration,
82
- finishReason: "error",
83
- usageMetadata: this.metadata,
84
- isStreamed: true,
85
- providerInfo: this.providerInfo,
86
- });
95
+ (0, tracking_1.trackUsageAsync)(this.buildTrackingPayload("error"));
87
96
  logger.error("Streaming error", {
88
97
  error: error instanceof Error ? error.message : String(error),
89
98
  requestId: this.requestId,
90
99
  });
91
100
  throw error;
92
101
  }
102
+ finally {
103
+ if (!completed) {
104
+ const timeToFirstToken = this.firstTokenTime
105
+ ? this.firstTokenTime - this.startTime
106
+ : undefined;
107
+ (0, tracking_1.trackUsageAsync)(this.buildTrackingPayload("cancelled", timeToFirstToken));
108
+ logger.debug("Streaming cancelled", {
109
+ requestId: this.requestId,
110
+ model: this.model,
111
+ duration: Date.now() - this.startTime,
112
+ });
113
+ }
114
+ }
93
115
  }
94
116
  }
95
117
  exports.StreamingWrapper = StreamingWrapper;
@@ -113,6 +135,7 @@ class CompletionsInterface {
113
135
  const response = await this.client.chat.completions.create(params);
114
136
  const duration = Date.now() - startTime;
115
137
  // Track usage
138
+ const responseContent = response.choices[0]?.message?.content;
116
139
  (0, tracking_1.trackUsageAsync)({
117
140
  requestId: response.id || requestId,
118
141
  model: response.model,
@@ -126,6 +149,10 @@ class CompletionsInterface {
126
149
  usageMetadata: metadata,
127
150
  isStreamed: false,
128
151
  providerInfo: this.providerInfo,
152
+ messages: params.messages,
153
+ responseContent: responseContent && (0, prompt_extraction_js_1.shouldCapturePrompts)(metadata)
154
+ ? (0, prompt_extraction_js_1.sanitizeCredentials)(responseContent)
155
+ : undefined,
129
156
  });
130
157
  logger.debug("Chat completion created", {
131
158
  requestId: response.id,
@@ -148,6 +175,7 @@ class CompletionsInterface {
148
175
  usageMetadata: metadata,
149
176
  isStreamed: false,
150
177
  providerInfo: this.providerInfo,
178
+ messages: params.messages,
151
179
  });
152
180
  logger.error("Chat completion failed", {
153
181
  error: error instanceof Error ? error.message : String(error),
@@ -168,7 +196,7 @@ class CompletionsInterface {
168
196
  stream: true,
169
197
  stream_options: { include_usage: true },
170
198
  });
171
- return new StreamingWrapper(stream, this.config, this.providerInfo, params.model, metadata);
199
+ return new StreamingWrapper(stream, this.config, this.providerInfo, params.model, params.messages, metadata);
172
200
  }
173
201
  }
174
202
  exports.CompletionsInterface = CompletionsInterface;
@@ -256,6 +284,9 @@ class ResponsesInterface {
256
284
  // Track usage (Responses API has different usage structure)
257
285
  const usage = response.usage;
258
286
  if (usage) {
287
+ const inputMessages = Array.isArray(params.input)
288
+ ? params.input
289
+ : [{ role: "user", content: params.input }];
259
290
  (0, tracking_1.trackUsageAsync)({
260
291
  requestId: response.id || requestId,
261
292
  model: response.model || params.model,
@@ -269,6 +300,8 @@ class ResponsesInterface {
269
300
  usageMetadata: metadata,
270
301
  isStreamed: false,
271
302
  providerInfo: this.providerInfo,
303
+ messages: inputMessages,
304
+ responseContent: response.output || undefined,
272
305
  });
273
306
  }
274
307
  logger.debug("Response created (Responses API)", {
@@ -323,6 +356,9 @@ class ResponsesInterface {
323
356
  const duration = Date.now() - startTime;
324
357
  if (finalResponse?.usage) {
325
358
  const usage = finalResponse.usage;
359
+ const inputMessages = Array.isArray(params.input)
360
+ ? params.input
361
+ : [{ role: "user", content: params.input }];
326
362
  (0, tracking_1.trackUsageAsync)({
327
363
  requestId: finalResponse.id || requestId,
328
364
  model: finalResponse.model || params.model,
@@ -336,6 +372,8 @@ class ResponsesInterface {
336
372
  usageMetadata: metadata,
337
373
  isStreamed: true,
338
374
  providerInfo: self.providerInfo,
375
+ messages: inputMessages,
376
+ responseContent: fullContent,
339
377
  });
340
378
  }
341
379
  logger.debug("Streaming response completed (Responses API)", {
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":"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"}