llm-cost-monitor-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +139 -0
  2. package/dist/apis/AlertsApi.d.ts +54 -0
  3. package/dist/apis/AlertsApi.js +134 -0
  4. package/dist/apis/EventsApi.d.ts +47 -0
  5. package/dist/apis/EventsApi.js +112 -0
  6. package/dist/apis/MetricsApi.d.ts +52 -0
  7. package/dist/apis/MetricsApi.js +95 -0
  8. package/dist/apis/PricingApi.d.ts +32 -0
  9. package/dist/apis/PricingApi.js +70 -0
  10. package/dist/apis/index.d.ts +4 -0
  11. package/dist/apis/index.js +22 -0
  12. package/dist/esm/apis/AlertsApi.d.ts +54 -0
  13. package/dist/esm/apis/AlertsApi.js +130 -0
  14. package/dist/esm/apis/EventsApi.d.ts +47 -0
  15. package/dist/esm/apis/EventsApi.js +108 -0
  16. package/dist/esm/apis/MetricsApi.d.ts +52 -0
  17. package/dist/esm/apis/MetricsApi.js +91 -0
  18. package/dist/esm/apis/PricingApi.d.ts +32 -0
  19. package/dist/esm/apis/PricingApi.js +66 -0
  20. package/dist/esm/apis/index.d.ts +4 -0
  21. package/dist/esm/apis/index.js +6 -0
  22. package/dist/esm/index.d.ts +3 -0
  23. package/dist/esm/index.js +5 -0
  24. package/dist/esm/models/Alert.d.ts +56 -0
  25. package/dist/esm/models/Alert.js +49 -0
  26. package/dist/esm/models/CreateAlertRequest.d.ts +38 -0
  27. package/dist/esm/models/CreateAlertRequest.js +45 -0
  28. package/dist/esm/models/CreateEventRequest.d.ts +74 -0
  29. package/dist/esm/models/CreateEventRequest.js +63 -0
  30. package/dist/esm/models/ErrorResponse.d.ts +33 -0
  31. package/dist/esm/models/ErrorResponse.js +44 -0
  32. package/dist/esm/models/ErrorResponseError.d.ts +46 -0
  33. package/dist/esm/models/ErrorResponseError.js +49 -0
  34. package/dist/esm/models/Event.d.ts +104 -0
  35. package/dist/esm/models/Event.js +65 -0
  36. package/dist/esm/models/EventListResponse.d.ts +51 -0
  37. package/dist/esm/models/EventListResponse.js +48 -0
  38. package/dist/esm/models/EventResponse.d.ts +58 -0
  39. package/dist/esm/models/EventResponse.js +54 -0
  40. package/dist/esm/models/MetricPoint.d.ts +56 -0
  41. package/dist/esm/models/MetricPoint.js +49 -0
  42. package/dist/esm/models/MetricsResponse.d.ts +53 -0
  43. package/dist/esm/models/MetricsResponse.js +53 -0
  44. package/dist/esm/models/ModelPricing.d.ts +62 -0
  45. package/dist/esm/models/ModelPricing.js +51 -0
  46. package/dist/esm/models/index.d.ts +11 -0
  47. package/dist/esm/models/index.js +13 -0
  48. package/dist/esm/runtime.d.ts +184 -0
  49. package/dist/esm/runtime.js +334 -0
  50. package/dist/index.d.ts +3 -0
  51. package/dist/index.js +21 -0
  52. package/dist/models/Alert.d.ts +56 -0
  53. package/dist/models/Alert.js +56 -0
  54. package/dist/models/CreateAlertRequest.d.ts +38 -0
  55. package/dist/models/CreateAlertRequest.js +52 -0
  56. package/dist/models/CreateEventRequest.d.ts +74 -0
  57. package/dist/models/CreateEventRequest.js +70 -0
  58. package/dist/models/ErrorResponse.d.ts +33 -0
  59. package/dist/models/ErrorResponse.js +51 -0
  60. package/dist/models/ErrorResponseError.d.ts +46 -0
  61. package/dist/models/ErrorResponseError.js +56 -0
  62. package/dist/models/Event.d.ts +104 -0
  63. package/dist/models/Event.js +72 -0
  64. package/dist/models/EventListResponse.d.ts +51 -0
  65. package/dist/models/EventListResponse.js +55 -0
  66. package/dist/models/EventResponse.d.ts +58 -0
  67. package/dist/models/EventResponse.js +62 -0
  68. package/dist/models/MetricPoint.d.ts +56 -0
  69. package/dist/models/MetricPoint.js +56 -0
  70. package/dist/models/MetricsResponse.d.ts +53 -0
  71. package/dist/models/MetricsResponse.js +61 -0
  72. package/dist/models/ModelPricing.d.ts +62 -0
  73. package/dist/models/ModelPricing.js +58 -0
  74. package/dist/models/index.d.ts +11 -0
  75. package/dist/models/index.js +29 -0
  76. package/dist/runtime.d.ts +184 -0
  77. package/dist/runtime.js +350 -0
  78. package/package.json +54 -0
  79. package/src/apis/AlertsApi.ts +166 -0
  80. package/src/apis/EventsApi.ts +146 -0
  81. package/src/apis/MetricsApi.ts +117 -0
  82. package/src/apis/PricingApi.ts +81 -0
  83. package/src/apis/index.ts +6 -0
  84. package/src/index.ts +5 -0
  85. package/src/models/Alert.ts +97 -0
  86. package/src/models/CreateAlertRequest.ts +74 -0
  87. package/src/models/CreateEventRequest.ts +125 -0
  88. package/src/models/ErrorResponse.ts +74 -0
  89. package/src/models/ErrorResponseError.ts +83 -0
  90. package/src/models/Event.ts +161 -0
  91. package/src/models/EventListResponse.ts +97 -0
  92. package/src/models/EventResponse.ts +100 -0
  93. package/src/models/MetricPoint.ts +97 -0
  94. package/src/models/MetricsResponse.ts +100 -0
  95. package/src/models/ModelPricing.ts +105 -0
  96. package/src/models/index.ts +13 -0
  97. package/src/runtime.ts +432 -0
package/README.md ADDED
@@ -0,0 +1,139 @@
1
+ # @llmcost/sdk@v1.0.0
2
+
3
+ A TypeScript SDK client for the localhost API.
4
+
5
+ ## Usage
6
+
7
+ First, install the SDK from npm.
8
+
9
+ ```bash
10
+ npm install @llmcost/sdk --save
11
+ ```
12
+
13
+ Next, try it out.
14
+
15
+
16
+ ```ts
17
+ import {
18
+ Configuration,
19
+ AlertsApi,
20
+ } from '@llmcost/sdk';
21
+ import type { CreateAlertOperationRequest } from '@llmcost/sdk';
22
+
23
+ async function example() {
24
+ console.log("🚀 Testing @llmcost/sdk SDK...");
25
+ const config = new Configuration({
26
+ // To configure API key authorization: ApiKeyAuth
27
+ apiKey: "YOUR API KEY",
28
+ });
29
+ const api = new AlertsApi(config);
30
+
31
+ const body = {
32
+ // CreateAlertRequest
33
+ createAlertRequest: {"threshold":100.0,"window_interval":"24h"},
34
+ } satisfies CreateAlertOperationRequest;
35
+
36
+ try {
37
+ const data = await api.createAlert(body);
38
+ console.log(data);
39
+ } catch (error) {
40
+ console.error(error);
41
+ }
42
+ }
43
+
44
+ // Run the test
45
+ example().catch(console.error);
46
+ ```
47
+
48
+
49
+ ## Documentation
50
+
51
+ ### API Endpoints
52
+
53
+ All URIs are relative to *http://localhost:8080*
54
+
55
+ | Class | Method | HTTP request | Description
56
+ | ----- | ------ | ------------ | -------------
57
+ *AlertsApi* | [**createAlert**](docs/AlertsApi.md#createalertoperation) | **POST** /v1/alerts | Create budget alert
58
+ *AlertsApi* | [**deleteAlert**](docs/AlertsApi.md#deletealert) | **DELETE** /v1/alerts/{id} | Delete alert
59
+ *AlertsApi* | [**listAlerts**](docs/AlertsApi.md#listalerts) | **GET** /v1/alerts | List budget alerts
60
+ *EventsApi* | [**createEvent**](docs/EventsApi.md#createeventoperation) | **POST** /v1/events | Track LLM usage event
61
+ *EventsApi* | [**listEvents**](docs/EventsApi.md#listevents) | **GET** /v1/events | List LLM usage events
62
+ *MetricsApi* | [**getMetrics**](docs/MetricsApi.md#getmetrics) | **GET** /v1/metrics | Get aggregated metrics
63
+ *PricingApi* | [**listPricing**](docs/PricingApi.md#listpricing) | **GET** /v1/pricing | List model pricing
64
+
65
+
66
+ ### Models
67
+
68
+ - [Alert](docs/Alert.md)
69
+ - [CreateAlertRequest](docs/CreateAlertRequest.md)
70
+ - [CreateEventRequest](docs/CreateEventRequest.md)
71
+ - [ErrorResponse](docs/ErrorResponse.md)
72
+ - [ErrorResponseError](docs/ErrorResponseError.md)
73
+ - [Event](docs/Event.md)
74
+ - [EventListResponse](docs/EventListResponse.md)
75
+ - [EventResponse](docs/EventResponse.md)
76
+ - [MetricPoint](docs/MetricPoint.md)
77
+ - [MetricsResponse](docs/MetricsResponse.md)
78
+ - [ModelPricing](docs/ModelPricing.md)
79
+
80
+ ### Authorization
81
+
82
+
83
+ Authentication schemes defined for the API:
84
+ <a id="ApiKeyAuth"></a>
85
+ #### ApiKeyAuth
86
+
87
+
88
+ - **Type**: API key
89
+ - **API key parameter name**: `Authorization`
90
+ - **Location**: HTTP header
91
+
92
+ ## About
93
+
94
+ This TypeScript SDK client supports the [Fetch API](https://fetch.spec.whatwg.org/)
95
+ and is automatically generated by the
96
+ [OpenAPI Generator](https://openapi-generator.tech) project:
97
+
98
+ - API version: `v1.0.0`
99
+ - Package version: `v1.0.0`
100
+ - Generator version: `7.18.0`
101
+ - Build package: `org.openapitools.codegen.languages.TypeScriptFetchClientCodegen`
102
+
103
+ The generated npm module supports the following:
104
+
105
+ - Environments
106
+ * Node.js
107
+ * Webpack
108
+ * Browserify
109
+ - Language levels
110
+ * ES5 - you must have a Promises/A+ library installed
111
+ * ES6
112
+ - Module systems
113
+ * CommonJS
114
+ * ES6 module system
115
+
116
+
117
+ ## Development
118
+
119
+ ### Building
120
+
121
+ To build the TypeScript source code, you need to have Node.js and npm installed.
122
+ After cloning the repository, navigate to the project directory and run:
123
+
124
+ ```bash
125
+ npm install
126
+ npm run build
127
+ ```
128
+
129
+ ### Publishing
130
+
131
+ Once you've built the package, you can publish it to npm:
132
+
133
+ ```bash
134
+ npm publish
135
+ ```
136
+
137
+ ## License
138
+
139
+ [MIT](https://opensource.org/licenses/MIT)
@@ -0,0 +1,54 @@
1
+ /**
2
+ * LLM Cost Monitor API
3
+ * Open-source LLM cost observability platform API. Track, aggregate, and analyze LLM usage costs across your applications.
4
+ *
5
+ * The version of the OpenAPI document: v1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import * as runtime from '../runtime';
13
+ import type { Alert, CreateAlertRequest } from '../models/index';
14
+ export interface CreateAlertOperationRequest {
15
+ createAlertRequest: CreateAlertRequest;
16
+ }
17
+ export interface DeleteAlertRequest {
18
+ id: string;
19
+ }
20
+ /**
21
+ *
22
+ */
23
+ export declare class AlertsApi extends runtime.BaseAPI {
24
+ /**
25
+ * Creates a new cost threshold alert.
26
+ * Create budget alert
27
+ */
28
+ createAlertRaw(requestParameters: CreateAlertOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Alert>>;
29
+ /**
30
+ * Creates a new cost threshold alert.
31
+ * Create budget alert
32
+ */
33
+ createAlert(requestParameters: CreateAlertOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Alert>;
34
+ /**
35
+ * Permanently deletes a budget alert.
36
+ * Delete alert
37
+ */
38
+ deleteAlertRaw(requestParameters: DeleteAlertRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
39
+ /**
40
+ * Permanently deletes a budget alert.
41
+ * Delete alert
42
+ */
43
+ deleteAlert(requestParameters: DeleteAlertRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
44
+ /**
45
+ * Returns all active budget alerts for the project.
46
+ * List budget alerts
47
+ */
48
+ listAlertsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Alert>>>;
49
+ /**
50
+ * Returns all active budget alerts for the project.
51
+ * List budget alerts
52
+ */
53
+ listAlerts(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Alert>>;
54
+ }
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * LLM Cost Monitor API
6
+ * Open-source LLM cost observability platform API. Track, aggregate, and analyze LLM usage costs across your applications.
7
+ *
8
+ * The version of the OpenAPI document: v1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.AlertsApi = void 0;
26
+ const runtime = require("../runtime");
27
+ const index_1 = require("../models/index");
28
+ /**
29
+ *
30
+ */
31
+ class AlertsApi extends runtime.BaseAPI {
32
+ /**
33
+ * Creates a new cost threshold alert.
34
+ * Create budget alert
35
+ */
36
+ createAlertRaw(requestParameters, initOverrides) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ if (requestParameters['createAlertRequest'] == null) {
39
+ throw new runtime.RequiredError('createAlertRequest', 'Required parameter "createAlertRequest" was null or undefined when calling createAlert().');
40
+ }
41
+ const queryParameters = {};
42
+ const headerParameters = {};
43
+ headerParameters['Content-Type'] = 'application/json';
44
+ if (this.configuration && this.configuration.apiKey) {
45
+ headerParameters["Authorization"] = yield this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication
46
+ }
47
+ let urlPath = `/v1/alerts`;
48
+ const response = yield this.request({
49
+ path: urlPath,
50
+ method: 'POST',
51
+ headers: headerParameters,
52
+ query: queryParameters,
53
+ body: (0, index_1.CreateAlertRequestToJSON)(requestParameters['createAlertRequest']),
54
+ }, initOverrides);
55
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AlertFromJSON)(jsonValue));
56
+ });
57
+ }
58
+ /**
59
+ * Creates a new cost threshold alert.
60
+ * Create budget alert
61
+ */
62
+ createAlert(requestParameters, initOverrides) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const response = yield this.createAlertRaw(requestParameters, initOverrides);
65
+ return yield response.value();
66
+ });
67
+ }
68
+ /**
69
+ * Permanently deletes a budget alert.
70
+ * Delete alert
71
+ */
72
+ deleteAlertRaw(requestParameters, initOverrides) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ if (requestParameters['id'] == null) {
75
+ throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteAlert().');
76
+ }
77
+ const queryParameters = {};
78
+ const headerParameters = {};
79
+ if (this.configuration && this.configuration.apiKey) {
80
+ headerParameters["Authorization"] = yield this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication
81
+ }
82
+ let urlPath = `/v1/alerts/{id}`;
83
+ urlPath = urlPath.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id'])));
84
+ const response = yield this.request({
85
+ path: urlPath,
86
+ method: 'DELETE',
87
+ headers: headerParameters,
88
+ query: queryParameters,
89
+ }, initOverrides);
90
+ return new runtime.VoidApiResponse(response);
91
+ });
92
+ }
93
+ /**
94
+ * Permanently deletes a budget alert.
95
+ * Delete alert
96
+ */
97
+ deleteAlert(requestParameters, initOverrides) {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ yield this.deleteAlertRaw(requestParameters, initOverrides);
100
+ });
101
+ }
102
+ /**
103
+ * Returns all active budget alerts for the project.
104
+ * List budget alerts
105
+ */
106
+ listAlertsRaw(initOverrides) {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ const queryParameters = {};
109
+ const headerParameters = {};
110
+ if (this.configuration && this.configuration.apiKey) {
111
+ headerParameters["Authorization"] = yield this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication
112
+ }
113
+ let urlPath = `/v1/alerts`;
114
+ const response = yield this.request({
115
+ path: urlPath,
116
+ method: 'GET',
117
+ headers: headerParameters,
118
+ query: queryParameters,
119
+ }, initOverrides);
120
+ return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(index_1.AlertFromJSON));
121
+ });
122
+ }
123
+ /**
124
+ * Returns all active budget alerts for the project.
125
+ * List budget alerts
126
+ */
127
+ listAlerts(initOverrides) {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ const response = yield this.listAlertsRaw(initOverrides);
130
+ return yield response.value();
131
+ });
132
+ }
133
+ }
134
+ exports.AlertsApi = AlertsApi;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * LLM Cost Monitor API
3
+ * Open-source LLM cost observability platform API. Track, aggregate, and analyze LLM usage costs across your applications.
4
+ *
5
+ * The version of the OpenAPI document: v1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import * as runtime from '../runtime';
13
+ import type { CreateEventRequest, EventListResponse, EventResponse } from '../models/index';
14
+ export interface CreateEventOperationRequest {
15
+ createEventRequest: CreateEventRequest;
16
+ }
17
+ export interface ListEventsRequest {
18
+ limit?: number;
19
+ offset?: number;
20
+ from?: Date;
21
+ to?: Date;
22
+ }
23
+ /**
24
+ *
25
+ */
26
+ export declare class EventsApi extends runtime.BaseAPI {
27
+ /**
28
+ * Records an LLM usage event for cost tracking. Supports idempotency via trace_id - duplicate trace_ids are safely ignored.
29
+ * Track LLM usage event
30
+ */
31
+ createEventRaw(requestParameters: CreateEventOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EventResponse>>;
32
+ /**
33
+ * Records an LLM usage event for cost tracking. Supports idempotency via trace_id - duplicate trace_ids are safely ignored.
34
+ * Track LLM usage event
35
+ */
36
+ createEvent(requestParameters: CreateEventOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EventResponse>;
37
+ /**
38
+ * Returns paginated list of usage events for the project.
39
+ * List LLM usage events
40
+ */
41
+ listEventsRaw(requestParameters: ListEventsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EventListResponse>>;
42
+ /**
43
+ * Returns paginated list of usage events for the project.
44
+ * List LLM usage events
45
+ */
46
+ listEvents(requestParameters?: ListEventsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EventListResponse>;
47
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * LLM Cost Monitor API
6
+ * Open-source LLM cost observability platform API. Track, aggregate, and analyze LLM usage costs across your applications.
7
+ *
8
+ * The version of the OpenAPI document: v1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.EventsApi = void 0;
26
+ const runtime = require("../runtime");
27
+ const index_1 = require("../models/index");
28
+ /**
29
+ *
30
+ */
31
+ class EventsApi extends runtime.BaseAPI {
32
+ /**
33
+ * Records an LLM usage event for cost tracking. Supports idempotency via trace_id - duplicate trace_ids are safely ignored.
34
+ * Track LLM usage event
35
+ */
36
+ createEventRaw(requestParameters, initOverrides) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ if (requestParameters['createEventRequest'] == null) {
39
+ throw new runtime.RequiredError('createEventRequest', 'Required parameter "createEventRequest" was null or undefined when calling createEvent().');
40
+ }
41
+ const queryParameters = {};
42
+ const headerParameters = {};
43
+ headerParameters['Content-Type'] = 'application/json';
44
+ if (this.configuration && this.configuration.apiKey) {
45
+ headerParameters["Authorization"] = yield this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication
46
+ }
47
+ let urlPath = `/v1/events`;
48
+ const response = yield this.request({
49
+ path: urlPath,
50
+ method: 'POST',
51
+ headers: headerParameters,
52
+ query: queryParameters,
53
+ body: (0, index_1.CreateEventRequestToJSON)(requestParameters['createEventRequest']),
54
+ }, initOverrides);
55
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.EventResponseFromJSON)(jsonValue));
56
+ });
57
+ }
58
+ /**
59
+ * Records an LLM usage event for cost tracking. Supports idempotency via trace_id - duplicate trace_ids are safely ignored.
60
+ * Track LLM usage event
61
+ */
62
+ createEvent(requestParameters, initOverrides) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const response = yield this.createEventRaw(requestParameters, initOverrides);
65
+ return yield response.value();
66
+ });
67
+ }
68
+ /**
69
+ * Returns paginated list of usage events for the project.
70
+ * List LLM usage events
71
+ */
72
+ listEventsRaw(requestParameters, initOverrides) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ const queryParameters = {};
75
+ if (requestParameters['limit'] != null) {
76
+ queryParameters['limit'] = requestParameters['limit'];
77
+ }
78
+ if (requestParameters['offset'] != null) {
79
+ queryParameters['offset'] = requestParameters['offset'];
80
+ }
81
+ if (requestParameters['from'] != null) {
82
+ queryParameters['from'] = requestParameters['from'].toISOString();
83
+ }
84
+ if (requestParameters['to'] != null) {
85
+ queryParameters['to'] = requestParameters['to'].toISOString();
86
+ }
87
+ const headerParameters = {};
88
+ if (this.configuration && this.configuration.apiKey) {
89
+ headerParameters["Authorization"] = yield this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication
90
+ }
91
+ let urlPath = `/v1/events`;
92
+ const response = yield this.request({
93
+ path: urlPath,
94
+ method: 'GET',
95
+ headers: headerParameters,
96
+ query: queryParameters,
97
+ }, initOverrides);
98
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.EventListResponseFromJSON)(jsonValue));
99
+ });
100
+ }
101
+ /**
102
+ * Returns paginated list of usage events for the project.
103
+ * List LLM usage events
104
+ */
105
+ listEvents() {
106
+ return __awaiter(this, arguments, void 0, function* (requestParameters = {}, initOverrides) {
107
+ const response = yield this.listEventsRaw(requestParameters, initOverrides);
108
+ return yield response.value();
109
+ });
110
+ }
111
+ }
112
+ exports.EventsApi = EventsApi;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * LLM Cost Monitor API
3
+ * Open-source LLM cost observability platform API. Track, aggregate, and analyze LLM usage costs across your applications.
4
+ *
5
+ * The version of the OpenAPI document: v1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import * as runtime from '../runtime';
13
+ import type { MetricsResponse } from '../models/index';
14
+ export interface GetMetricsRequest {
15
+ period: GetMetricsPeriodEnum;
16
+ from?: Date;
17
+ to?: Date;
18
+ groupBy?: GetMetricsGroupByEnum;
19
+ }
20
+ /**
21
+ *
22
+ */
23
+ export declare class MetricsApi extends runtime.BaseAPI {
24
+ /**
25
+ * Returns aggregated cost and usage metrics for dashboards.
26
+ * Get aggregated metrics
27
+ */
28
+ getMetricsRaw(requestParameters: GetMetricsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MetricsResponse>>;
29
+ /**
30
+ * Returns aggregated cost and usage metrics for dashboards.
31
+ * Get aggregated metrics
32
+ */
33
+ getMetrics(requestParameters: GetMetricsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MetricsResponse>;
34
+ }
35
+ /**
36
+ * @export
37
+ */
38
+ export declare const GetMetricsPeriodEnum: {
39
+ readonly Hour: "hour";
40
+ readonly Day: "day";
41
+ };
42
+ export type GetMetricsPeriodEnum = typeof GetMetricsPeriodEnum[keyof typeof GetMetricsPeriodEnum];
43
+ /**
44
+ * @export
45
+ */
46
+ export declare const GetMetricsGroupByEnum: {
47
+ readonly Model: "model";
48
+ readonly Provider: "provider";
49
+ readonly Feature: "feature";
50
+ readonly UserId: "user_id";
51
+ };
52
+ export type GetMetricsGroupByEnum = typeof GetMetricsGroupByEnum[keyof typeof GetMetricsGroupByEnum];
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * LLM Cost Monitor API
6
+ * Open-source LLM cost observability platform API. Track, aggregate, and analyze LLM usage costs across your applications.
7
+ *
8
+ * The version of the OpenAPI document: v1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.GetMetricsGroupByEnum = exports.GetMetricsPeriodEnum = exports.MetricsApi = void 0;
26
+ const runtime = require("../runtime");
27
+ const index_1 = require("../models/index");
28
+ /**
29
+ *
30
+ */
31
+ class MetricsApi extends runtime.BaseAPI {
32
+ /**
33
+ * Returns aggregated cost and usage metrics for dashboards.
34
+ * Get aggregated metrics
35
+ */
36
+ getMetricsRaw(requestParameters, initOverrides) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ if (requestParameters['period'] == null) {
39
+ throw new runtime.RequiredError('period', 'Required parameter "period" was null or undefined when calling getMetrics().');
40
+ }
41
+ const queryParameters = {};
42
+ if (requestParameters['period'] != null) {
43
+ queryParameters['period'] = requestParameters['period'];
44
+ }
45
+ if (requestParameters['from'] != null) {
46
+ queryParameters['from'] = requestParameters['from'].toISOString();
47
+ }
48
+ if (requestParameters['to'] != null) {
49
+ queryParameters['to'] = requestParameters['to'].toISOString();
50
+ }
51
+ if (requestParameters['groupBy'] != null) {
52
+ queryParameters['group_by'] = requestParameters['groupBy'];
53
+ }
54
+ const headerParameters = {};
55
+ if (this.configuration && this.configuration.apiKey) {
56
+ headerParameters["Authorization"] = yield this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication
57
+ }
58
+ let urlPath = `/v1/metrics`;
59
+ const response = yield this.request({
60
+ path: urlPath,
61
+ method: 'GET',
62
+ headers: headerParameters,
63
+ query: queryParameters,
64
+ }, initOverrides);
65
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.MetricsResponseFromJSON)(jsonValue));
66
+ });
67
+ }
68
+ /**
69
+ * Returns aggregated cost and usage metrics for dashboards.
70
+ * Get aggregated metrics
71
+ */
72
+ getMetrics(requestParameters, initOverrides) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ const response = yield this.getMetricsRaw(requestParameters, initOverrides);
75
+ return yield response.value();
76
+ });
77
+ }
78
+ }
79
+ exports.MetricsApi = MetricsApi;
80
+ /**
81
+ * @export
82
+ */
83
+ exports.GetMetricsPeriodEnum = {
84
+ Hour: 'hour',
85
+ Day: 'day'
86
+ };
87
+ /**
88
+ * @export
89
+ */
90
+ exports.GetMetricsGroupByEnum = {
91
+ Model: 'model',
92
+ Provider: 'provider',
93
+ Feature: 'feature',
94
+ UserId: 'user_id'
95
+ };
@@ -0,0 +1,32 @@
1
+ /**
2
+ * LLM Cost Monitor API
3
+ * Open-source LLM cost observability platform API. Track, aggregate, and analyze LLM usage costs across your applications.
4
+ *
5
+ * The version of the OpenAPI document: v1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import * as runtime from '../runtime';
13
+ import type { ModelPricing } from '../models/index';
14
+ export interface ListPricingRequest {
15
+ provider?: string;
16
+ model?: string;
17
+ }
18
+ /**
19
+ *
20
+ */
21
+ export declare class PricingApi extends runtime.BaseAPI {
22
+ /**
23
+ * Returns current pricing for all supported models.
24
+ * List model pricing
25
+ */
26
+ listPricingRaw(requestParameters: ListPricingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<ModelPricing>>>;
27
+ /**
28
+ * Returns current pricing for all supported models.
29
+ * List model pricing
30
+ */
31
+ listPricing(requestParameters?: ListPricingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<ModelPricing>>;
32
+ }