@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.
- package/dist/api/documents.d.ts +52 -0
- package/dist/api/documents.js +58 -0
- package/dist/api/drift.d.ts +70 -0
- package/dist/api/drift.js +71 -0
- package/dist/api/eval-runs.d.ts +126 -0
- package/dist/api/eval-runs.js +126 -0
- package/dist/api/llm-costs.d.ts +104 -0
- package/dist/api/llm-costs.js +81 -0
- package/dist/api/notifications.d.ts +103 -0
- package/dist/api/notifications.js +110 -0
- package/dist/api/sessions.d.ts +57 -0
- package/dist/api/sessions.js +49 -0
- package/dist/api/shadow-tests.d.ts +78 -0
- package/dist/api/shadow-tests.js +80 -0
- package/dist/api/signals.d.ts +177 -0
- package/dist/api/signals.js +172 -0
- package/dist/core/client.d.ts +2 -0
- package/dist/core/client.js +10 -4
- package/dist/guardrails.d.ts +70 -0
- package/dist/guardrails.js +34 -0
- package/dist/index.d.ts +105 -2
- package/dist/index.js +50 -4
- package/package.json +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ThinkHive SDK - LLM Costs API
|
|
4
|
+
*
|
|
5
|
+
* LLM cost tracking and optimization analytics
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.default = exports.llmCosts = void 0;
|
|
9
|
+
exports.formatCost = formatCost;
|
|
10
|
+
const client_1 = require("../core/client");
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// LLM COSTS API CLIENT
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* LLM Costs API client for tracking and optimizing LLM spending
|
|
16
|
+
*/
|
|
17
|
+
exports.llmCosts = {
|
|
18
|
+
/**
|
|
19
|
+
* Get cost summary across all agents
|
|
20
|
+
*
|
|
21
|
+
* @param opts - Period filter option
|
|
22
|
+
* @returns Cost summary with breakdown
|
|
23
|
+
*/
|
|
24
|
+
async getSummary(opts) {
|
|
25
|
+
const params = new URLSearchParams();
|
|
26
|
+
if (opts?.period)
|
|
27
|
+
params.set('period', opts.period);
|
|
28
|
+
const query = params.toString();
|
|
29
|
+
return (0, client_1.apiRequestWithData)(`/llm-costs/summary${query ? `?${query}` : ''}`, {
|
|
30
|
+
apiVersion: 'none',
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Get cost breakdown for a specific agent
|
|
35
|
+
*
|
|
36
|
+
* @param agentId - The agent ID
|
|
37
|
+
* @param opts - Period filter option
|
|
38
|
+
* @returns Agent cost breakdown
|
|
39
|
+
*/
|
|
40
|
+
async getBreakdown(agentId, opts) {
|
|
41
|
+
const params = new URLSearchParams();
|
|
42
|
+
if (opts?.period)
|
|
43
|
+
params.set('period', opts.period);
|
|
44
|
+
const query = params.toString();
|
|
45
|
+
return (0, client_1.apiRequestWithData)(`/llm-costs/breakdown/${agentId}${query ? `?${query}` : ''}`, { apiVersion: 'none' });
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* Get cost savings from optimizations
|
|
49
|
+
*
|
|
50
|
+
* @returns Savings data and optimization history
|
|
51
|
+
*/
|
|
52
|
+
async getSavings() {
|
|
53
|
+
return (0, client_1.apiRequestWithData)('/llm-costs/savings', {
|
|
54
|
+
apiVersion: 'none',
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* Get optimization statistics and recommendations
|
|
59
|
+
*
|
|
60
|
+
* @returns Optimization stats with recommendations
|
|
61
|
+
*/
|
|
62
|
+
async getOptimizationStats() {
|
|
63
|
+
return (0, client_1.apiRequestWithData)('/llm-costs/optimization-stats', {
|
|
64
|
+
apiVersion: 'none',
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
exports.default = exports.llmCosts;
|
|
69
|
+
// ============================================================================
|
|
70
|
+
// HELPER FUNCTIONS
|
|
71
|
+
// ============================================================================
|
|
72
|
+
/**
|
|
73
|
+
* Format a cost amount as a currency string
|
|
74
|
+
*
|
|
75
|
+
* @param amount - The cost amount in dollars
|
|
76
|
+
* @returns Formatted string (e.g., "$12.34")
|
|
77
|
+
*/
|
|
78
|
+
function formatCost(amount) {
|
|
79
|
+
return `$${amount.toFixed(2)}`;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWNvc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9sbG0tY29zdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQXNKSCxnQ0FFQztBQXRKRCwyQ0FBb0Q7QUF5RXBELCtFQUErRTtBQUMvRSx1QkFBdUI7QUFDdkIsK0VBQStFO0FBRS9FOztHQUVHO0FBQ1UsUUFBQSxRQUFRLEdBQUc7SUFDdEI7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLElBQXVCO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckMsSUFBSSxJQUFJLEVBQUUsTUFBTTtZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUFjLHFCQUFxQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3RGLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQWUsRUFBRSxJQUF1QjtRQUN6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLElBQUksSUFBSSxFQUFFLE1BQU07WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBQSwyQkFBa0IsRUFDdkIsd0JBQXdCLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUM1RCxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFVBQVU7UUFDZCxPQUFPLElBQUEsMkJBQWtCLEVBQWMsb0JBQW9CLEVBQUU7WUFDM0QsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsb0JBQW9CO1FBQ3hCLE9BQU8sSUFBQSwyQkFBa0IsRUFBb0IsK0JBQStCLEVBQUU7WUFDNUUsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUM7QUFnQm1CLGtCQXhFUixnQkFBUSxDQXdFTztBQWQ1QiwrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUUvRTs7Ozs7R0FLRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxNQUFjO0lBQ3ZDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyAtIExMTSBDb3N0cyBBUElcbiAqXG4gKiBMTE0gY29zdCB0cmFja2luZyBhbmQgb3B0aW1pemF0aW9uIGFuYWx5dGljc1xuICovXG5cbmltcG9ydCB7IGFwaVJlcXVlc3RXaXRoRGF0YSB9IGZyb20gJy4uL2NvcmUvY2xpZW50JztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqIE9wdGlvbnMgZm9yIGNvc3Qgc3VtbWFyeSBhbmQgYnJlYWtkb3duICovXG5leHBvcnQgaW50ZXJmYWNlIENvc3RRdWVyeU9wdGlvbnMge1xuICBwZXJpb2Q/OiAnZGF5JyB8ICd3ZWVrJyB8ICdtb250aCcgfCAncXVhcnRlcicgfCAneWVhcic7XG59XG5cbi8qKiBDb3N0IHN1bW1hcnkgYWNyb3NzIGFsbCBhZ2VudHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29zdFN1bW1hcnkge1xuICB0b3RhbENvc3Q6IG51bWJlcjtcbiAgdG90YWxUb2tlbnM6IG51bWJlcjtcbiAgdG90YWxSZXF1ZXN0czogbnVtYmVyO1xuICBwZXJpb2Q6IHN0cmluZztcbiAgYnJlYWtkb3duOiBDb3N0QnJlYWtkb3duSXRlbVtdO1xufVxuXG4vKiogQ29zdCBicmVha2Rvd24gaXRlbSAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3N0QnJlYWtkb3duSXRlbSB7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG4gIGNvc3Q6IG51bWJlcjtcbiAgdG9rZW5zOiBudW1iZXI7XG4gIHJlcXVlc3RzOiBudW1iZXI7XG4gIGlucHV0VG9rZW5zOiBudW1iZXI7XG4gIG91dHB1dFRva2VuczogbnVtYmVyO1xufVxuXG4vKiogQWdlbnQtbGV2ZWwgY29zdCBicmVha2Rvd24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWdlbnRDb3N0QnJlYWtkb3duIHtcbiAgYWdlbnRJZDogc3RyaW5nO1xuICB0b3RhbENvc3Q6IG51bWJlcjtcbiAgdG90YWxUb2tlbnM6IG51bWJlcjtcbiAgdG90YWxSZXF1ZXN0czogbnVtYmVyO1xuICBwZXJpb2Q6IHN0cmluZztcbiAgbW9kZWxzOiBDb3N0QnJlYWtkb3duSXRlbVtdO1xufVxuXG4vKiogQ29zdCBzYXZpbmdzIGRhdGEgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29zdFNhdmluZ3Mge1xuICB0b3RhbFNhdmVkOiBudW1iZXI7XG4gIHNhdmluZ3NQZXJjZW50OiBudW1iZXI7XG4gIG9wdGltaXphdGlvbnM6IE9wdGltaXphdGlvbkVudHJ5W107XG59XG5cbi8qKiBBIHNpbmdsZSBvcHRpbWl6YXRpb24gZW50cnkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pemF0aW9uRW50cnkge1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHNhdmVkQW1vdW50OiBudW1iZXI7XG4gIGFwcGxpZWRBdDogc3RyaW5nO1xufVxuXG4vKiogT3B0aW1pemF0aW9uIHN0YXRpc3RpY3MgKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pemF0aW9uU3RhdHMge1xuICBjYWNoZUhpdFJhdGU6IG51bWJlcjtcbiAgYXZnVG9rZW5SZWR1Y3Rpb246IG51bWJlcjtcbiAgbW9kZWxEb3duZ3JhZGVDb3VudDogbnVtYmVyO1xuICB0b3RhbE9wdGltaXphdGlvbnM6IG51bWJlcjtcbiAgcmVjb21tZW5kYXRpb25zOiBPcHRpbWl6YXRpb25SZWNvbW1lbmRhdGlvbltdO1xufVxuXG4vKiogT3B0aW1pemF0aW9uIHJlY29tbWVuZGF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIE9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uIHtcbiAgdHlwZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBlc3RpbWF0ZWRTYXZpbmdzOiBudW1iZXI7XG4gIHByaW9yaXR5OiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMTE0gQ09TVFMgQVBJIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIExMTSBDb3N0cyBBUEkgY2xpZW50IGZvciB0cmFja2luZyBhbmQgb3B0aW1pemluZyBMTE0gc3BlbmRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGxsbUNvc3RzID0ge1xuICAvKipcbiAgICogR2V0IGNvc3Qgc3VtbWFyeSBhY3Jvc3MgYWxsIGFnZW50c1xuICAgKlxuICAgKiBAcGFyYW0gb3B0cyAtIFBlcmlvZCBmaWx0ZXIgb3B0aW9uXG4gICAqIEByZXR1cm5zIENvc3Qgc3VtbWFyeSB3aXRoIGJyZWFrZG93blxuICAgKi9cbiAgYXN5bmMgZ2V0U3VtbWFyeShvcHRzPzogQ29zdFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8Q29zdFN1bW1hcnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/LnBlcmlvZCkgcGFyYW1zLnNldCgncGVyaW9kJywgb3B0cy5wZXJpb2QpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPENvc3RTdW1tYXJ5PihgL2xsbS1jb3N0cy9zdW1tYXJ5JHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgY29zdCBicmVha2Rvd24gZm9yIGEgc3BlY2lmaWMgYWdlbnRcbiAgICpcbiAgICogQHBhcmFtIGFnZW50SWQgLSBUaGUgYWdlbnQgSURcbiAgICogQHBhcmFtIG9wdHMgLSBQZXJpb2QgZmlsdGVyIG9wdGlvblxuICAgKiBAcmV0dXJucyBBZ2VudCBjb3N0IGJyZWFrZG93blxuICAgKi9cbiAgYXN5bmMgZ2V0QnJlYWtkb3duKGFnZW50SWQ6IHN0cmluZywgb3B0cz86IENvc3RRdWVyeU9wdGlvbnMpOiBQcm9taXNlPEFnZW50Q29zdEJyZWFrZG93bj4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8ucGVyaW9kKSBwYXJhbXMuc2V0KCdwZXJpb2QnLCBvcHRzLnBlcmlvZCk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QWdlbnRDb3N0QnJlYWtkb3duPihcbiAgICAgIGAvbGxtLWNvc3RzL2JyZWFrZG93bi8ke2FnZW50SWR9JHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ25vbmUnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgY29zdCBzYXZpbmdzIGZyb20gb3B0aW1pemF0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJucyBTYXZpbmdzIGRhdGEgYW5kIG9wdGltaXphdGlvbiBoaXN0b3J5XG4gICAqL1xuICBhc3luYyBnZXRTYXZpbmdzKCk6IFByb21pc2U8Q29zdFNhdmluZ3M+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPENvc3RTYXZpbmdzPignL2xsbS1jb3N0cy9zYXZpbmdzJywge1xuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgb3B0aW1pemF0aW9uIHN0YXRpc3RpY3MgYW5kIHJlY29tbWVuZGF0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJucyBPcHRpbWl6YXRpb24gc3RhdHMgd2l0aCByZWNvbW1lbmRhdGlvbnNcbiAgICovXG4gIGFzeW5jIGdldE9wdGltaXphdGlvblN0YXRzKCk6IFByb21pc2U8T3B0aW1pemF0aW9uU3RhdHM+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPE9wdGltaXphdGlvblN0YXRzPignL2xsbS1jb3N0cy9vcHRpbWl6YXRpb24tc3RhdHMnLCB7XG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRm9ybWF0IGEgY29zdCBhbW91bnQgYXMgYSBjdXJyZW5jeSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gYW1vdW50IC0gVGhlIGNvc3QgYW1vdW50IGluIGRvbGxhcnNcbiAqIEByZXR1cm5zIEZvcm1hdHRlZCBzdHJpbmcgKGUuZy4sIFwiJDEyLjM0XCIpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDb3N0KGFtb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAkJHthbW91bnQudG9GaXhlZCgyKX1gO1xufVxuXG5leHBvcnQgeyBsbG1Db3N0cyBhcyBkZWZhdWx0IH07XG4iXX0=
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThinkHive SDK - Notifications API
|
|
3
|
+
*
|
|
4
|
+
* Notification rules and alert management
|
|
5
|
+
*/
|
|
6
|
+
/** Notification rule definition */
|
|
7
|
+
export interface NotificationRule {
|
|
8
|
+
id: string;
|
|
9
|
+
agentId: string;
|
|
10
|
+
name: string;
|
|
11
|
+
condition: string;
|
|
12
|
+
channel: string;
|
|
13
|
+
isEnabled: boolean;
|
|
14
|
+
createdAt: string;
|
|
15
|
+
updatedAt: string;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}
|
|
18
|
+
/** Data for creating a notification rule */
|
|
19
|
+
export interface CreateNotificationRuleData {
|
|
20
|
+
agentId: string;
|
|
21
|
+
name: string;
|
|
22
|
+
condition: string;
|
|
23
|
+
channel: string;
|
|
24
|
+
isEnabled?: boolean;
|
|
25
|
+
threshold?: number;
|
|
26
|
+
metadata?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
/** Data for updating a notification rule */
|
|
29
|
+
export interface UpdateNotificationRuleData {
|
|
30
|
+
name?: string;
|
|
31
|
+
condition?: string;
|
|
32
|
+
channel?: string;
|
|
33
|
+
isEnabled?: boolean;
|
|
34
|
+
threshold?: number;
|
|
35
|
+
metadata?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
/** A notification alert */
|
|
38
|
+
export interface Notification {
|
|
39
|
+
id: string;
|
|
40
|
+
agentId: string;
|
|
41
|
+
ruleId: string;
|
|
42
|
+
message: string;
|
|
43
|
+
isRead: boolean;
|
|
44
|
+
createdAt: string;
|
|
45
|
+
metadata?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Notifications API client for managing notification rules and alerts
|
|
49
|
+
*/
|
|
50
|
+
export declare const notifications: {
|
|
51
|
+
/**
|
|
52
|
+
* List notification rules for an agent
|
|
53
|
+
*
|
|
54
|
+
* @param agentId - The agent ID to list rules for
|
|
55
|
+
* @returns List of notification rules
|
|
56
|
+
*/
|
|
57
|
+
listRules(agentId: string): Promise<NotificationRule[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Get a notification rule by ID
|
|
60
|
+
*
|
|
61
|
+
* @param id - The rule ID
|
|
62
|
+
* @param agentId - Optional agent ID for scoping
|
|
63
|
+
* @returns The notification rule
|
|
64
|
+
*/
|
|
65
|
+
getRule(id: string, agentId?: string): Promise<NotificationRule>;
|
|
66
|
+
/**
|
|
67
|
+
* Create a new notification rule
|
|
68
|
+
*
|
|
69
|
+
* @param data - Rule configuration data
|
|
70
|
+
* @returns The created notification rule
|
|
71
|
+
*/
|
|
72
|
+
createRule(data: CreateNotificationRuleData): Promise<NotificationRule>;
|
|
73
|
+
/**
|
|
74
|
+
* Update an existing notification rule
|
|
75
|
+
*
|
|
76
|
+
* @param id - The rule ID to update
|
|
77
|
+
* @param data - Fields to update
|
|
78
|
+
* @returns The updated notification rule
|
|
79
|
+
*/
|
|
80
|
+
updateRule(id: string, data: UpdateNotificationRuleData): Promise<NotificationRule>;
|
|
81
|
+
/**
|
|
82
|
+
* Delete a notification rule
|
|
83
|
+
*
|
|
84
|
+
* @param id - The rule ID to delete
|
|
85
|
+
*/
|
|
86
|
+
deleteRule(id: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* List notifications for an agent
|
|
89
|
+
*
|
|
90
|
+
* @param agentId - The agent ID
|
|
91
|
+
* @param unreadOnly - Whether to only return unread notifications
|
|
92
|
+
* @returns List of notifications
|
|
93
|
+
*/
|
|
94
|
+
listNotifications(agentId: string, unreadOnly?: boolean): Promise<Notification[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Mark a notification as read
|
|
97
|
+
*
|
|
98
|
+
* @param id - The notification ID to mark as read
|
|
99
|
+
* @returns The updated notification
|
|
100
|
+
*/
|
|
101
|
+
markAsRead(id: string): Promise<Notification>;
|
|
102
|
+
};
|
|
103
|
+
export { notifications as default };
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ThinkHive SDK - Notifications API
|
|
4
|
+
*
|
|
5
|
+
* Notification rules and alert management
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.default = exports.notifications = void 0;
|
|
9
|
+
const client_1 = require("../core/client");
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// NOTIFICATIONS API CLIENT
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Notifications API client for managing notification rules and alerts
|
|
15
|
+
*/
|
|
16
|
+
exports.notifications = {
|
|
17
|
+
/**
|
|
18
|
+
* List notification rules for an agent
|
|
19
|
+
*
|
|
20
|
+
* @param agentId - The agent ID to list rules for
|
|
21
|
+
* @returns List of notification rules
|
|
22
|
+
*/
|
|
23
|
+
async listRules(agentId) {
|
|
24
|
+
const params = new URLSearchParams({ agentId });
|
|
25
|
+
return (0, client_1.apiRequestWithData)(`/notification-rules?${params}`, {
|
|
26
|
+
apiVersion: 'none',
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
/**
|
|
30
|
+
* Get a notification rule by ID
|
|
31
|
+
*
|
|
32
|
+
* @param id - The rule ID
|
|
33
|
+
* @param agentId - Optional agent ID for scoping
|
|
34
|
+
* @returns The notification rule
|
|
35
|
+
*/
|
|
36
|
+
async getRule(id, agentId) {
|
|
37
|
+
const params = new URLSearchParams();
|
|
38
|
+
if (agentId)
|
|
39
|
+
params.set('agentId', agentId);
|
|
40
|
+
const query = params.toString();
|
|
41
|
+
return (0, client_1.apiRequestWithData)(`/notification-rules/${id}${query ? `?${query}` : ''}`, { apiVersion: 'none' });
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* Create a new notification rule
|
|
45
|
+
*
|
|
46
|
+
* @param data - Rule configuration data
|
|
47
|
+
* @returns The created notification rule
|
|
48
|
+
*/
|
|
49
|
+
async createRule(data) {
|
|
50
|
+
return (0, client_1.apiRequestWithData)('/notification-rules', {
|
|
51
|
+
method: 'POST',
|
|
52
|
+
body: data,
|
|
53
|
+
apiVersion: 'none',
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Update an existing notification rule
|
|
58
|
+
*
|
|
59
|
+
* @param id - The rule ID to update
|
|
60
|
+
* @param data - Fields to update
|
|
61
|
+
* @returns The updated notification rule
|
|
62
|
+
*/
|
|
63
|
+
async updateRule(id, data) {
|
|
64
|
+
return (0, client_1.apiRequestWithData)(`/notification-rules/${id}`, {
|
|
65
|
+
method: 'PATCH',
|
|
66
|
+
body: data,
|
|
67
|
+
apiVersion: 'none',
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
/**
|
|
71
|
+
* Delete a notification rule
|
|
72
|
+
*
|
|
73
|
+
* @param id - The rule ID to delete
|
|
74
|
+
*/
|
|
75
|
+
async deleteRule(id) {
|
|
76
|
+
return (0, client_1.apiRequest)(`/notification-rules/${id}`, {
|
|
77
|
+
method: 'DELETE',
|
|
78
|
+
apiVersion: 'none',
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
/**
|
|
82
|
+
* List notifications for an agent
|
|
83
|
+
*
|
|
84
|
+
* @param agentId - The agent ID
|
|
85
|
+
* @param unreadOnly - Whether to only return unread notifications
|
|
86
|
+
* @returns List of notifications
|
|
87
|
+
*/
|
|
88
|
+
async listNotifications(agentId, unreadOnly) {
|
|
89
|
+
const params = new URLSearchParams({ agentId });
|
|
90
|
+
if (unreadOnly !== undefined)
|
|
91
|
+
params.set('unreadOnly', String(unreadOnly));
|
|
92
|
+
return (0, client_1.apiRequestWithData)(`/notifications?${params}`, {
|
|
93
|
+
apiVersion: 'none',
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
/**
|
|
97
|
+
* Mark a notification as read
|
|
98
|
+
*
|
|
99
|
+
* @param id - The notification ID to mark as read
|
|
100
|
+
* @returns The updated notification
|
|
101
|
+
*/
|
|
102
|
+
async markAsRead(id) {
|
|
103
|
+
return (0, client_1.apiRequestWithData)(`/notifications/${id}/read`, {
|
|
104
|
+
method: 'PATCH',
|
|
105
|
+
apiVersion: 'none',
|
|
106
|
+
});
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
exports.default = exports.notifications;
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbm90aWZpY2F0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsMkNBQWdFO0FBbURoRSwrRUFBK0U7QUFDL0UsMkJBQTJCO0FBQzNCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFHO0lBQzNCOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUEsMkJBQWtCLEVBQXFCLHVCQUF1QixNQUFNLEVBQUUsRUFBRTtZQUM3RSxVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFVLEVBQUUsT0FBZ0I7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE9BQU87WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUN2Qix1QkFBdUIsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQ3RELEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFnQztRQUMvQyxPQUFPLElBQUEsMkJBQWtCLEVBQW1CLHFCQUFxQixFQUFFO1lBQ2pFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFVLEVBQUUsSUFBZ0M7UUFDM0QsT0FBTyxJQUFBLDJCQUFrQixFQUFtQix1QkFBdUIsRUFBRSxFQUFFLEVBQUU7WUFDdkUsTUFBTSxFQUFFLE9BQU87WUFDZixJQUFJLEVBQUUsSUFBSTtZQUNWLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFVO1FBQ3pCLE9BQU8sSUFBQSxtQkFBVSxFQUFPLHVCQUF1QixFQUFFLEVBQUUsRUFBRTtZQUNuRCxNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxVQUFvQjtRQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxVQUFVLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsa0JBQWtCLE1BQU0sRUFBRSxFQUFFO1lBQ3BFLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBVTtRQUN6QixPQUFPLElBQUEsMkJBQWtCLEVBQWUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFO1lBQ25FLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUM7QUFFd0Isa0JBckdiLHFCQUFhLENBcUdPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIC0gTm90aWZpY2F0aW9ucyBBUElcbiAqXG4gKiBOb3RpZmljYXRpb24gcnVsZXMgYW5kIGFsZXJ0IG1hbmFnZW1lbnRcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBOb3RpZmljYXRpb24gcnVsZSBkZWZpbml0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblJ1bGUge1xuICBpZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgY29uZGl0aW9uOiBzdHJpbmc7XG4gIGNoYW5uZWw6IHN0cmluZztcbiAgaXNFbmFibGVkOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKiBEYXRhIGZvciBjcmVhdGluZyBhIG5vdGlmaWNhdGlvbiBydWxlICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU5vdGlmaWNhdGlvblJ1bGVEYXRhIHtcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbmRpdGlvbjogc3RyaW5nO1xuICBjaGFubmVsOiBzdHJpbmc7XG4gIGlzRW5hYmxlZD86IGJvb2xlYW47XG4gIHRocmVzaG9sZD86IG51bWJlcjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqIERhdGEgZm9yIHVwZGF0aW5nIGEgbm90aWZpY2F0aW9uIHJ1bGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlTm90aWZpY2F0aW9uUnVsZURhdGEge1xuICBuYW1lPzogc3RyaW5nO1xuICBjb25kaXRpb24/OiBzdHJpbmc7XG4gIGNoYW5uZWw/OiBzdHJpbmc7XG4gIGlzRW5hYmxlZD86IGJvb2xlYW47XG4gIHRocmVzaG9sZD86IG51bWJlcjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqIEEgbm90aWZpY2F0aW9uIGFsZXJ0ICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgcnVsZUlkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgaXNSZWFkOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTk9USUZJQ0FUSU9OUyBBUEkgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTm90aWZpY2F0aW9ucyBBUEkgY2xpZW50IGZvciBtYW5hZ2luZyBub3RpZmljYXRpb24gcnVsZXMgYW5kIGFsZXJ0c1xuICovXG5leHBvcnQgY29uc3Qgbm90aWZpY2F0aW9ucyA9IHtcbiAgLyoqXG4gICAqIExpc3Qgbm90aWZpY2F0aW9uIHJ1bGVzIGZvciBhbiBhZ2VudFxuICAgKlxuICAgKiBAcGFyYW0gYWdlbnRJZCAtIFRoZSBhZ2VudCBJRCB0byBsaXN0IHJ1bGVzIGZvclxuICAgKiBAcmV0dXJucyBMaXN0IG9mIG5vdGlmaWNhdGlvbiBydWxlc1xuICAgKi9cbiAgYXN5bmMgbGlzdFJ1bGVzKGFnZW50SWQ6IHN0cmluZyk6IFByb21pc2U8Tm90aWZpY2F0aW9uUnVsZVtdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGFnZW50SWQgfSk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb3RpZmljYXRpb25SdWxlW10+KGAvbm90aWZpY2F0aW9uLXJ1bGVzPyR7cGFyYW1zfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGEgbm90aWZpY2F0aW9uIHJ1bGUgYnkgSURcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIHJ1bGUgSURcbiAgICogQHBhcmFtIGFnZW50SWQgLSBPcHRpb25hbCBhZ2VudCBJRCBmb3Igc2NvcGluZ1xuICAgKiBAcmV0dXJucyBUaGUgbm90aWZpY2F0aW9uIHJ1bGVcbiAgICovXG4gIGFzeW5jIGdldFJ1bGUoaWQ6IHN0cmluZywgYWdlbnRJZD86IHN0cmluZyk6IFByb21pc2U8Tm90aWZpY2F0aW9uUnVsZT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAoYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIGFnZW50SWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb3RpZmljYXRpb25SdWxlPihcbiAgICAgIGAvbm90aWZpY2F0aW9uLXJ1bGVzLyR7aWR9JHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ25vbmUnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgbm90aWZpY2F0aW9uIHJ1bGVcbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBSdWxlIGNvbmZpZ3VyYXRpb24gZGF0YVxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBub3RpZmljYXRpb24gcnVsZVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlUnVsZShkYXRhOiBDcmVhdGVOb3RpZmljYXRpb25SdWxlRGF0YSk6IFByb21pc2U8Tm90aWZpY2F0aW9uUnVsZT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Tm90aWZpY2F0aW9uUnVsZT4oJy9ub3RpZmljYXRpb24tcnVsZXMnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBleGlzdGluZyBub3RpZmljYXRpb24gcnVsZVxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgcnVsZSBJRCB0byB1cGRhdGVcbiAgICogQHBhcmFtIGRhdGEgLSBGaWVsZHMgdG8gdXBkYXRlXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIG5vdGlmaWNhdGlvbiBydWxlXG4gICAqL1xuICBhc3luYyB1cGRhdGVSdWxlKGlkOiBzdHJpbmcsIGRhdGE6IFVwZGF0ZU5vdGlmaWNhdGlvblJ1bGVEYXRhKTogUHJvbWlzZTxOb3RpZmljYXRpb25SdWxlPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb3RpZmljYXRpb25SdWxlPihgL25vdGlmaWNhdGlvbi1ydWxlcy8ke2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIG5vdGlmaWNhdGlvbiBydWxlXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBydWxlIElEIHRvIGRlbGV0ZVxuICAgKi9cbiAgYXN5bmMgZGVsZXRlUnVsZShpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3Q8dm9pZD4oYC9ub3RpZmljYXRpb24tcnVsZXMvJHtpZH1gLCB7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBMaXN0IG5vdGlmaWNhdGlvbnMgZm9yIGFuIGFnZW50XG4gICAqXG4gICAqIEBwYXJhbSBhZ2VudElkIC0gVGhlIGFnZW50IElEXG4gICAqIEBwYXJhbSB1bnJlYWRPbmx5IC0gV2hldGhlciB0byBvbmx5IHJldHVybiB1bnJlYWQgbm90aWZpY2F0aW9uc1xuICAgKiBAcmV0dXJucyBMaXN0IG9mIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIGFzeW5jIGxpc3ROb3RpZmljYXRpb25zKGFnZW50SWQ6IHN0cmluZywgdW5yZWFkT25seT86IGJvb2xlYW4pOiBQcm9taXNlPE5vdGlmaWNhdGlvbltdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGFnZW50SWQgfSk7XG4gICAgaWYgKHVucmVhZE9ubHkgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgndW5yZWFkT25seScsIFN0cmluZyh1bnJlYWRPbmx5KSk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxOb3RpZmljYXRpb25bXT4oYC9ub3RpZmljYXRpb25zPyR7cGFyYW1zfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogTWFyayBhIG5vdGlmaWNhdGlvbiBhcyByZWFkXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBub3RpZmljYXRpb24gSUQgdG8gbWFyayBhcyByZWFkXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIG5vdGlmaWNhdGlvblxuICAgKi9cbiAgYXN5bmMgbWFya0FzUmVhZChpZDogc3RyaW5nKTogUHJvbWlzZTxOb3RpZmljYXRpb24+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPE5vdGlmaWNhdGlvbj4oYC9ub3RpZmljYXRpb25zLyR7aWR9L3JlYWRgLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgeyBub3RpZmljYXRpb25zIGFzIGRlZmF1bHQgfTtcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThinkHive SDK - Sessions API
|
|
3
|
+
*
|
|
4
|
+
* Trace session grouping for multi-turn conversation tracking
|
|
5
|
+
*/
|
|
6
|
+
/** Options for listing sessions */
|
|
7
|
+
export interface ListSessionsOptions {
|
|
8
|
+
limit?: number;
|
|
9
|
+
offset?: number;
|
|
10
|
+
}
|
|
11
|
+
/** A trace session */
|
|
12
|
+
export interface Session {
|
|
13
|
+
sessionId: string;
|
|
14
|
+
agentId: string;
|
|
15
|
+
traceCount: number;
|
|
16
|
+
firstTraceAt: string;
|
|
17
|
+
lastTraceAt: string;
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
/** A trace within a session */
|
|
21
|
+
export interface SessionTrace {
|
|
22
|
+
id: string;
|
|
23
|
+
agentId: string;
|
|
24
|
+
sessionId: string;
|
|
25
|
+
input?: unknown;
|
|
26
|
+
output?: unknown;
|
|
27
|
+
status: string;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sessions API client for trace session grouping
|
|
33
|
+
*/
|
|
34
|
+
export declare const sessions: {
|
|
35
|
+
/**
|
|
36
|
+
* List sessions for an agent
|
|
37
|
+
*
|
|
38
|
+
* @param agentId - The agent ID
|
|
39
|
+
* @param opts - Pagination options
|
|
40
|
+
* @returns List of sessions
|
|
41
|
+
*/
|
|
42
|
+
list(agentId: string, opts?: ListSessionsOptions): Promise<{
|
|
43
|
+
sessions: Session[];
|
|
44
|
+
limit: number;
|
|
45
|
+
offset: number;
|
|
46
|
+
hasMore: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Get traces for a specific session
|
|
50
|
+
*
|
|
51
|
+
* @param sessionId - The session ID
|
|
52
|
+
* @param agentId - The agent ID
|
|
53
|
+
* @returns List of traces in the session
|
|
54
|
+
*/
|
|
55
|
+
getTraces(sessionId: string, agentId: string): Promise<SessionTrace[]>;
|
|
56
|
+
};
|
|
57
|
+
export { sessions as default };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ThinkHive SDK - Sessions API
|
|
4
|
+
*
|
|
5
|
+
* Trace session grouping for multi-turn conversation tracking
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.default = exports.sessions = void 0;
|
|
9
|
+
const client_1 = require("../core/client");
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// SESSIONS API CLIENT
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Sessions API client for trace session grouping
|
|
15
|
+
*/
|
|
16
|
+
exports.sessions = {
|
|
17
|
+
/**
|
|
18
|
+
* List sessions for an agent
|
|
19
|
+
*
|
|
20
|
+
* @param agentId - The agent ID
|
|
21
|
+
* @param opts - Pagination options
|
|
22
|
+
* @returns List of sessions
|
|
23
|
+
*/
|
|
24
|
+
async list(agentId, opts) {
|
|
25
|
+
const params = new URLSearchParams({ agentId });
|
|
26
|
+
if (opts?.limit !== undefined)
|
|
27
|
+
params.set('limit', String(opts.limit));
|
|
28
|
+
if (opts?.offset !== undefined)
|
|
29
|
+
params.set('offset', String(opts.offset));
|
|
30
|
+
return (0, client_1.apiRequestWithData)(`/traces/sessions?${params}`, {
|
|
31
|
+
apiVersion: 'none',
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* Get traces for a specific session
|
|
36
|
+
*
|
|
37
|
+
* @param sessionId - The session ID
|
|
38
|
+
* @param agentId - The agent ID
|
|
39
|
+
* @returns List of traces in the session
|
|
40
|
+
*/
|
|
41
|
+
async getTraces(sessionId, agentId) {
|
|
42
|
+
const params = new URLSearchParams({ agentId, sessionId });
|
|
43
|
+
return (0, client_1.apiRequestWithData)(`/traces?${params}`, {
|
|
44
|
+
apiVersion: 'none',
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
exports.default = exports.sessions;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3Nlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFFSCwyQ0FBb0Q7QUFrQ3BELCtFQUErRTtBQUMvRSxzQkFBc0I7QUFDdEIsK0VBQStFO0FBRS9FOztHQUVHO0FBQ1UsUUFBQSxRQUFRLEdBQUc7SUFDdEI7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFlLEVBQUUsSUFBMEI7UUFNcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxFQUFFLEtBQUssS0FBSyxTQUFTO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksSUFBSSxFQUFFLE1BQU0sS0FBSyxTQUFTO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sSUFBQSwyQkFBa0IsRUFBQyxvQkFBb0IsTUFBTSxFQUFFLEVBQUU7WUFDdEQsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBaUIsRUFBRSxPQUFlO1FBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFBLDJCQUFrQixFQUFpQixXQUFXLE1BQU0sRUFBRSxFQUFFO1lBQzdELFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFDO0FBRW1CLGtCQXRDUixnQkFBUSxDQXNDTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyAtIFNlc3Npb25zIEFQSVxuICpcbiAqIFRyYWNlIHNlc3Npb24gZ3JvdXBpbmcgZm9yIG11bHRpLXR1cm4gY29udmVyc2F0aW9uIHRyYWNraW5nXG4gKi9cblxuaW1wb3J0IHsgYXBpUmVxdWVzdFdpdGhEYXRhIH0gZnJvbSAnLi4vY29yZS9jbGllbnQnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKiogT3B0aW9ucyBmb3IgbGlzdGluZyBzZXNzaW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U2Vzc2lvbnNPcHRpb25zIHtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbn1cblxuLyoqIEEgdHJhY2Ugc2Vzc2lvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uIHtcbiAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgdHJhY2VDb3VudDogbnVtYmVyO1xuICBmaXJzdFRyYWNlQXQ6IHN0cmluZztcbiAgbGFzdFRyYWNlQXQ6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqIEEgdHJhY2Ugd2l0aGluIGEgc2Vzc2lvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uVHJhY2Uge1xuICBpZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBpbnB1dD86IHVua25vd247XG4gIG91dHB1dD86IHVua25vd247XG4gIHN0YXR1czogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU0VTU0lPTlMgQVBJIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFNlc3Npb25zIEFQSSBjbGllbnQgZm9yIHRyYWNlIHNlc3Npb24gZ3JvdXBpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHNlc3Npb25zID0ge1xuICAvKipcbiAgICogTGlzdCBzZXNzaW9ucyBmb3IgYW4gYWdlbnRcbiAgICpcbiAgICogQHBhcmFtIGFnZW50SWQgLSBUaGUgYWdlbnQgSURcbiAgICogQHBhcmFtIG9wdHMgLSBQYWdpbmF0aW9uIG9wdGlvbnNcbiAgICogQHJldHVybnMgTGlzdCBvZiBzZXNzaW9uc1xuICAgKi9cbiAgYXN5bmMgbGlzdChhZ2VudElkOiBzdHJpbmcsIG9wdHM/OiBMaXN0U2Vzc2lvbnNPcHRpb25zKTogUHJvbWlzZTx7XG4gICAgc2Vzc2lvbnM6IFNlc3Npb25bXTtcbiAgICBsaW1pdDogbnVtYmVyO1xuICAgIG9mZnNldDogbnVtYmVyO1xuICAgIGhhc01vcmU6IGJvb2xlYW47XG4gIH0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgYWdlbnRJZCB9KTtcbiAgICBpZiAob3B0cz8ubGltaXQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0cy5saW1pdCkpO1xuICAgIGlmIChvcHRzPy5vZmZzZXQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnb2Zmc2V0JywgU3RyaW5nKG9wdHMub2Zmc2V0KSk7XG5cbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKGAvdHJhY2VzL3Nlc3Npb25zPyR7cGFyYW1zfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHRyYWNlcyBmb3IgYSBzcGVjaWZpYyBzZXNzaW9uXG4gICAqXG4gICAqIEBwYXJhbSBzZXNzaW9uSWQgLSBUaGUgc2Vzc2lvbiBJRFxuICAgKiBAcGFyYW0gYWdlbnRJZCAtIFRoZSBhZ2VudCBJRFxuICAgKiBAcmV0dXJucyBMaXN0IG9mIHRyYWNlcyBpbiB0aGUgc2Vzc2lvblxuICAgKi9cbiAgYXN5bmMgZ2V0VHJhY2VzKHNlc3Npb25JZDogc3RyaW5nLCBhZ2VudElkOiBzdHJpbmcpOiBQcm9taXNlPFNlc3Npb25UcmFjZVtdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGFnZW50SWQsIHNlc3Npb25JZCB9KTtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFNlc3Npb25UcmFjZVtdPihgL3RyYWNlcz8ke3BhcmFtc31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgeyBzZXNzaW9ucyBhcyBkZWZhdWx0IH07XG4iXX0=
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThinkHive SDK - Shadow Tests API
|
|
3
|
+
*
|
|
4
|
+
* Shadow test execution for validating proposed fixes
|
|
5
|
+
*/
|
|
6
|
+
/** Data for creating a shadow test */
|
|
7
|
+
export interface CreateShadowTestData {
|
|
8
|
+
fixId: string;
|
|
9
|
+
agentId: string;
|
|
10
|
+
testName: string;
|
|
11
|
+
inputData: unknown;
|
|
12
|
+
expectedOutput: unknown;
|
|
13
|
+
}
|
|
14
|
+
/** Data for updating a shadow test */
|
|
15
|
+
export interface UpdateShadowTestData {
|
|
16
|
+
testName?: string;
|
|
17
|
+
status?: string;
|
|
18
|
+
actualOutput?: unknown;
|
|
19
|
+
passed?: boolean;
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
/** A shadow test record */
|
|
23
|
+
export interface ShadowTest {
|
|
24
|
+
id: string;
|
|
25
|
+
fixId: string;
|
|
26
|
+
agentId: string;
|
|
27
|
+
testName: string;
|
|
28
|
+
inputData: unknown;
|
|
29
|
+
expectedOutput: unknown;
|
|
30
|
+
actualOutput?: unknown;
|
|
31
|
+
status: string;
|
|
32
|
+
passed?: boolean;
|
|
33
|
+
createdAt: string;
|
|
34
|
+
completedAt?: string;
|
|
35
|
+
metadata?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Shadow tests API client for managing shadow test execution
|
|
39
|
+
*/
|
|
40
|
+
export declare const shadowTests: {
|
|
41
|
+
/**
|
|
42
|
+
* List shadow tests for an agent
|
|
43
|
+
*
|
|
44
|
+
* @param agentId - The agent ID
|
|
45
|
+
* @returns List of shadow tests
|
|
46
|
+
*/
|
|
47
|
+
list(agentId: string): Promise<ShadowTest[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Get a shadow test by ID
|
|
50
|
+
*
|
|
51
|
+
* @param id - The shadow test ID
|
|
52
|
+
* @returns The shadow test details
|
|
53
|
+
*/
|
|
54
|
+
get(id: string): Promise<ShadowTest>;
|
|
55
|
+
/**
|
|
56
|
+
* Get shadow tests for a specific fix
|
|
57
|
+
*
|
|
58
|
+
* @param fixId - The fix ID
|
|
59
|
+
* @returns List of shadow tests for the fix
|
|
60
|
+
*/
|
|
61
|
+
getByFix(fixId: string): Promise<ShadowTest[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Create a new shadow test
|
|
64
|
+
*
|
|
65
|
+
* @param data - Shadow test configuration
|
|
66
|
+
* @returns The created shadow test
|
|
67
|
+
*/
|
|
68
|
+
create(data: CreateShadowTestData): Promise<ShadowTest>;
|
|
69
|
+
/**
|
|
70
|
+
* Update a shadow test
|
|
71
|
+
*
|
|
72
|
+
* @param id - The shadow test ID to update
|
|
73
|
+
* @param data - Fields to update
|
|
74
|
+
* @returns The updated shadow test
|
|
75
|
+
*/
|
|
76
|
+
update(id: string, data: UpdateShadowTestData): Promise<ShadowTest>;
|
|
77
|
+
};
|
|
78
|
+
export { shadowTests as default };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ThinkHive SDK - Shadow Tests API
|
|
4
|
+
*
|
|
5
|
+
* Shadow test execution for validating proposed fixes
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.default = exports.shadowTests = void 0;
|
|
9
|
+
const client_1 = require("../core/client");
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// SHADOW TESTS API CLIENT
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Shadow tests API client for managing shadow test execution
|
|
15
|
+
*/
|
|
16
|
+
exports.shadowTests = {
|
|
17
|
+
/**
|
|
18
|
+
* List shadow tests for an agent
|
|
19
|
+
*
|
|
20
|
+
* @param agentId - The agent ID
|
|
21
|
+
* @returns List of shadow tests
|
|
22
|
+
*/
|
|
23
|
+
async list(agentId) {
|
|
24
|
+
const params = new URLSearchParams({ agentId });
|
|
25
|
+
return (0, client_1.apiRequestWithData)(`/shadow-tests?${params}`, {
|
|
26
|
+
apiVersion: 'none',
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
/**
|
|
30
|
+
* Get a shadow test by ID
|
|
31
|
+
*
|
|
32
|
+
* @param id - The shadow test ID
|
|
33
|
+
* @returns The shadow test details
|
|
34
|
+
*/
|
|
35
|
+
async get(id) {
|
|
36
|
+
return (0, client_1.apiRequestWithData)(`/shadow-tests/${id}`, {
|
|
37
|
+
apiVersion: 'none',
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Get shadow tests for a specific fix
|
|
42
|
+
*
|
|
43
|
+
* @param fixId - The fix ID
|
|
44
|
+
* @returns List of shadow tests for the fix
|
|
45
|
+
*/
|
|
46
|
+
async getByFix(fixId) {
|
|
47
|
+
return (0, client_1.apiRequestWithData)(`/fixes/${fixId}/shadow-tests`, {
|
|
48
|
+
apiVersion: 'none',
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* Create a new shadow test
|
|
53
|
+
*
|
|
54
|
+
* @param data - Shadow test configuration
|
|
55
|
+
* @returns The created shadow test
|
|
56
|
+
*/
|
|
57
|
+
async create(data) {
|
|
58
|
+
return (0, client_1.apiRequestWithData)('/shadow-tests', {
|
|
59
|
+
method: 'POST',
|
|
60
|
+
body: data,
|
|
61
|
+
apiVersion: 'none',
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* Update a shadow test
|
|
66
|
+
*
|
|
67
|
+
* @param id - The shadow test ID to update
|
|
68
|
+
* @param data - Fields to update
|
|
69
|
+
* @returns The updated shadow test
|
|
70
|
+
*/
|
|
71
|
+
async update(id, data) {
|
|
72
|
+
return (0, client_1.apiRequestWithData)(`/shadow-tests/${id}`, {
|
|
73
|
+
method: 'PATCH',
|
|
74
|
+
body: data,
|
|
75
|
+
apiVersion: 'none',
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
exports.default = exports.shadowTests;
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZG93LXRlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9zaGFkb3ctdGVzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQUVILDJDQUFvRDtBQXdDcEQsK0VBQStFO0FBQy9FLDBCQUEwQjtBQUMxQiwrRUFBK0U7QUFFL0U7O0dBRUc7QUFDVSxRQUFBLFdBQVcsR0FBRztJQUN6Qjs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFBLDJCQUFrQixFQUFlLGlCQUFpQixNQUFNLEVBQUUsRUFBRTtZQUNqRSxVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQVU7UUFDbEIsT0FBTyxJQUFBLDJCQUFrQixFQUFhLGlCQUFpQixFQUFFLEVBQUUsRUFBRTtZQUMzRCxVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDMUIsT0FBTyxJQUFBLDJCQUFrQixFQUFlLFVBQVUsS0FBSyxlQUFlLEVBQUU7WUFDdEUsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUEwQjtRQUNyQyxPQUFPLElBQUEsMkJBQWtCLEVBQWEsZUFBZSxFQUFFO1lBQ3JELE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFVLEVBQUUsSUFBMEI7UUFDakQsT0FBTyxJQUFBLDJCQUFrQixFQUFhLGlCQUFpQixFQUFFLEVBQUUsRUFBRTtZQUMzRCxNQUFNLEVBQUUsT0FBTztZQUNmLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUM7QUFFc0Isa0JBcEVYLG1CQUFXLENBb0VPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIC0gU2hhZG93IFRlc3RzIEFQSVxuICpcbiAqIFNoYWRvdyB0ZXN0IGV4ZWN1dGlvbiBmb3IgdmFsaWRhdGluZyBwcm9wb3NlZCBmaXhlc1xuICovXG5cbmltcG9ydCB7IGFwaVJlcXVlc3RXaXRoRGF0YSB9IGZyb20gJy4uL2NvcmUvY2xpZW50JztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqIERhdGEgZm9yIGNyZWF0aW5nIGEgc2hhZG93IHRlc3QgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU2hhZG93VGVzdERhdGEge1xuICBmaXhJZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHRlc3ROYW1lOiBzdHJpbmc7XG4gIGlucHV0RGF0YTogdW5rbm93bjtcbiAgZXhwZWN0ZWRPdXRwdXQ6IHVua25vd247XG59XG5cbi8qKiBEYXRhIGZvciB1cGRhdGluZyBhIHNoYWRvdyB0ZXN0ICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNoYWRvd1Rlc3REYXRhIHtcbiAgdGVzdE5hbWU/OiBzdHJpbmc7XG4gIHN0YXR1cz86IHN0cmluZztcbiAgYWN0dWFsT3V0cHV0PzogdW5rbm93bjtcbiAgcGFzc2VkPzogYm9vbGVhbjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqIEEgc2hhZG93IHRlc3QgcmVjb3JkICovXG5leHBvcnQgaW50ZXJmYWNlIFNoYWRvd1Rlc3Qge1xuICBpZDogc3RyaW5nO1xuICBmaXhJZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHRlc3ROYW1lOiBzdHJpbmc7XG4gIGlucHV0RGF0YTogdW5rbm93bjtcbiAgZXhwZWN0ZWRPdXRwdXQ6IHVua25vd247XG4gIGFjdHVhbE91dHB1dD86IHVua25vd247XG4gIHN0YXR1czogc3RyaW5nO1xuICBwYXNzZWQ/OiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgY29tcGxldGVkQXQ/OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNIQURPVyBURVNUUyBBUEkgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU2hhZG93IHRlc3RzIEFQSSBjbGllbnQgZm9yIG1hbmFnaW5nIHNoYWRvdyB0ZXN0IGV4ZWN1dGlvblxuICovXG5leHBvcnQgY29uc3Qgc2hhZG93VGVzdHMgPSB7XG4gIC8qKlxuICAgKiBMaXN0IHNoYWRvdyB0ZXN0cyBmb3IgYW4gYWdlbnRcbiAgICpcbiAgICogQHBhcmFtIGFnZW50SWQgLSBUaGUgYWdlbnQgSURcbiAgICogQHJldHVybnMgTGlzdCBvZiBzaGFkb3cgdGVzdHNcbiAgICovXG4gIGFzeW5jIGxpc3QoYWdlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxTaGFkb3dUZXN0W10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgYWdlbnRJZCB9KTtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFNoYWRvd1Rlc3RbXT4oYC9zaGFkb3ctdGVzdHM/JHtwYXJhbXN9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYSBzaGFkb3cgdGVzdCBieSBJRFxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgc2hhZG93IHRlc3QgSURcbiAgICogQHJldHVybnMgVGhlIHNoYWRvdyB0ZXN0IGRldGFpbHNcbiAgICovXG4gIGFzeW5jIGdldChpZDogc3RyaW5nKTogUHJvbWlzZTxTaGFkb3dUZXN0PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaGFkb3dUZXN0PihgL3NoYWRvdy10ZXN0cy8ke2lkfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICdub25lJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHNoYWRvdyB0ZXN0cyBmb3IgYSBzcGVjaWZpYyBmaXhcbiAgICpcbiAgICogQHBhcmFtIGZpeElkIC0gVGhlIGZpeCBJRFxuICAgKiBAcmV0dXJucyBMaXN0IG9mIHNoYWRvdyB0ZXN0cyBmb3IgdGhlIGZpeFxuICAgKi9cbiAgYXN5bmMgZ2V0QnlGaXgoZml4SWQ6IHN0cmluZyk6IFByb21pc2U8U2hhZG93VGVzdFtdPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaGFkb3dUZXN0W10+KGAvZml4ZXMvJHtmaXhJZH0vc2hhZG93LXRlc3RzYCwge1xuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgc2hhZG93IHRlc3RcbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBTaGFkb3cgdGVzdCBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHNoYWRvdyB0ZXN0XG4gICAqL1xuICBhc3luYyBjcmVhdGUoZGF0YTogQ3JlYXRlU2hhZG93VGVzdERhdGEpOiBQcm9taXNlPFNoYWRvd1Rlc3Q+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFNoYWRvd1Rlc3Q+KCcvc2hhZG93LXRlc3RzJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBkYXRhLFxuICAgICAgYXBpVmVyc2lvbjogJ25vbmUnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSBzaGFkb3cgdGVzdFxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgc2hhZG93IHRlc3QgSUQgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSBkYXRhIC0gRmllbGRzIHRvIHVwZGF0ZVxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBzaGFkb3cgdGVzdFxuICAgKi9cbiAgYXN5bmMgdXBkYXRlKGlkOiBzdHJpbmcsIGRhdGE6IFVwZGF0ZVNoYWRvd1Rlc3REYXRhKTogUHJvbWlzZTxTaGFkb3dUZXN0PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaGFkb3dUZXN0PihgL3NoYWRvdy10ZXN0cy8ke2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgICBhcGlWZXJzaW9uOiAnbm9uZScsXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgeyBzaGFkb3dUZXN0cyBhcyBkZWZhdWx0IH07XG4iXX0=
|