@thinkhive/sdk 4.1.0 → 4.2.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.
@@ -0,0 +1,52 @@
1
+ /**
2
+ * ThinkHive SDK - Documents API
3
+ *
4
+ * Agent document management for RAG (Retrieval-Augmented Generation)
5
+ */
6
+ /** An agent document used for RAG */
7
+ export interface Document {
8
+ id: string;
9
+ agentId: string;
10
+ fileName: string;
11
+ fileType: string;
12
+ fileSize: number;
13
+ status: string;
14
+ uploadedAt: string;
15
+ processedAt?: string;
16
+ metadata?: Record<string, unknown>;
17
+ }
18
+ /** Upload response with signed URL or document details */
19
+ export interface DocumentUploadResponse {
20
+ document: Document;
21
+ uploadUrl?: string;
22
+ }
23
+ /**
24
+ * Documents API client for managing agent RAG documents
25
+ */
26
+ export declare const documents: {
27
+ /**
28
+ * List all documents for an agent
29
+ *
30
+ * @param agentId - The agent ID
31
+ * @returns List of documents
32
+ */
33
+ list(agentId: string): Promise<Document[]>;
34
+ /**
35
+ * Upload a document for an agent
36
+ *
37
+ * @param agentId - The agent ID
38
+ * @param fileName - Name of the file
39
+ * @param fileType - MIME type of the file
40
+ * @param fileSize - Size of the file in bytes
41
+ * @returns Upload response with document details
42
+ */
43
+ upload(agentId: string, fileName: string, fileType: string, fileSize: number): Promise<DocumentUploadResponse>;
44
+ /**
45
+ * Delete a document from an agent
46
+ *
47
+ * @param agentId - The agent ID
48
+ * @param docId - The document ID to delete
49
+ */
50
+ remove(agentId: string, docId: string): Promise<void>;
51
+ };
52
+ export { documents as default };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * ThinkHive SDK - Documents API
4
+ *
5
+ * Agent document management for RAG (Retrieval-Augmented Generation)
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.default = exports.documents = void 0;
9
+ const client_1 = require("../core/client");
10
+ // ============================================================================
11
+ // DOCUMENTS API CLIENT
12
+ // ============================================================================
13
+ /**
14
+ * Documents API client for managing agent RAG documents
15
+ */
16
+ exports.documents = {
17
+ /**
18
+ * List all documents for an agent
19
+ *
20
+ * @param agentId - The agent ID
21
+ * @returns List of documents
22
+ */
23
+ async list(agentId) {
24
+ return (0, client_1.apiRequestWithData)(`/agents/${agentId}/documents`, {
25
+ apiVersion: 'none',
26
+ });
27
+ },
28
+ /**
29
+ * Upload a document for an agent
30
+ *
31
+ * @param agentId - The agent ID
32
+ * @param fileName - Name of the file
33
+ * @param fileType - MIME type of the file
34
+ * @param fileSize - Size of the file in bytes
35
+ * @returns Upload response with document details
36
+ */
37
+ async upload(agentId, fileName, fileType, fileSize) {
38
+ return (0, client_1.apiRequestWithData)(`/agents/${agentId}/documents`, {
39
+ method: 'POST',
40
+ body: { fileName, fileType, fileSize },
41
+ apiVersion: 'none',
42
+ });
43
+ },
44
+ /**
45
+ * Delete a document from an agent
46
+ *
47
+ * @param agentId - The agent ID
48
+ * @param docId - The document ID to delete
49
+ */
50
+ async remove(agentId, docId) {
51
+ return (0, client_1.apiRequest)(`/agents/${agentId}/documents/${docId}`, {
52
+ method: 'DELETE',
53
+ apiVersion: 'none',
54
+ });
55
+ },
56
+ };
57
+ exports.default = exports.documents;
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9kb2N1bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQUVILDJDQUFnRTtBQXlCaEUsK0VBQStFO0FBQy9FLHVCQUF1QjtBQUN2QiwrRUFBK0U7QUFFL0U7O0dBRUc7QUFDVSxRQUFBLFNBQVMsR0FBRztJQUN2Qjs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUN4QixPQUFPLElBQUEsMkJBQWtCLEVBQWEsV0FBVyxPQUFPLFlBQVksRUFBRTtZQUNwRSxVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLE9BQWUsRUFDZixRQUFnQixFQUNoQixRQUFnQixFQUNoQixRQUFnQjtRQUVoQixPQUFPLElBQUEsMkJBQWtCLEVBQXlCLFdBQVcsT0FBTyxZQUFZLEVBQUU7WUFDaEYsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtZQUN0QyxVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWUsRUFBRSxLQUFhO1FBQ3pDLE9BQU8sSUFBQSxtQkFBVSxFQUFPLFdBQVcsT0FBTyxjQUFjLEtBQUssRUFBRSxFQUFFO1lBQy9ELE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFDO0FBRW9CLGtCQWpEVCxpQkFBUyxDQWlETyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyAtIERvY3VtZW50cyBBUElcbiAqXG4gKiBBZ2VudCBkb2N1bWVudCBtYW5hZ2VtZW50IGZvciBSQUcgKFJldHJpZXZhbC1BdWdtZW50ZWQgR2VuZXJhdGlvbilcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBBbiBhZ2VudCBkb2N1bWVudCB1c2VkIGZvciBSQUcgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnQge1xuICBpZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGZpbGVUeXBlOiBzdHJpbmc7XG4gIGZpbGVTaXplOiBudW1iZXI7XG4gIHN0YXR1czogc3RyaW5nO1xuICB1cGxvYWRlZEF0OiBzdHJpbmc7XG4gIHByb2Nlc3NlZEF0Pzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKiogVXBsb2FkIHJlc3BvbnNlIHdpdGggc2lnbmVkIFVSTCBvciBkb2N1bWVudCBkZXRhaWxzICovXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50VXBsb2FkUmVzcG9uc2Uge1xuICBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHVwbG9hZFVybD86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRE9DVU1FTlRTIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBEb2N1bWVudHMgQVBJIGNsaWVudCBmb3IgbWFuYWdpbmcgYWdlbnQgUkFHIGRvY3VtZW50c1xuICovXG5leHBvcnQgY29uc3QgZG9jdW1lbnRzID0ge1xuICAvKipcbiAgICogTGlzdCBhbGwgZG9jdW1lbnRzIGZvciBhbiBhZ2VudFxuICAgKlxuICAgKiBAcGFyYW0gYWdlbnRJZCAtIFRoZSBhZ2VudCBJRFxuICAgKiBAcmV0dXJucyBMaXN0IG9mIGRvY3VtZW50c1xuICAgKi9cbiAgYXN5bmMgbGlzdChhZ2VudElkOiBzdHJpbmcpOiBQcm9taXNlPERvY3VtZW50W10+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPERvY3VtZW50W10+KGAvYWdlbnRzLyR7YWdlbnRJZH0vZG9jdW1lbnRzYCwge1xuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBVcGxvYWQgYSBkb2N1bWVudCBmb3IgYW4gYWdlbnRcbiAgICpcbiAgICogQHBhcmFtIGFnZW50SWQgLSBUaGUgYWdlbnQgSURcbiAgICogQHBhcmFtIGZpbGVOYW1lIC0gTmFtZSBvZiB0aGUgZmlsZVxuICAgKiBAcGFyYW0gZmlsZVR5cGUgLSBNSU1FIHR5cGUgb2YgdGhlIGZpbGVcbiAgICogQHBhcmFtIGZpbGVTaXplIC0gU2l6ZSBvZiB0aGUgZmlsZSBpbiBieXRlc1xuICAgKiBAcmV0dXJucyBVcGxvYWQgcmVzcG9uc2Ugd2l0aCBkb2N1bWVudCBkZXRhaWxzXG4gICAqL1xuICBhc3luYyB1cGxvYWQoXG4gICAgYWdlbnRJZDogc3RyaW5nLFxuICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgZmlsZVR5cGU6IHN0cmluZyxcbiAgICBmaWxlU2l6ZTogbnVtYmVyXG4gICk6IFByb21pc2U8RG9jdW1lbnRVcGxvYWRSZXNwb25zZT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8RG9jdW1lbnRVcGxvYWRSZXNwb25zZT4oYC9hZ2VudHMvJHthZ2VudElkfS9kb2N1bWVudHNgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHsgZmlsZU5hbWUsIGZpbGVUeXBlLCBmaWxlU2l6ZSB9LFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBkb2N1bWVudCBmcm9tIGFuIGFnZW50XG4gICAqXG4gICAqIEBwYXJhbSBhZ2VudElkIC0gVGhlIGFnZW50IElEXG4gICAqIEBwYXJhbSBkb2NJZCAtIFRoZSBkb2N1bWVudCBJRCB0byBkZWxldGVcbiAgICovXG4gIGFzeW5jIHJlbW92ZShhZ2VudElkOiBzdHJpbmcsIGRvY0lkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdDx2b2lkPihgL2FnZW50cy8ke2FnZW50SWR9L2RvY3VtZW50cy8ke2RvY0lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgeyBkb2N1bWVudHMgYXMgZGVmYXVsdCB9O1xuIl19
@@ -0,0 +1,70 @@
1
+ /**
2
+ * ThinkHive SDK - Drift API
3
+ *
4
+ * Drift detection for monitoring agent behavior changes over time
5
+ */
6
+ /** Options for drift detection */
7
+ export interface DetectDriftOptions {
8
+ startDate?: string;
9
+ endDate?: string;
10
+ }
11
+ /** A drift detection report */
12
+ export interface DriftReport {
13
+ agentId: string;
14
+ hasDrift: boolean;
15
+ severity: 'none' | 'low' | 'medium' | 'high';
16
+ driftScore: number;
17
+ dimensions: DriftDimension[];
18
+ analyzedFrom: string;
19
+ analyzedTo: string;
20
+ traceCount: number;
21
+ }
22
+ /** A dimension of drift analysis */
23
+ export interface DriftDimension {
24
+ name: string;
25
+ baseline: number;
26
+ current: number;
27
+ change: number;
28
+ changePercent: number;
29
+ isSignificant: boolean;
30
+ }
31
+ /** Result of detect-all operation */
32
+ export interface DetectAllResult {
33
+ reports: DriftReport[];
34
+ agentsAnalyzed: number;
35
+ agentsWithDrift: number;
36
+ }
37
+ /**
38
+ * Drift API client for monitoring agent behavior changes
39
+ */
40
+ export declare const drift: {
41
+ /**
42
+ * Detect drift for a specific agent
43
+ *
44
+ * @param agentId - The agent ID to analyze
45
+ * @param opts - Date range options
46
+ * @returns Drift detection report
47
+ */
48
+ detect(agentId: string, opts?: DetectDriftOptions): Promise<DriftReport>;
49
+ /**
50
+ * Run drift detection across all agents
51
+ *
52
+ * @returns Drift reports for all agents
53
+ */
54
+ detectAll(): Promise<DetectAllResult>;
55
+ };
56
+ /**
57
+ * Check if a drift report indicates drift was detected
58
+ *
59
+ * @param report - The drift report to check
60
+ * @returns Whether drift was detected
61
+ */
62
+ export declare function hasDrift(report: DriftReport): boolean;
63
+ /**
64
+ * Get the severity level of a drift report
65
+ *
66
+ * @param report - The drift report to check
67
+ * @returns The drift severity level
68
+ */
69
+ export declare function getDriftSeverity(report: DriftReport): 'none' | 'low' | 'medium' | 'high';
70
+ export { drift as default };
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * ThinkHive SDK - Drift API
4
+ *
5
+ * Drift detection for monitoring agent behavior changes over time
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.default = exports.drift = void 0;
9
+ exports.hasDrift = hasDrift;
10
+ exports.getDriftSeverity = getDriftSeverity;
11
+ const client_1 = require("../core/client");
12
+ // ============================================================================
13
+ // DRIFT API CLIENT
14
+ // ============================================================================
15
+ /**
16
+ * Drift API client for monitoring agent behavior changes
17
+ */
18
+ exports.drift = {
19
+ /**
20
+ * Detect drift for a specific agent
21
+ *
22
+ * @param agentId - The agent ID to analyze
23
+ * @param opts - Date range options
24
+ * @returns Drift detection report
25
+ */
26
+ async detect(agentId, opts) {
27
+ const params = new URLSearchParams();
28
+ if (opts?.startDate)
29
+ params.set('startDate', opts.startDate);
30
+ if (opts?.endDate)
31
+ params.set('endDate', opts.endDate);
32
+ const query = params.toString();
33
+ return (0, client_1.apiRequestWithData)(`/drift/${agentId}${query ? `?${query}` : ''}`, {
34
+ apiVersion: 'none',
35
+ });
36
+ },
37
+ /**
38
+ * Run drift detection across all agents
39
+ *
40
+ * @returns Drift reports for all agents
41
+ */
42
+ async detectAll() {
43
+ return (0, client_1.apiRequestWithData)('/drift/detect-all', {
44
+ method: 'POST',
45
+ apiVersion: 'none',
46
+ });
47
+ },
48
+ };
49
+ exports.default = exports.drift;
50
+ // ============================================================================
51
+ // HELPER FUNCTIONS
52
+ // ============================================================================
53
+ /**
54
+ * Check if a drift report indicates drift was detected
55
+ *
56
+ * @param report - The drift report to check
57
+ * @returns Whether drift was detected
58
+ */
59
+ function hasDrift(report) {
60
+ return report.hasDrift;
61
+ }
62
+ /**
63
+ * Get the severity level of a drift report
64
+ *
65
+ * @param report - The drift report to check
66
+ * @returns The drift severity level
67
+ */
68
+ function getDriftSeverity(report) {
69
+ return report.severity;
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2RyaWZ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUE0RkgsNEJBRUM7QUFRRCw0Q0FFQztBQXRHRCwyQ0FBb0Q7QUF5Q3BELCtFQUErRTtBQUMvRSxtQkFBbUI7QUFDbkIsK0VBQStFO0FBRS9FOztHQUVHO0FBQ1UsUUFBQSxLQUFLLEdBQUc7SUFDbkI7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFlLEVBQUUsSUFBeUI7UUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksRUFBRSxTQUFTO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksSUFBSSxFQUFFLE9BQU87WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBQSwyQkFBa0IsRUFBYyxVQUFVLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3JGLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFNBQVM7UUFDYixPQUFPLElBQUEsMkJBQWtCLEVBQWtCLG1CQUFtQixFQUFFO1lBQzlELE1BQU0sRUFBRSxNQUFNO1lBQ2QsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUM7QUEwQmdCLGtCQXhETCxhQUFLLENBd0RPO0FBeEJ6QiwrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUUvRTs7Ozs7R0FLRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxNQUFtQjtJQUMxQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBbUI7SUFDbEQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaW5rSGl2ZSBTREsgLSBEcmlmdCBBUElcbiAqXG4gKiBEcmlmdCBkZXRlY3Rpb24gZm9yIG1vbml0b3JpbmcgYWdlbnQgYmVoYXZpb3IgY2hhbmdlcyBvdmVyIHRpbWVcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBPcHRpb25zIGZvciBkcmlmdCBkZXRlY3Rpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV0ZWN0RHJpZnRPcHRpb25zIHtcbiAgc3RhcnREYXRlPzogc3RyaW5nO1xuICBlbmREYXRlPzogc3RyaW5nO1xufVxuXG4vKiogQSBkcmlmdCBkZXRlY3Rpb24gcmVwb3J0ICovXG5leHBvcnQgaW50ZXJmYWNlIERyaWZ0UmVwb3J0IHtcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBoYXNEcmlmdDogYm9vbGVhbjtcbiAgc2V2ZXJpdHk6ICdub25lJyB8ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCc7XG4gIGRyaWZ0U2NvcmU6IG51bWJlcjtcbiAgZGltZW5zaW9uczogRHJpZnREaW1lbnNpb25bXTtcbiAgYW5hbHl6ZWRGcm9tOiBzdHJpbmc7XG4gIGFuYWx5emVkVG86IHN0cmluZztcbiAgdHJhY2VDb3VudDogbnVtYmVyO1xufVxuXG4vKiogQSBkaW1lbnNpb24gb2YgZHJpZnQgYW5hbHlzaXMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHJpZnREaW1lbnNpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGJhc2VsaW5lOiBudW1iZXI7XG4gIGN1cnJlbnQ6IG51bWJlcjtcbiAgY2hhbmdlOiBudW1iZXI7XG4gIGNoYW5nZVBlcmNlbnQ6IG51bWJlcjtcbiAgaXNTaWduaWZpY2FudDogYm9vbGVhbjtcbn1cblxuLyoqIFJlc3VsdCBvZiBkZXRlY3QtYWxsIG9wZXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRlY3RBbGxSZXN1bHQge1xuICByZXBvcnRzOiBEcmlmdFJlcG9ydFtdO1xuICBhZ2VudHNBbmFseXplZDogbnVtYmVyO1xuICBhZ2VudHNXaXRoRHJpZnQ6IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRFJJRlQgQVBJIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIERyaWZ0IEFQSSBjbGllbnQgZm9yIG1vbml0b3JpbmcgYWdlbnQgYmVoYXZpb3IgY2hhbmdlc1xuICovXG5leHBvcnQgY29uc3QgZHJpZnQgPSB7XG4gIC8qKlxuICAgKiBEZXRlY3QgZHJpZnQgZm9yIGEgc3BlY2lmaWMgYWdlbnRcbiAgICpcbiAgICogQHBhcmFtIGFnZW50SWQgLSBUaGUgYWdlbnQgSUQgdG8gYW5hbHl6ZVxuICAgKiBAcGFyYW0gb3B0cyAtIERhdGUgcmFuZ2Ugb3B0aW9uc1xuICAgKiBAcmV0dXJucyBEcmlmdCBkZXRlY3Rpb24gcmVwb3J0XG4gICAqL1xuICBhc3luYyBkZXRlY3QoYWdlbnRJZDogc3RyaW5nLCBvcHRzPzogRGV0ZWN0RHJpZnRPcHRpb25zKTogUHJvbWlzZTxEcmlmdFJlcG9ydD4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8uc3RhcnREYXRlKSBwYXJhbXMuc2V0KCdzdGFydERhdGUnLCBvcHRzLnN0YXJ0RGF0ZSk7XG4gICAgaWYgKG9wdHM/LmVuZERhdGUpIHBhcmFtcy5zZXQoJ2VuZERhdGUnLCBvcHRzLmVuZERhdGUpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPERyaWZ0UmVwb3J0PihgL2RyaWZ0LyR7YWdlbnRJZH0ke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJ1biBkcmlmdCBkZXRlY3Rpb24gYWNyb3NzIGFsbCBhZ2VudHNcbiAgICpcbiAgICogQHJldHVybnMgRHJpZnQgcmVwb3J0cyBmb3IgYWxsIGFnZW50c1xuICAgKi9cbiAgYXN5bmMgZGV0ZWN0QWxsKCk6IFByb21pc2U8RGV0ZWN0QWxsUmVzdWx0PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxEZXRlY3RBbGxSZXN1bHQ+KCcvZHJpZnQvZGV0ZWN0LWFsbCcsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZHJpZnQgcmVwb3J0IGluZGljYXRlcyBkcmlmdCB3YXMgZGV0ZWN0ZWRcbiAqXG4gKiBAcGFyYW0gcmVwb3J0IC0gVGhlIGRyaWZ0IHJlcG9ydCB0byBjaGVja1xuICogQHJldHVybnMgV2hldGhlciBkcmlmdCB3YXMgZGV0ZWN0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0RyaWZ0KHJlcG9ydDogRHJpZnRSZXBvcnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlcG9ydC5oYXNEcmlmdDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHNldmVyaXR5IGxldmVsIG9mIGEgZHJpZnQgcmVwb3J0XG4gKlxuICogQHBhcmFtIHJlcG9ydCAtIFRoZSBkcmlmdCByZXBvcnQgdG8gY2hlY2tcbiAqIEByZXR1cm5zIFRoZSBkcmlmdCBzZXZlcml0eSBsZXZlbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RHJpZnRTZXZlcml0eShyZXBvcnQ6IERyaWZ0UmVwb3J0KTogJ25vbmUnIHwgJ2xvdycgfCAnbWVkaXVtJyB8ICdoaWdoJyB7XG4gIHJldHVybiByZXBvcnQuc2V2ZXJpdHk7XG59XG5cbmV4cG9ydCB7IGRyaWZ0IGFzIGRlZmF1bHQgfTtcbiJdfQ==
@@ -0,0 +1,126 @@
1
+ /**
2
+ * ThinkHive SDK - Eval Runs API
3
+ *
4
+ * Evaluation run management for agent quality assessment
5
+ */
6
+ /** Options for creating an evaluation run */
7
+ export interface CreateEvalRunOptions {
8
+ traceIds?: string[];
9
+ criteriaIds?: string[];
10
+ confidenceLevel?: number;
11
+ useLLM?: boolean;
12
+ }
13
+ /** Options for listing evaluation run results */
14
+ export interface GetEvalRunResultsOptions {
15
+ limit?: number;
16
+ offset?: number;
17
+ passedOnly?: boolean;
18
+ failedOnly?: boolean;
19
+ }
20
+ /** Options for listing evaluation runs */
21
+ export interface ListEvalRunsOptions {
22
+ agentId?: string;
23
+ limit?: number;
24
+ }
25
+ /** Options for estimating evaluation cost */
26
+ export interface EstimateCostOptions {
27
+ traceIds?: string[];
28
+ criteriaIds?: string[];
29
+ confidenceLevel?: number;
30
+ useLLM?: boolean;
31
+ }
32
+ /** Options for getting trace-level results */
33
+ export interface GetTraceResultsOptions {
34
+ latest?: boolean;
35
+ includeCriteria?: boolean;
36
+ }
37
+ /** An evaluation run */
38
+ export interface EvalRun {
39
+ id: string;
40
+ agentId: string;
41
+ status: string;
42
+ traceCount: number;
43
+ criteriaCount: number;
44
+ createdAt: string;
45
+ completedAt?: string;
46
+ }
47
+ /** A single evaluation result */
48
+ export interface EvalResult {
49
+ id: string;
50
+ runId: string;
51
+ traceId: string;
52
+ criterionId: string;
53
+ passed: boolean;
54
+ score: number;
55
+ reasoning?: string;
56
+ }
57
+ /** Cost estimate for an evaluation run */
58
+ export interface EvalCostEstimate {
59
+ estimatedTraces: number;
60
+ estimatedCriteria: number;
61
+ estimatedCost: number;
62
+ estimatedCredits: number;
63
+ }
64
+ /**
65
+ * Evaluation runs API client for managing agent evaluation workflows
66
+ */
67
+ export declare const evalRuns: {
68
+ /**
69
+ * Create a new evaluation run for an agent
70
+ *
71
+ * @param agentId - The agent to evaluate
72
+ * @param opts - Optional configuration for the evaluation run
73
+ * @returns The created evaluation run
74
+ */
75
+ create(agentId: string, opts?: CreateEvalRunOptions): Promise<EvalRun>;
76
+ /**
77
+ * Get an evaluation run by ID
78
+ *
79
+ * @param runId - The evaluation run ID
80
+ * @returns The evaluation run details
81
+ */
82
+ get(runId: string): Promise<EvalRun>;
83
+ /**
84
+ * Get results for an evaluation run
85
+ *
86
+ * @param runId - The evaluation run ID
87
+ * @param opts - Pagination and filter options
88
+ * @returns Paginated evaluation results
89
+ */
90
+ getResults(runId: string, opts?: GetEvalRunResultsOptions): Promise<{
91
+ results: EvalResult[];
92
+ limit: number;
93
+ offset: number;
94
+ hasMore: boolean;
95
+ }>;
96
+ /**
97
+ * List evaluation runs with optional filters
98
+ *
99
+ * @param opts - Filter and pagination options
100
+ * @returns List of evaluation runs
101
+ */
102
+ list(opts?: ListEvalRunsOptions): Promise<EvalRun[]>;
103
+ /**
104
+ * Estimate the cost of running an evaluation
105
+ *
106
+ * @param agentId - The agent to estimate cost for
107
+ * @param opts - Evaluation configuration for cost estimation
108
+ * @returns Cost estimate details
109
+ */
110
+ estimateCost(agentId: string, opts?: EstimateCostOptions): Promise<EvalCostEstimate>;
111
+ /**
112
+ * Get evaluation results for a specific trace
113
+ *
114
+ * @param traceId - The trace ID to get results for
115
+ * @param opts - Options for filtering results
116
+ * @returns Evaluation results for the trace
117
+ */
118
+ getTraceResults(traceId: string, opts?: GetTraceResultsOptions): Promise<EvalResult[]>;
119
+ /**
120
+ * Delete an evaluation run
121
+ *
122
+ * @param runId - The evaluation run ID to delete
123
+ */
124
+ remove(runId: string): Promise<void>;
125
+ };
126
+ export { evalRuns as default };
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ /**
3
+ * ThinkHive SDK - Eval Runs API
4
+ *
5
+ * Evaluation run management for agent quality assessment
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.default = exports.evalRuns = void 0;
9
+ const client_1 = require("../core/client");
10
+ // ============================================================================
11
+ // EVAL RUNS API CLIENT
12
+ // ============================================================================
13
+ /**
14
+ * Evaluation runs API client for managing agent evaluation workflows
15
+ */
16
+ exports.evalRuns = {
17
+ /**
18
+ * Create a new evaluation run for an agent
19
+ *
20
+ * @param agentId - The agent to evaluate
21
+ * @param opts - Optional configuration for the evaluation run
22
+ * @returns The created evaluation run
23
+ */
24
+ async create(agentId, opts) {
25
+ return (0, client_1.apiRequestWithData)('/eval-runs', {
26
+ method: 'POST',
27
+ body: { agentId, ...opts },
28
+ apiVersion: 'none',
29
+ });
30
+ },
31
+ /**
32
+ * Get an evaluation run by ID
33
+ *
34
+ * @param runId - The evaluation run ID
35
+ * @returns The evaluation run details
36
+ */
37
+ async get(runId) {
38
+ return (0, client_1.apiRequestWithData)(`/eval-runs/${runId}`, {
39
+ apiVersion: 'none',
40
+ });
41
+ },
42
+ /**
43
+ * Get results for an evaluation run
44
+ *
45
+ * @param runId - The evaluation run ID
46
+ * @param opts - Pagination and filter options
47
+ * @returns Paginated evaluation results
48
+ */
49
+ async getResults(runId, opts) {
50
+ const params = new URLSearchParams();
51
+ if (opts?.limit !== undefined)
52
+ params.set('limit', String(opts.limit));
53
+ if (opts?.offset !== undefined)
54
+ params.set('offset', String(opts.offset));
55
+ if (opts?.passedOnly !== undefined)
56
+ params.set('passedOnly', String(opts.passedOnly));
57
+ if (opts?.failedOnly !== undefined)
58
+ params.set('failedOnly', String(opts.failedOnly));
59
+ const query = params.toString();
60
+ return (0, client_1.apiRequestWithData)(`/eval-runs/${runId}/results${query ? `?${query}` : ''}`, {
61
+ apiVersion: 'none',
62
+ });
63
+ },
64
+ /**
65
+ * List evaluation runs with optional filters
66
+ *
67
+ * @param opts - Filter and pagination options
68
+ * @returns List of evaluation runs
69
+ */
70
+ async list(opts) {
71
+ const params = new URLSearchParams();
72
+ if (opts?.agentId)
73
+ params.set('agentId', opts.agentId);
74
+ if (opts?.limit !== undefined)
75
+ params.set('limit', String(opts.limit));
76
+ const query = params.toString();
77
+ return (0, client_1.apiRequestWithData)(`/eval-runs${query ? `?${query}` : ''}`, {
78
+ apiVersion: 'none',
79
+ });
80
+ },
81
+ /**
82
+ * Estimate the cost of running an evaluation
83
+ *
84
+ * @param agentId - The agent to estimate cost for
85
+ * @param opts - Evaluation configuration for cost estimation
86
+ * @returns Cost estimate details
87
+ */
88
+ async estimateCost(agentId, opts) {
89
+ return (0, client_1.apiRequestWithData)('/eval-runs/estimate-cost', {
90
+ method: 'POST',
91
+ body: { agentId, ...opts },
92
+ apiVersion: 'none',
93
+ });
94
+ },
95
+ /**
96
+ * Get evaluation results for a specific trace
97
+ *
98
+ * @param traceId - The trace ID to get results for
99
+ * @param opts - Options for filtering results
100
+ * @returns Evaluation results for the trace
101
+ */
102
+ async getTraceResults(traceId, opts) {
103
+ const params = new URLSearchParams();
104
+ if (opts?.latest !== undefined)
105
+ params.set('latest', String(opts.latest));
106
+ if (opts?.includeCriteria !== undefined)
107
+ params.set('includeCriteria', String(opts.includeCriteria));
108
+ const query = params.toString();
109
+ return (0, client_1.apiRequestWithData)(`/eval-runs/trace/${traceId}${query ? `?${query}` : ''}`, {
110
+ apiVersion: 'none',
111
+ });
112
+ },
113
+ /**
114
+ * Delete an evaluation run
115
+ *
116
+ * @param runId - The evaluation run ID to delete
117
+ */
118
+ async remove(runId) {
119
+ return (0, client_1.apiRequest)(`/eval-runs/${runId}`, {
120
+ method: 'DELETE',
121
+ apiVersion: 'none',
122
+ });
123
+ },
124
+ };
125
+ exports.default = exports.evalRuns;
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbC1ydW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9ldmFsLXJ1bnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQUVILDJDQUFnRTtBQXdFaEUsK0VBQStFO0FBQy9FLHVCQUF1QjtBQUN2QiwrRUFBK0U7QUFFL0U7O0dBRUc7QUFDVSxRQUFBLFFBQVEsR0FBRztJQUN0Qjs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWUsRUFBRSxJQUEyQjtRQUN2RCxPQUFPLElBQUEsMkJBQWtCLEVBQVUsWUFBWSxFQUFFO1lBQy9DLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFO1lBQzFCLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBYTtRQUNyQixPQUFPLElBQUEsMkJBQWtCLEVBQVUsY0FBYyxLQUFLLEVBQUUsRUFBRTtZQUN4RCxVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFhLEVBQUUsSUFBK0I7UUFNN0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLElBQUksRUFBRSxNQUFNLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLElBQUksRUFB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QW9ITyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyAtIEV2YWwgUnVucyBBUElcbiAqXG4gKiBFdmFsdWF0aW9uIHJ1biBtYW5hZ2VtZW50IGZvciBhZ2VudCBxdWFsaXR5IGFzc2Vzc21lbnRcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBPcHRpb25zIGZvciBjcmVhdGluZyBhbiBldmFsdWF0aW9uIHJ1biAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVFdmFsUnVuT3B0aW9ucyB7XG4gIHRyYWNlSWRzPzogc3RyaW5nW107XG4gIGNyaXRlcmlhSWRzPzogc3RyaW5nW107XG4gIGNvbmZpZGVuY2VMZXZlbD86IG51bWJlcjtcbiAgdXNlTExNPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGxpc3RpbmcgZXZhbHVhdGlvbiBydW4gcmVzdWx0cyAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRFdmFsUnVuUmVzdWx0c09wdGlvbnMge1xuICBsaW1pdD86IG51bWJlcjtcbiAgb2Zmc2V0PzogbnVtYmVyO1xuICBwYXNzZWRPbmx5PzogYm9vbGVhbjtcbiAgZmFpbGVkT25seT86IGJvb2xlYW47XG59XG5cbi8qKiBPcHRpb25zIGZvciBsaXN0aW5nIGV2YWx1YXRpb24gcnVucyAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0RXZhbFJ1bnNPcHRpb25zIHtcbiAgYWdlbnRJZD86IHN0cmluZztcbiAgbGltaXQ/OiBudW1iZXI7XG59XG5cbi8qKiBPcHRpb25zIGZvciBlc3RpbWF0aW5nIGV2YWx1YXRpb24gY29zdCAqL1xuZXhwb3J0IGludGVyZmFjZSBFc3RpbWF0ZUNvc3RPcHRpb25zIHtcbiAgdHJhY2VJZHM/OiBzdHJpbmdbXTtcbiAgY3JpdGVyaWFJZHM/OiBzdHJpbmdbXTtcbiAgY29uZmlkZW5jZUxldmVsPzogbnVtYmVyO1xuICB1c2VMTE0/OiBib29sZWFuO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgZ2V0dGluZyB0cmFjZS1sZXZlbCByZXN1bHRzICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFRyYWNlUmVzdWx0c09wdGlvbnMge1xuICBsYXRlc3Q/OiBib29sZWFuO1xuICBpbmNsdWRlQ3JpdGVyaWE/OiBib29sZWFuO1xufVxuXG4vKiogQW4gZXZhbHVhdGlvbiBydW4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbFJ1biB7XG4gIGlkOiBzdHJpbmc7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHRyYWNlQ291bnQ6IG51bWJlcjtcbiAgY3JpdGVyaWFDb3VudDogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgY29tcGxldGVkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKiBBIHNpbmdsZSBldmFsdWF0aW9uIHJlc3VsdCAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsUmVzdWx0IHtcbiAgaWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgdHJhY2VJZDogc3RyaW5nO1xuICBjcml0ZXJpb25JZDogc3RyaW5nO1xuICBwYXNzZWQ6IGJvb2xlYW47XG4gIHNjb3JlOiBudW1iZXI7XG4gIHJlYXNvbmluZz86IHN0cmluZztcbn1cblxuLyoqIENvc3QgZXN0aW1hdGUgZm9yIGFuIGV2YWx1YXRpb24gcnVuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWxDb3N0RXN0aW1hdGUge1xuICBlc3RpbWF0ZWRUcmFjZXM6IG51bWJlcjtcbiAgZXN0aW1hdGVkQ3JpdGVyaWE6IG51bWJlcjtcbiAgZXN0aW1hdGVkQ29zdDogbnVtYmVyO1xuICBlc3RpbWF0ZWRDcmVkaXRzOiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVWQUwgUlVOUyBBUEkgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXZhbHVhdGlvbiBydW5zIEFQSSBjbGllbnQgZm9yIG1hbmFnaW5nIGFnZW50IGV2YWx1YXRpb24gd29ya2Zsb3dzXG4gKi9cbmV4cG9ydCBjb25zdCBldmFsUnVucyA9IHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBldmFsdWF0aW9uIHJ1biBmb3IgYW4gYWdlbnRcbiAgICpcbiAgICogQHBhcmFtIGFnZW50SWQgLSBUaGUgYWdlbnQgdG8gZXZhbHVhdGVcbiAgICogQHBhcmFtIG9wdHMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgZXZhbHVhdGlvbiBydW5cbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgZXZhbHVhdGlvbiBydW5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZShhZ2VudElkOiBzdHJpbmcsIG9wdHM/OiBDcmVhdGVFdmFsUnVuT3B0aW9ucyk6IFByb21pc2U8RXZhbFJ1bj4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8RXZhbFJ1bj4oJy9ldmFsLXJ1bnMnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHsgYWdlbnRJZCwgLi4ub3B0cyB9LFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYW4gZXZhbHVhdGlvbiBydW4gYnkgSURcbiAgICpcbiAgICogQHBhcmFtIHJ1bklkIC0gVGhlIGV2YWx1YXRpb24gcnVuIElEXG4gICAqIEByZXR1cm5zIFRoZSBldmFsdWF0aW9uIHJ1biBkZXRhaWxzXG4gICAqL1xuICBhc3luYyBnZXQocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8RXZhbFJ1bj4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8RXZhbFJ1bj4oYC9ldmFsLXJ1bnMvJHtydW5JZH1gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCByZXN1bHRzIGZvciBhbiBldmFsdWF0aW9uIHJ1blxuICAgKlxuICAgKiBAcGFyYW0gcnVuSWQgLSBUaGUgZXZhbHVhdGlvbiBydW4gSURcbiAgICogQHBhcmFtIG9wdHMgLSBQYWdpbmF0aW9uIGFuZCBmaWx0ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBQYWdpbmF0ZWQgZXZhbHVhdGlvbiByZXN1bHRzXG4gICAqL1xuICBhc3luYyBnZXRSZXN1bHRzKHJ1bklkOiBzdHJpbmcsIG9wdHM/OiBHZXRFdmFsUnVuUmVzdWx0c09wdGlvbnMpOiBQcm9taXNlPHtcbiAgICByZXN1bHRzOiBFdmFsUmVzdWx0W107XG4gICAgbGltaXQ6IG51bWJlcjtcbiAgICBvZmZzZXQ6IG51bWJlcjtcbiAgICBoYXNNb3JlOiBib29sZWFuO1xuICB9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChvcHRzPy5saW1pdCAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhvcHRzLmxpbWl0KSk7XG4gICAgaWYgKG9wdHM/Lm9mZnNldCAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCdvZmZzZXQnLCBTdHJpbmcob3B0cy5vZmZzZXQpKTtcbiAgICBpZiAob3B0cz8ucGFzc2VkT25seSAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCdwYXNzZWRPbmx5JywgU3RyaW5nKG9wdHMucGFzc2VkT25seSkpO1xuICAgIGlmIChvcHRzPy5mYWlsZWRPbmx5ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2ZhaWxlZE9ubHknLCBTdHJpbmcob3B0cy5mYWlsZWRPbmx5KSk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9ldmFsLXJ1bnMvJHtydW5JZH0vcmVzdWx0cyR7cXVlcnkgPyBgPyR7cXVlcnl9YCA6ICcnfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogTGlzdCBldmFsdWF0aW9uIHJ1bnMgd2l0aCBvcHRpb25hbCBmaWx0ZXJzXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzIC0gRmlsdGVyIGFuZCBwYWdpbmF0aW9uIG9wdGlvbnNcbiAgICogQHJldHVybnMgTGlzdCBvZiBldmFsdWF0aW9uIHJ1bnNcbiAgICovXG4gIGFzeW5jIGxpc3Qob3B0cz86IExpc3RFdmFsUnVuc09wdGlvbnMpOiBQcm9taXNlPEV2YWxSdW5bXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8uYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIG9wdHMuYWdlbnRJZCk7XG4gICAgaWYgKG9wdHM/LmxpbWl0ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKG9wdHMubGltaXQpKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxFdmFsUnVuW10+KGAvZXZhbC1ydW5zJHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFc3RpbWF0ZSB0aGUgY29zdCBvZiBydW5uaW5nIGFuIGV2YWx1YXRpb25cbiAgICpcbiAgICogQHBhcmFtIGFnZW50SWQgLSBUaGUgYWdlbnQgdG8gZXN0aW1hdGUgY29zdCBmb3JcbiAgICogQHBhcmFtIG9wdHMgLSBFdmFsdWF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGNvc3QgZXN0aW1hdGlvblxuICAgKiBAcmV0dXJucyBDb3N0IGVzdGltYXRlIGRldGFpbHNcbiAgICovXG4gIGFzeW5jIGVzdGltYXRlQ29zdChhZ2VudElkOiBzdHJpbmcsIG9wdHM/OiBFc3RpbWF0ZUNvc3RPcHRpb25zKTogUHJvbWlzZTxFdmFsQ29zdEVzdGltYXRlPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxFdmFsQ29zdEVzdGltYXRlPignL2V2YWwtcnVucy9lc3RpbWF0ZS1jb3N0Jywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7IGFnZW50SWQsIC4uLm9wdHMgfSxcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGV2YWx1YXRpb24gcmVzdWx0cyBmb3IgYSBzcGVjaWZpYyB0cmFjZVxuICAgKlxuICAgKiBAcGFyYW0gdHJhY2VJZCAtIFRoZSB0cmFjZSBJRCB0byBnZXQgcmVzdWx0cyBmb3JcbiAgICogQHBhcmFtIG9wdHMgLSBPcHRpb25zIGZvciBmaWx0ZXJpbmcgcmVzdWx0c1xuICAgKiBAcmV0dXJucyBFdmFsdWF0aW9uIHJlc3VsdHMgZm9yIHRoZSB0cmFjZVxuICAgKi9cbiAgYXN5bmMgZ2V0VHJhY2VSZXN1bHRzKHRyYWNlSWQ6IHN0cmluZywgb3B0cz86IEdldFRyYWNlUmVzdWx0c09wdGlvbnMpOiBQcm9taXNlPEV2YWxSZXN1bHRbXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8ubGF0ZXN0ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2xhdGVzdCcsIFN0cmluZyhvcHRzLmxhdGVzdCkpO1xuICAgIGlmIChvcHRzPy5pbmNsdWRlQ3JpdGVyaWEgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnaW5jbHVkZUNyaXRlcmlhJywgU3RyaW5nKG9wdHMuaW5jbHVkZUNyaXRlcmlhKSk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8RXZhbFJlc3VsdFtdPihgL2V2YWwtcnVucy90cmFjZS8ke3RyYWNlSWR9JHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZXZhbHVhdGlvbiBydW5cbiAgICpcbiAgICogQHBhcmFtIHJ1bklkIC0gVGhlIGV2YWx1YXRpb24gcnVuIElEIHRvIGRlbGV0ZVxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdDx2b2lkPihgL2V2YWwtcnVucy8ke3J1bklkfWAsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgeyBldmFsUnVucyBhcyBkZWZhdWx0IH07XG4iXX0=
@@ -0,0 +1,104 @@
1
+ /**
2
+ * ThinkHive SDK - LLM Costs API
3
+ *
4
+ * LLM cost tracking and optimization analytics
5
+ */
6
+ /** Options for cost summary and breakdown */
7
+ export interface CostQueryOptions {
8
+ period?: 'day' | 'week' | 'month' | 'quarter' | 'year';
9
+ }
10
+ /** Cost summary across all agents */
11
+ export interface CostSummary {
12
+ totalCost: number;
13
+ totalTokens: number;
14
+ totalRequests: number;
15
+ period: string;
16
+ breakdown: CostBreakdownItem[];
17
+ }
18
+ /** Cost breakdown item */
19
+ export interface CostBreakdownItem {
20
+ model: string;
21
+ provider: string;
22
+ cost: number;
23
+ tokens: number;
24
+ requests: number;
25
+ inputTokens: number;
26
+ outputTokens: number;
27
+ }
28
+ /** Agent-level cost breakdown */
29
+ export interface AgentCostBreakdown {
30
+ agentId: string;
31
+ totalCost: number;
32
+ totalTokens: number;
33
+ totalRequests: number;
34
+ period: string;
35
+ models: CostBreakdownItem[];
36
+ }
37
+ /** Cost savings data */
38
+ export interface CostSavings {
39
+ totalSaved: number;
40
+ savingsPercent: number;
41
+ optimizations: OptimizationEntry[];
42
+ }
43
+ /** A single optimization entry */
44
+ export interface OptimizationEntry {
45
+ type: string;
46
+ description: string;
47
+ savedAmount: number;
48
+ appliedAt: string;
49
+ }
50
+ /** Optimization statistics */
51
+ export interface OptimizationStats {
52
+ cacheHitRate: number;
53
+ avgTokenReduction: number;
54
+ modelDowngradeCount: number;
55
+ totalOptimizations: number;
56
+ recommendations: OptimizationRecommendation[];
57
+ }
58
+ /** Optimization recommendation */
59
+ export interface OptimizationRecommendation {
60
+ type: string;
61
+ description: string;
62
+ estimatedSavings: number;
63
+ priority: 'low' | 'medium' | 'high';
64
+ }
65
+ /**
66
+ * LLM Costs API client for tracking and optimizing LLM spending
67
+ */
68
+ export declare const llmCosts: {
69
+ /**
70
+ * Get cost summary across all agents
71
+ *
72
+ * @param opts - Period filter option
73
+ * @returns Cost summary with breakdown
74
+ */
75
+ getSummary(opts?: CostQueryOptions): Promise<CostSummary>;
76
+ /**
77
+ * Get cost breakdown for a specific agent
78
+ *
79
+ * @param agentId - The agent ID
80
+ * @param opts - Period filter option
81
+ * @returns Agent cost breakdown
82
+ */
83
+ getBreakdown(agentId: string, opts?: CostQueryOptions): Promise<AgentCostBreakdown>;
84
+ /**
85
+ * Get cost savings from optimizations
86
+ *
87
+ * @returns Savings data and optimization history
88
+ */
89
+ getSavings(): Promise<CostSavings>;
90
+ /**
91
+ * Get optimization statistics and recommendations
92
+ *
93
+ * @returns Optimization stats with recommendations
94
+ */
95
+ getOptimizationStats(): Promise<OptimizationStats>;
96
+ };
97
+ /**
98
+ * Format a cost amount as a currency string
99
+ *
100
+ * @param amount - The cost amount in dollars
101
+ * @returns Formatted string (e.g., "$12.34")
102
+ */
103
+ export declare function formatCost(amount: number): string;
104
+ export { llmCosts as default };