@revenium/perplexity 2.0.8 → 2.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 (65) hide show
  1. package/.env.example +18 -1
  2. package/CHANGELOG.md +42 -0
  3. package/README.md +223 -37
  4. package/dist/cjs/core/config/loader.js +22 -1
  5. package/dist/cjs/core/config/loader.js.map +1 -1
  6. package/dist/cjs/core/config/manager.js +9 -0
  7. package/dist/cjs/core/config/manager.js.map +1 -1
  8. package/dist/cjs/core/middleware/interfaces.js +38 -1
  9. package/dist/cjs/core/middleware/interfaces.js.map +1 -1
  10. package/dist/cjs/core/middleware/streaming-wrapper.js +67 -2
  11. package/dist/cjs/core/middleware/streaming-wrapper.js.map +1 -1
  12. package/dist/cjs/core/tracking/api-client.js +2 -0
  13. package/dist/cjs/core/tracking/api-client.js.map +1 -1
  14. package/dist/cjs/core/tracking/payload-builder.js +28 -1
  15. package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
  16. package/dist/cjs/core/tracking/usage-tracker.js +9 -6
  17. package/dist/cjs/core/tracking/usage-tracker.js.map +1 -1
  18. package/dist/cjs/utils/prompt-extraction.js +194 -0
  19. package/dist/cjs/utils/prompt-extraction.js.map +1 -0
  20. package/dist/cjs/utils/summary-printer.js +237 -0
  21. package/dist/cjs/utils/summary-printer.js.map +1 -0
  22. package/dist/cjs/utils/trace-fields.js +136 -0
  23. package/dist/cjs/utils/trace-fields.js.map +1 -0
  24. package/dist/esm/core/config/loader.js +22 -1
  25. package/dist/esm/core/config/loader.js.map +1 -1
  26. package/dist/esm/core/config/manager.js +9 -0
  27. package/dist/esm/core/config/manager.js.map +1 -1
  28. package/dist/esm/core/middleware/interfaces.js +38 -1
  29. package/dist/esm/core/middleware/interfaces.js.map +1 -1
  30. package/dist/esm/core/middleware/streaming-wrapper.js +67 -2
  31. package/dist/esm/core/middleware/streaming-wrapper.js.map +1 -1
  32. package/dist/esm/core/tracking/api-client.js +2 -0
  33. package/dist/esm/core/tracking/api-client.js.map +1 -1
  34. package/dist/esm/core/tracking/payload-builder.js +28 -1
  35. package/dist/esm/core/tracking/payload-builder.js.map +1 -1
  36. package/dist/esm/core/tracking/usage-tracker.js +9 -6
  37. package/dist/esm/core/tracking/usage-tracker.js.map +1 -1
  38. package/dist/esm/utils/prompt-extraction.js +188 -0
  39. package/dist/esm/utils/prompt-extraction.js.map +1 -0
  40. package/dist/esm/utils/summary-printer.js +233 -0
  41. package/dist/esm/utils/summary-printer.js.map +1 -0
  42. package/dist/esm/utils/trace-fields.js +121 -0
  43. package/dist/esm/utils/trace-fields.js.map +1 -0
  44. package/dist/types/core/config/loader.d.ts.map +1 -1
  45. package/dist/types/core/config/manager.d.ts.map +1 -1
  46. package/dist/types/core/middleware/interfaces.d.ts.map +1 -1
  47. package/dist/types/core/middleware/streaming-wrapper.d.ts +9 -1
  48. package/dist/types/core/middleware/streaming-wrapper.d.ts.map +1 -1
  49. package/dist/types/core/tracking/api-client.d.ts.map +1 -1
  50. package/dist/types/core/tracking/payload-builder.d.ts +1 -1
  51. package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
  52. package/dist/types/core/tracking/usage-tracker.d.ts +8 -0
  53. package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -1
  54. package/dist/types/types/function-parameters.d.ts +7 -0
  55. package/dist/types/types/function-parameters.d.ts.map +1 -1
  56. package/dist/types/types/index.d.ts +24 -0
  57. package/dist/types/types/index.d.ts.map +1 -1
  58. package/dist/types/utils/prompt-extraction.d.ts +29 -0
  59. package/dist/types/utils/prompt-extraction.d.ts.map +1 -0
  60. package/dist/types/utils/summary-printer.d.ts +23 -0
  61. package/dist/types/utils/summary-printer.d.ts.map +1 -0
  62. package/dist/types/utils/trace-fields.d.ts +11 -0
  63. package/dist/types/utils/trace-fields.d.ts.map +1 -0
  64. package/examples/prompt-capture.ts +108 -0
  65. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAS9B;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB,GAAG,IAAI,CA0DP"}
1
+ {"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAS9B;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,MAAM,CAAC;IAC3E,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CA6DP"}
@@ -87,6 +87,13 @@ export interface PerplexityChatRequest {
87
87
  presence_penalty?: number;
88
88
  /** Frequency penalty */
89
89
  frequency_penalty?: number;
90
+ /** Response format specification */
91
+ response_format?: {
92
+ type: string;
93
+ json_schema?: {
94
+ name: string;
95
+ };
96
+ } | string;
90
97
  /** Usage metadata for Revenium tracking (custom field, not sent to Perplexity) */
91
98
  usageMetadata?: UsageMetadata;
92
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"function-parameters.d.ts","sourceRoot":"","sources":["../../../src/types/function-parameters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,KAAK,EAAE;QACL,qCAAqC;QACrC,aAAa,EAAE,MAAM,CAAC;QACtB,yCAAyC;QACzC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,8CAA8C;QAC9C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,kCAAkC;IAClC,OAAO,EAAE,KAAK,CAAC;QACb,yCAAyC;QACzC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,qDAAqD;QACrD,OAAO,CAAC,EAAE;YACR,sBAAsB;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,6CAA6C;YAC7C,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,8CAA8C;QAC9C,KAAK,CAAC,EAAE;YACN,0BAA0B;YAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,mBAAmB;YACnB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC,CAAC;IACH,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAC;QACd,mBAAmB;QACnB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;QACtC,sBAAsB;QACtB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qBAAqB;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"function-parameters.d.ts","sourceRoot":"","sources":["../../../src/types/function-parameters.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,8 @@ export interface UsageMetadata {
45
45
  responseQualityScore?: number;
46
46
  /** Agent or model variant identifier */
47
47
  agent?: string;
48
+ /** Per-call override for prompt capture (overrides environment variable and config) */
49
+ capturePrompts?: boolean;
48
50
  }
49
51
  /**
50
52
  * Provider information for tracking API source
@@ -80,6 +82,14 @@ export interface ReveniumConfig {
80
82
  debug?: boolean;
81
83
  /** Custom logger */
82
84
  logger?: Logger;
85
+ /** Print usage summary to console (default: false). Can be true, false, 'human', or 'json' */
86
+ printSummary?: boolean | "human" | "json";
87
+ /** Team ID for cost retrieval from Revenium API */
88
+ teamId?: string;
89
+ /** Whether to capture and send prompts to Revenium API (default: false) */
90
+ capturePrompts?: boolean;
91
+ /** Maximum size in characters for captured prompts before truncation (default: 50000). Note: uses JavaScript string length (UTF-16 code units), not byte count. */
92
+ maxPromptSize?: number;
83
93
  }
84
94
  /**
85
95
  * Configuration interface (alias for backward compatibility)
@@ -117,10 +127,24 @@ export interface ReveniumPayload {
117
127
  timeToFirstToken?: number;
118
128
  agent?: string;
119
129
  responseQualityScore?: number;
130
+ environment?: string;
131
+ region?: string;
132
+ credentialAlias?: string;
133
+ traceType?: string;
134
+ traceName?: string;
135
+ parentTransactionId?: string;
136
+ transactionName?: string;
137
+ retryNumber?: number;
138
+ operationSubtype?: string;
120
139
  middlewareSource: string;
121
140
  inputTokenCost?: number;
122
141
  outputTokenCost?: number;
123
142
  totalCost?: number;
143
+ attributes?: Record<string, unknown>;
144
+ systemPrompt?: string;
145
+ inputMessages?: string;
146
+ outputResponse?: string;
147
+ promptsTruncated?: boolean;
124
148
  }
125
149
  /**
126
150
  * Metering data interface (legacy, for backward compatibility)
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,0BAA0B,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mKAAmK;IACnK,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,cAAc;CAAG;AAEjD;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAG5B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAGrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;CAAG"}
@@ -0,0 +1,29 @@
1
+ import { UsageMetadata } from "../types/index.js";
2
+ import { PerplexityChatRequest, PerplexityResponse } from "../types/function-parameters.js";
3
+ export declare function getMaxPromptSize(): number;
4
+ export interface PromptData {
5
+ systemPrompt?: string;
6
+ inputMessages?: string;
7
+ outputResponse?: string;
8
+ promptsTruncated: boolean;
9
+ }
10
+ /**
11
+ * Sanitizes common credential patterns from text.
12
+ *
13
+ * Redacts the following credential types:
14
+ * - OpenAI keys: sk-*, sk-proj-*, sk-ant-* (20+ chars)
15
+ * - Perplexity keys: pplx-* (20+ chars)
16
+ * - AWS access keys: AKIA* (20 chars)
17
+ * - GitHub tokens: ghp_*, ghs_* (36+ chars)
18
+ * - JWT tokens: eyJ*.eyJ*.*
19
+ * - Bearer tokens
20
+ * - Generic API keys, tokens, passwords, secrets (8-20+ chars)
21
+ *
22
+ * LIMITATIONS:
23
+ * - Shorter credentials may pass through unsanitized
24
+ * - Length constraints balance security with false positive prevention
25
+ */
26
+ export declare function sanitizeCredentials(text: string): string;
27
+ export declare function shouldCapturePrompts(metadata?: UsageMetadata): boolean;
28
+ export declare function extractPrompts(params: PerplexityChatRequest, response: PerplexityResponse, metadata?: UsageMetadata): PromptData | null;
29
+ //# sourceMappingURL=prompt-extraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-extraction.d.ts","sourceRoot":"","sources":["../../../src/utils/prompt-extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAMzC,wBAAgB,gBAAgB,IAAI,MAAM,CAezC;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0DxD;AA0ED,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAgBtE;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,CAAC,EAAE,aAAa,GACvB,UAAU,GAAG,IAAI,CAmCnB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Summary Printer Module
3
+ *
4
+ * Provides terminal output for cost/metrics summary after API requests.
5
+ * Fetches cost data from Revenium's completions API and formats for console display.
6
+ *
7
+ * NOTE: This module intentionally uses console.log() for user-facing output,
8
+ * which is an exception to the standard logging practices.
9
+ * The Logger class is used for debug/error messages, while console.log
10
+ * is used for the formatted summary that users want to see in their terminal.
11
+ */
12
+ import { ReveniumPayload } from "../types/index.js";
13
+ type SummaryFormat = "human" | "json";
14
+ interface Config {
15
+ reveniumApiKey?: string;
16
+ reveniumBaseUrl?: string;
17
+ teamId?: string;
18
+ printSummary?: boolean | SummaryFormat;
19
+ }
20
+ export declare function setConfig(config: Config | null): void;
21
+ export declare function printUsageSummary(payload: ReveniumPayload): void;
22
+ export {};
23
+ //# sourceMappingURL=summary-printer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-printer.d.ts","sourceRoot":"","sources":["../../../src/utils/summary-printer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtC,UAAU,MAAM;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;CACxC;AAID,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAErD;AA4SD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CA0BhE"}
@@ -0,0 +1,11 @@
1
+ export declare function resetRegionCache(): void;
2
+ export declare function getEnvironment(): string | null;
3
+ export declare function getRegion(): Promise<string | null>;
4
+ export declare function getCredentialAlias(): string | null;
5
+ export declare function getTraceType(): string | null;
6
+ export declare function getTraceName(): string | null;
7
+ export declare function detectOperationSubtype(requestBody?: any): string | null;
8
+ export declare function getParentTransactionId(): string | null;
9
+ export declare function getTransactionName(): string | null;
10
+ export declare function getRetryNumber(): number | null;
11
+ //# sourceMappingURL=trace-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-fields.d.ts","sourceRoot":"","sources":["../../../src/utils/trace-fields.ts"],"names":[],"mappings":"AASA,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAqB9C;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuCxD;AAED,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAiBlD;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAwB5C;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAa5C;AAED,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAKvE;AAED,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAU9C"}
@@ -0,0 +1,108 @@
1
+ import { Configure, GetClient, UsageMetadata } from "../src/index.js";
2
+
3
+ async function main() {
4
+ console.log("=== Perplexity Prompt Capture Example ===\n");
5
+
6
+ Configure({
7
+ reveniumApiKey: process.env.REVENIUM_METERING_API_KEY || "test-key",
8
+ reveniumBaseUrl: process.env.REVENIUM_METERING_BASE_URL,
9
+ perplexityApiKey: process.env.PERPLEXITY_API_KEY || "test-key",
10
+ capturePrompts: true,
11
+ });
12
+
13
+ const client = GetClient();
14
+
15
+ console.log("Example 1: Prompt capture enabled via config");
16
+ console.log("Making request with prompt capture enabled...\n");
17
+
18
+ try {
19
+ const metadata: UsageMetadata = {
20
+ organizationId: "org-prompt-capture-demo",
21
+ productId: "prod-perplexity-prompt-capture",
22
+ };
23
+
24
+ const response = await client
25
+ .chat()
26
+ .completions()
27
+ .create(
28
+ {
29
+ model: "sonar-pro",
30
+ messages: [
31
+ {
32
+ role: "system",
33
+ content:
34
+ "You are a helpful assistant that provides concise answers.",
35
+ },
36
+ {
37
+ role: "user",
38
+ content: "What is the capital of France?",
39
+ },
40
+ ],
41
+ max_tokens: 100,
42
+ },
43
+ metadata
44
+ );
45
+
46
+ console.log("Response:", response.choices[0]?.message?.content);
47
+ console.log("\nPrompts captured and sent to Revenium API!");
48
+ } catch (error) {
49
+ console.error(
50
+ "Error:",
51
+ error instanceof Error ? error.message : String(error)
52
+ );
53
+ }
54
+
55
+ console.log("\n" + "=".repeat(50) + "\n");
56
+ console.log("Example 2: Prompt capture disabled via metadata override");
57
+ console.log("Making request with prompt capture disabled...\n");
58
+
59
+ try {
60
+ const metadata2: UsageMetadata = {
61
+ organizationId: "org-prompt-capture-demo",
62
+ productId: "prod-perplexity-prompt-capture",
63
+ capturePrompts: false,
64
+ };
65
+
66
+ const response2 = await client
67
+ .chat()
68
+ .completions()
69
+ .create(
70
+ {
71
+ model: "sonar-pro",
72
+ messages: [
73
+ {
74
+ role: "system",
75
+ content: "You are a helpful assistant.",
76
+ },
77
+ {
78
+ role: "user",
79
+ content: "What is 2+2?",
80
+ },
81
+ ],
82
+ max_tokens: 100,
83
+ },
84
+ metadata2
85
+ );
86
+
87
+ console.log("Response:", response2.choices[0]?.message?.content);
88
+ console.log("\nPrompts NOT captured (overridden via metadata)!");
89
+ } catch (error) {
90
+ console.error(
91
+ "Error:",
92
+ error instanceof Error ? error.message : String(error)
93
+ );
94
+ }
95
+
96
+ console.log("\n" + "=".repeat(50) + "\n");
97
+ console.log("Example 3: Prompt capture with environment variable");
98
+ console.log("Set REVENIUM_CAPTURE_PROMPTS=true in your .env file\n");
99
+
100
+ console.log("✅ Prompt capture examples completed!");
101
+ console.log("\nConfiguration hierarchy:");
102
+ console.log("1. Per-call metadata (highest priority)");
103
+ console.log("2. Global config");
104
+ console.log("3. Environment variable REVENIUM_CAPTURE_PROMPTS");
105
+ console.log("4. Default: false (lowest priority)");
106
+ }
107
+
108
+ main().catch(console.error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revenium/perplexity",
3
- "version": "2.0.8",
3
+ "version": "2.1.0",
4
4
  "description": "NodeJS middleware for Perplexity AI API with Revenium metering",
5
5
  "homepage": "https://github.com/revenium/revenium-middleware-perplexity-node#readme",
6
6
  "bugs": {
@@ -46,7 +46,8 @@
46
46
  "example:metadata": "npx tsx examples/metadata.ts",
47
47
  "example:advanced": "npx tsx examples/advanced.ts",
48
48
  "example:stream": "npx tsx examples/stream.ts",
49
- "test": "npm run example:getting-started && npm run example:stream"
49
+ "example:prompt-capture": "npx tsx examples/prompt-capture.ts",
50
+ "example": "npm run example:getting-started"
50
51
  },
51
52
  "keywords": [
52
53
  "revenium",
@@ -66,11 +67,13 @@
66
67
  "node": ">=20.0.0"
67
68
  },
68
69
  "dependencies": {
70
+ "axios": "^1.13.2",
69
71
  "dotenv": "^17.2.2",
70
72
  "uuid": "^13.0.0"
71
73
  },
72
74
  "devDependencies": {
73
75
  "@types/node": "^24.7.1",
76
+ "openai": "^5.23.2",
74
77
  "tsx": "^4.19.2",
75
78
  "typescript": "^5.9.2"
76
79
  },