@thinkhive/sdk 2.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ /**
3
+ * ThinkHive SDK v3.0 - Ticket Linking
4
+ *
5
+ * Deterministic linking between runs and support tickets
6
+ * 7 link methods with explicit confidence scores
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.linking = exports.LINK_METHOD_CONFIDENCE = void 0;
10
+ exports.generateZendeskMarker = generateZendeskMarker;
11
+ exports.parseZendeskMarker = parseZendeskMarker;
12
+ exports.hasZendeskMarker = hasZendeskMarker;
13
+ exports.removeZendeskMarker = removeZendeskMarker;
14
+ exports.linkRunToTicket = linkRunToTicket;
15
+ exports.linkRunToZendeskTicket = linkRunToZendeskTicket;
16
+ exports.getBestLinkMethod = getBestLinkMethod;
17
+ exports.formatLinkConfidence = formatLinkConfidence;
18
+ exports.getConfidenceLevel = getConfidenceLevel;
19
+ const client_1 = require("../core/client");
20
+ // ============================================================================
21
+ // ZENDESK MARKER
22
+ // ============================================================================
23
+ /**
24
+ * Zendesk marker format: [THID:run_xxx]
25
+ * Embedded in agent responses for deterministic linking
26
+ */
27
+ const MARKER_PREFIX = '[THID:';
28
+ const MARKER_SUFFIX = ']';
29
+ const MARKER_REGEX = /\[THID:([a-zA-Z0-9_-]+)\]/;
30
+ /**
31
+ * Generate a Zendesk marker to embed in agent responses
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const runId = 'run_abc123';
36
+ * const marker = generateZendeskMarker(runId);
37
+ * // Returns: '[THID:run_abc123]'
38
+ *
39
+ * // Append to your agent response:
40
+ * const response = `I've found your order. ${marker}`;
41
+ * ```
42
+ */
43
+ function generateZendeskMarker(runId) {
44
+ if (!runId) {
45
+ throw new Error('Run ID is required to generate Zendesk marker');
46
+ }
47
+ return `${MARKER_PREFIX}${runId}${MARKER_SUFFIX}`;
48
+ }
49
+ /**
50
+ * Parse a Zendesk marker from text
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const text = 'Thank you for contacting us. [THID:run_abc123]';
55
+ * const runId = parseZendeskMarker(text);
56
+ * // Returns: 'run_abc123'
57
+ * ```
58
+ */
59
+ function parseZendeskMarker(text) {
60
+ const match = text.match(MARKER_REGEX);
61
+ return match ? match[1] : null;
62
+ }
63
+ /**
64
+ * Check if text contains a Zendesk marker
65
+ */
66
+ function hasZendeskMarker(text) {
67
+ return MARKER_REGEX.test(text);
68
+ }
69
+ /**
70
+ * Remove Zendesk marker from text (for clean display)
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const text = 'Thank you! [THID:run_abc123]';
75
+ * const clean = removeZendeskMarker(text);
76
+ * // Returns: 'Thank you!'
77
+ * ```
78
+ */
79
+ function removeZendeskMarker(text) {
80
+ return text.replace(MARKER_REGEX, '').trim();
81
+ }
82
+ // ============================================================================
83
+ // LINK METHODS & CONFIDENCE
84
+ // ============================================================================
85
+ /**
86
+ * Confidence scores for each link method
87
+ * Based on deterministic linking principles from v3 spec
88
+ */
89
+ exports.LINK_METHOD_CONFIDENCE = {
90
+ sdk_explicit: 1.0, // Direct SDK call with ticket ID
91
+ zendesk_marker: 1.0, // Embedded THID marker in response
92
+ custom_field: 1.0, // Zendesk custom field
93
+ middleware_stamp: 0.98, // Middleware-injected trace ID
94
+ session_match: 0.95, // Session ID correlation
95
+ email_time_window: 0.6, // Email + 15min window (lowest confidence)
96
+ manual: 1.0, // Human-assigned
97
+ };
98
+ /**
99
+ * Linking API client
100
+ */
101
+ exports.linking = {
102
+ /**
103
+ * Create a link between a run and a ticket
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * // SDK explicit linking (highest confidence)
108
+ * const link = await linking.create({
109
+ * runId: 'run_abc123',
110
+ * ticketId: 'ticket_xyz',
111
+ * method: 'sdk_explicit',
112
+ * });
113
+ *
114
+ * // Zendesk marker linking
115
+ * const link = await linking.create({
116
+ * runId: 'run_abc123',
117
+ * externalTicketId: '12345',
118
+ * platform: 'zendesk',
119
+ * method: 'zendesk_marker',
120
+ * });
121
+ * ```
122
+ */
123
+ async create(input) {
124
+ return (0, client_1.apiRequestWithData)('/links', {
125
+ method: 'POST',
126
+ body: {
127
+ ...input,
128
+ confidence: exports.LINK_METHOD_CONFIDENCE[input.method],
129
+ },
130
+ });
131
+ },
132
+ /**
133
+ * Get links for a run
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const links = await linking.getForRun('run_abc123');
138
+ * ```
139
+ */
140
+ async getForRun(runId) {
141
+ return (0, client_1.apiRequestWithData)(`/runs/${runId}/links`);
142
+ },
143
+ /**
144
+ * Get links for a ticket
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * const links = await linking.getForTicket('ticket_xyz');
149
+ * ```
150
+ */
151
+ async getForTicket(ticketId) {
152
+ return (0, client_1.apiRequestWithData)(`/tickets/${ticketId}/links`);
153
+ },
154
+ /**
155
+ * Verify a link (confirm or reject)
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * await linking.verify('link_abc123', {
160
+ * verified: true,
161
+ * notes: 'Confirmed by support agent',
162
+ * });
163
+ * ```
164
+ */
165
+ async verify(linkId, options) {
166
+ return (0, client_1.apiRequestWithData)(`/links/${linkId}/verify`, {
167
+ method: 'POST',
168
+ body: options,
169
+ });
170
+ },
171
+ /**
172
+ * Delete a link
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * await linking.delete('link_abc123');
177
+ * ```
178
+ */
179
+ async delete(linkId) {
180
+ await (0, client_1.apiRequest)(`/links/${linkId}`, { method: 'DELETE' });
181
+ },
182
+ /**
183
+ * Auto-link runs to tickets based on available evidence
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * const results = await linking.autoLink('run_abc123');
188
+ * for (const link of results.created) {
189
+ * console.log(`Linked to ${link.ticketId} via ${link.method}`);
190
+ * }
191
+ * ```
192
+ */
193
+ async autoLink(runId) {
194
+ return (0, client_1.apiRequestWithData)(`/runs/${runId}/auto-link`, {
195
+ method: 'POST',
196
+ });
197
+ },
198
+ };
199
+ // ============================================================================
200
+ // HELPER FUNCTIONS
201
+ // ============================================================================
202
+ /**
203
+ * Create SDK explicit link (convenience function)
204
+ */
205
+ async function linkRunToTicket(runId, ticketId) {
206
+ return exports.linking.create({
207
+ runId,
208
+ ticketId,
209
+ method: 'sdk_explicit',
210
+ });
211
+ }
212
+ /**
213
+ * Create Zendesk link via marker
214
+ */
215
+ async function linkRunToZendeskTicket(runId, zendeskTicketId) {
216
+ return exports.linking.create({
217
+ runId,
218
+ externalTicketId: zendeskTicketId,
219
+ platform: 'zendesk',
220
+ method: 'zendesk_marker',
221
+ });
222
+ }
223
+ /**
224
+ * Get the best link method for a given scenario
225
+ */
226
+ function getBestLinkMethod(available) {
227
+ if (available.hasTicketId)
228
+ return 'sdk_explicit';
229
+ if (available.hasMarker)
230
+ return 'zendesk_marker';
231
+ if (available.hasCustomField)
232
+ return 'custom_field';
233
+ if (available.hasMiddlewareStamp)
234
+ return 'middleware_stamp';
235
+ if (available.hasSessionId)
236
+ return 'session_match';
237
+ if (available.hasEmail)
238
+ return 'email_time_window';
239
+ return null;
240
+ }
241
+ /**
242
+ * Format link confidence for display
243
+ */
244
+ function formatLinkConfidence(confidence) {
245
+ return `${Math.round(confidence * 100)}%`;
246
+ }
247
+ /**
248
+ * Get confidence level label
249
+ */
250
+ function getConfidenceLevel(confidence) {
251
+ if (confidence >= 1.0)
252
+ return 'definitive';
253
+ if (confidence >= 0.95)
254
+ return 'high';
255
+ if (confidence >= 0.8)
256
+ return 'medium';
257
+ return 'low';
258
+ }
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWxpbmtpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZWdyYXRpb25zL3RpY2tldC1saW5raW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBOEJILHNEQUtDO0FBWUQsZ0RBR0M7QUFLRCw0Q0FFQztBQVlELGtEQUVDO0FBcU1ELDBDQVNDO0FBS0Qsd0RBVUM7QUFLRCw4Q0FpQkM7QUFLRCxvREFFQztBQUtELGdEQU9DO0FBM1VELDJDQUFnRTtBQUdoRSwrRUFBK0U7QUFDL0UsaUJBQWlCO0FBQ2pCLCtFQUErRTtBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFDL0IsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBQzFCLE1BQU0sWUFBWSxHQUFHLDJCQUEyQixDQUFDO0FBRWpEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLEtBQWE7SUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxPQUFPLEdBQUcsYUFBYSxHQUFHLEtBQUssR0FBRyxhQUFhLEVBQUUsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsSUFBWTtJQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFZO0lBQzNDLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7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Q0FDL0IsU0FPQztJQUVELElBQUksU0FBUyxDQUFDLFdBQVc7UUFBRSxPQUFPLGNBQWMsQ0FBQztJQUNqRCxJQUFJLFNBQVMsQ0FBQyxTQUFTO1FBQUUsT0FBTyxnQkFBZ0IsQ0FBQztJQUNqRCxJQUFJLFNBQVMsQ0FBQyxjQUFjO1FBQUUsT0FBTyxjQUFjLENBQUM7SUFDcEQsSUFBSSxTQUFTLENBQUMsa0JBQWtCO1FBQUUsT0FBTyxrQkFBa0IsQ0FBQztJQUM1RCxJQUFJLFNBQVMsQ0FBQyxZQUFZO1FBQUUsT0FBTyxlQUFlLENBQUM7SUFDbkQsSUFBSSxTQUFTLENBQUMsUUFBUTtRQUFFLE9BQU8sbUJBQW1CLENBQUM7SUFDbkQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxVQUFrQjtJQUNyRCxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztBQUM1QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsVUFBa0I7SUFFbEIsSUFBSSxVQUFVLElBQUksR0FBRztRQUFFLE9BQU8sWUFBWSxDQUFDO0lBQzNDLElBQUksVUFBVSxJQUFJLElBQUk7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUN0QyxJQUFJLFVBQVUsSUFBSSxHQUFHO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDdkMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHYzLjAgLSBUaWNrZXQgTGlua2luZ1xuICpcbiAqIERldGVybWluaXN0aWMgbGlua2luZyBiZXR3ZWVuIHJ1bnMgYW5kIHN1cHBvcnQgdGlja2V0c1xuICogNyBsaW5rIG1ldGhvZHMgd2l0aCBleHBsaWNpdCBjb25maWRlbmNlIHNjb3Jlc1xuICovXG5cbmltcG9ydCB7IGFwaVJlcXVlc3QsIGFwaVJlcXVlc3RXaXRoRGF0YSB9IGZyb20gJy4uL2NvcmUvY2xpZW50JztcbmltcG9ydCB0eXBlIHsgTGlua01ldGhvZCB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBaRU5ERVNLIE1BUktFUlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFplbmRlc2sgbWFya2VyIGZvcm1hdDogW1RISUQ6cnVuX3h4eF1cbiAqIEVtYmVkZGVkIGluIGFnZW50IHJlc3BvbnNlcyBmb3IgZGV0ZXJtaW5pc3RpYyBsaW5raW5nXG4gKi9cbmNvbnN0IE1BUktFUl9QUkVGSVggPSAnW1RISUQ6JztcbmNvbnN0IE1BUktFUl9TVUZGSVggPSAnXSc7XG5jb25zdCBNQVJLRVJfUkVHRVggPSAvXFxbVEhJRDooW2EtekEtWjAtOV8tXSspXFxdLztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhIFplbmRlc2sgbWFya2VyIHRvIGVtYmVkIGluIGFnZW50IHJlc3BvbnNlc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBydW5JZCA9ICdydW5fYWJjMTIzJztcbiAqIGNvbnN0IG1hcmtlciA9IGdlbmVyYXRlWmVuZGVza01hcmtlcihydW5JZCk7XG4gKiAvLyBSZXR1cm5zOiAnW1RISUQ6cnVuX2FiYzEyM10nXG4gKlxuICogLy8gQXBwZW5kIHRvIHlvdXIgYWdlbnQgcmVzcG9uc2U6XG4gKiBjb25zdCByZXNwb25zZSA9IGBJJ3ZlIGZvdW5kIHlvdXIgb3JkZXIuICR7bWFya2VyfWA7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlWmVuZGVza01hcmtlcihydW5JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFydW5JZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUnVuIElEIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIFplbmRlc2sgbWFya2VyJyk7XG4gIH1cbiAgcmV0dXJuIGAke01BUktFUl9QUkVGSVh9JHtydW5JZH0ke01BUktFUl9TVUZGSVh9YDtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIFplbmRlc2sgbWFya2VyIGZyb20gdGV4dFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0ZXh0ID0gJ1RoYW5rIHlvdSBmb3IgY29udGFjdGluZyB1cy4gW1RISUQ6cnVuX2FiYzEyM10nO1xuICogY29uc3QgcnVuSWQgPSBwYXJzZVplbmRlc2tNYXJrZXIodGV4dCk7XG4gKiAvLyBSZXR1cm5zOiAncnVuX2FiYzEyMydcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VaZW5kZXNrTWFya2VyKHRleHQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IHRleHQubWF0Y2goTUFSS0VSX1JFR0VYKTtcbiAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBudWxsO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRleHQgY29udGFpbnMgYSBaZW5kZXNrIG1hcmtlclxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzWmVuZGVza01hcmtlcih0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIE1BUktFUl9SRUdFWC50ZXN0KHRleHQpO1xufVxuXG4vKipcbiAqIFJlbW92ZSBaZW5kZXNrIG1hcmtlciBmcm9tIHRleHQgKGZvciBjbGVhbiBkaXNwbGF5KVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0ZXh0ID0gJ1RoYW5rIHlvdSEgW1RISUQ6cnVuX2FiYzEyM10nO1xuICogY29uc3QgY2xlYW4gPSByZW1vdmVaZW5kZXNrTWFya2VyKHRleHQpO1xuICogLy8gUmV0dXJuczogJ1RoYW5rIHlvdSEnXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVplbmRlc2tNYXJrZXIodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZShNQVJLRVJfUkVHRVgsICcnKS50cmltKCk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExJTksgTUVUSE9EUyAmIENPTkZJREVOQ0Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb25maWRlbmNlIHNjb3JlcyBmb3IgZWFjaCBsaW5rIG1ldGhvZFxuICogQmFzZWQgb24gZGV0ZXJtaW5pc3RpYyBsaW5raW5nIHByaW5jaXBsZXMgZnJvbSB2MyBzcGVjXG4gKi9cbmV4cG9ydCBjb25zdCBMSU5LX01FVEhPRF9DT05GSURFTkNFOiBSZWNvcmQ8TGlua01ldGhvZCwgbnVtYmVyPiA9IHtcbiAgc2RrX2V4cGxpY2l0OiAxLjAsICAgICAgLy8gRGlyZWN0IFNESyBjYWxsIHdpdGggdGlja2V0IElEXG4gIHplbmRlc2tfbWFya2VyOiAxLjAsICAgIC8vIEVtYmVkZGVkIFRISUQgbWFya2VyIGluIHJlc3BvbnNlXG4gIGN1c3RvbV9maWVsZDogMS4wLCAgICAgIC8vIFplbmRlc2sgY3VzdG9tIGZpZWxkXG4gIG1pZGRsZXdhcmVfc3RhbXA6IDAuOTgsIC8vIE1pZGRsZXdhcmUtaW5qZWN0ZWQgdHJhY2UgSURcbiAgc2Vzc2lvbl9tYXRjaDogMC45NSwgICAgLy8gU2Vzc2lvbiBJRCBjb3JyZWxhdGlvblxuICBlbWFpbF90aW1lX3dpbmRvdzogMC42LCAvLyBFbWFpbCArIDE1bWluIHdpbmRvdyAobG93ZXN0IGNvbmZpZGVuY2UpXG4gIG1hbnVhbDogMS4wLCAgICAgICAgICAgIC8vIEh1bWFuLWFzc2lnbmVkXG59O1xuXG4vKipcbiAqIExpbmsgZXZpZGVuY2Ugc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlua0V2aWRlbmNlIHtcbiAgbWV0aG9kOiBMaW5rTWV0aG9kO1xuICBjb25maWRlbmNlOiBudW1iZXI7XG4gIHRpbWVzdGFtcDogc3RyaW5nO1xuICBkZXRhaWxzOiB7XG4gICAgcnVuSWQ/OiBzdHJpbmc7XG4gICAgdGlja2V0SWQ/OiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxUaWNrZXRJZD86IHN0cmluZztcbiAgICBwbGF0Zm9ybT86IHN0cmluZztcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmc7XG4gICAgZW1haWw/OiBzdHJpbmc7XG4gICAgdGltZVdpbmRvd01pbnV0ZXM/OiBudW1iZXI7XG4gICAgY3VzdG9tRmllbGROYW1lPzogc3RyaW5nO1xuICAgIGN1c3RvbUZpZWxkVmFsdWU/OiBzdHJpbmc7XG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExJTktJTkcgQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ3JlYXRlIGxpbmsgaW5wdXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVMaW5rSW5wdXQge1xuICBydW5JZDogc3RyaW5nO1xuICB0aWNrZXRJZD86IHN0cmluZztcbiAgZXh0ZXJuYWxUaWNrZXRJZD86IHN0cmluZztcbiAgcGxhdGZvcm0/OiAnemVuZGVzaycgfCAnaW50ZXJjb20nIHwgJ3NhbGVzZm9yY2UnIHwgJ2ZyZXNoZGVzayc7XG4gIG1ldGhvZDogTGlua01ldGhvZDtcbiAgZXZpZGVuY2U/OiBQYXJ0aWFsPExpbmtFdmlkZW5jZVsnZGV0YWlscyddPjtcbn1cblxuLyoqXG4gKiBMaW5rIHJlc3BvbnNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlua1Jlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgdGlja2V0SWQ/OiBzdHJpbmc7XG4gIGV4dGVybmFsVGlja2V0SWQ/OiBzdHJpbmc7XG4gIHBsYXRmb3JtPzogc3RyaW5nO1xuICBtZXRob2Q6IExpbmtNZXRob2Q7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbiAgZXZpZGVuY2U6IExpbmtFdmlkZW5jZTtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGlua2luZyBBUEkgY2xpZW50XG4gKi9cbmV4cG9ydCBjb25zdCBsaW5raW5nID0ge1xuICAvKipcbiAgICogQ3JlYXRlIGEgbGluayBiZXR3ZWVuIGEgcnVuIGFuZCBhIHRpY2tldFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIFNESyBleHBsaWNpdCBsaW5raW5nIChoaWdoZXN0IGNvbmZpZGVuY2UpXG4gICAqIGNvbnN0IGxpbmsgPSBhd2FpdCBsaW5raW5nLmNyZWF0ZSh7XG4gICAqICAgcnVuSWQ6ICdydW5fYWJjMTIzJyxcbiAgICogICB0aWNrZXRJZDogJ3RpY2tldF94eXonLFxuICAgKiAgIG1ldGhvZDogJ3Nka19leHBsaWNpdCcsXG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBaZW5kZXNrIG1hcmtlciBsaW5raW5nXG4gICAqIGNvbnN0IGxpbmsgPSBhd2FpdCBsaW5raW5nLmNyZWF0ZSh7XG4gICAqICAgcnVuSWQ6ICdydW5fYWJjMTIzJyxcbiAgICogICBleHRlcm5hbFRpY2tldElkOiAnMTIzNDUnLFxuICAgKiAgIHBsYXRmb3JtOiAnemVuZGVzaycsXG4gICAqICAgbWV0aG9kOiAnemVuZGVza19tYXJrZXInLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBjcmVhdGUoaW5wdXQ6IENyZWF0ZUxpbmtJbnB1dCk6IFByb21pc2U8TGlua1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxMaW5rUmVzcG9uc2U+KCcvbGlua3MnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgIGNvbmZpZGVuY2U6IExJTktfTUVUSE9EX0NPTkZJREVOQ0VbaW5wdXQubWV0aG9kXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBsaW5rcyBmb3IgYSBydW5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBsaW5rcyA9IGF3YWl0IGxpbmtpbmcuZ2V0Rm9yUnVuKCdydW5fYWJjMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0Rm9yUnVuKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPExpbmtSZXNwb25zZVtdPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxMaW5rUmVzcG9uc2VbXT4oYC9ydW5zLyR7cnVuSWR9L2xpbmtzYCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBsaW5rcyBmb3IgYSB0aWNrZXRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBsaW5rcyA9IGF3YWl0IGxpbmtpbmcuZ2V0Rm9yVGlja2V0KCd0aWNrZXRfeHl6Jyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0Rm9yVGlja2V0KHRpY2tldElkOiBzdHJpbmcpOiBQcm9taXNlPExpbmtSZXNwb25zZVtdPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxMaW5rUmVzcG9uc2VbXT4oYC90aWNrZXRzLyR7dGlja2V0SWR9L2xpbmtzYCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFZlcmlmeSBhIGxpbmsgKGNvbmZpcm0gb3IgcmVqZWN0KVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGF3YWl0IGxpbmtpbmcudmVyaWZ5KCdsaW5rX2FiYzEyMycsIHtcbiAgICogICB2ZXJpZmllZDogdHJ1ZSxcbiAgICogICBub3RlczogJ0NvbmZpcm1lZCBieSBzdXBwb3J0IGFnZW50JyxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgdmVyaWZ5KFxuICAgIGxpbmtJZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgdmVyaWZpZWQ6IGJvb2xlYW47IG5vdGVzPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTx7IGxpbmtJZDogc3RyaW5nOyB2ZXJpZmllZDogYm9vbGVhbjsgbWVzc2FnZTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKGAvbGlua3MvJHtsaW5rSWR9L3ZlcmlmeWAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogb3B0aW9ucyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlIGEgbGlua1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGF3YWl0IGxpbmtpbmcuZGVsZXRlKCdsaW5rX2FiYzEyMycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGRlbGV0ZShsaW5rSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGFwaVJlcXVlc3QoYC9saW5rcy8ke2xpbmtJZH1gLCB7IG1ldGhvZDogJ0RFTEVURScgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEF1dG8tbGluayBydW5zIHRvIHRpY2tldHMgYmFzZWQgb24gYXZhaWxhYmxlIGV2aWRlbmNlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0cyA9IGF3YWl0IGxpbmtpbmcuYXV0b0xpbmsoJ3J1bl9hYmMxMjMnKTtcbiAgICogZm9yIChjb25zdCBsaW5rIG9mIHJlc3VsdHMuY3JlYXRlZCkge1xuICAgKiAgIGNvbnNvbGUubG9nKGBMaW5rZWQgdG8gJHtsaW5rLnRpY2tldElkfSB2aWEgJHtsaW5rLm1ldGhvZH1gKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGF1dG9MaW5rKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPHtcbiAgICBydW5JZDogc3RyaW5nO1xuICAgIGNyZWF0ZWQ6IExpbmtSZXNwb25zZVtdO1xuICAgIGNhbmRpZGF0ZXM6IEFycmF5PHtcbiAgICAgIHRpY2tldElkOiBzdHJpbmc7XG4gICAgICBtZXRob2Q6IExpbmtNZXRob2Q7XG4gICAgICBjb25maWRlbmNlOiBudW1iZXI7XG4gICAgICByZWFzb246IHN0cmluZztcbiAgICB9PjtcbiAgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9ydW5zLyR7cnVuSWR9L2F1dG8tbGlua2AsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIH0pO1xuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENyZWF0ZSBTREsgZXhwbGljaXQgbGluayAoY29udmVuaWVuY2UgZnVuY3Rpb24pXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW5rUnVuVG9UaWNrZXQoXG4gIHJ1bklkOiBzdHJpbmcsXG4gIHRpY2tldElkOiBzdHJpbmdcbik6IFByb21pc2U8TGlua1Jlc3BvbnNlPiB7XG4gIHJldHVybiBsaW5raW5nLmNyZWF0ZSh7XG4gICAgcnVuSWQsXG4gICAgdGlja2V0SWQsXG4gICAgbWV0aG9kOiAnc2RrX2V4cGxpY2l0JyxcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIFplbmRlc2sgbGluayB2aWEgbWFya2VyXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW5rUnVuVG9aZW5kZXNrVGlja2V0KFxuICBydW5JZDogc3RyaW5nLFxuICB6ZW5kZXNrVGlja2V0SWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxMaW5rUmVzcG9uc2U+IHtcbiAgcmV0dXJuIGxpbmtpbmcuY3JlYXRlKHtcbiAgICBydW5JZCxcbiAgICBleHRlcm5hbFRpY2tldElkOiB6ZW5kZXNrVGlja2V0SWQsXG4gICAgcGxhdGZvcm06ICd6ZW5kZXNrJyxcbiAgICBtZXRob2Q6ICd6ZW5kZXNrX21hcmtlcicsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCB0aGUgYmVzdCBsaW5rIG1ldGhvZCBmb3IgYSBnaXZlbiBzY2VuYXJpb1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmVzdExpbmtNZXRob2QoXG4gIGF2YWlsYWJsZToge1xuICAgIGhhc1RpY2tldElkOiBib29sZWFuO1xuICAgIGhhc01hcmtlcjogYm9vbGVhbjtcbiAgICBoYXNDdXN0b21GaWVsZDogYm9vbGVhbjtcbiAgICBoYXNNaWRkbGV3YXJlU3RhbXA6IGJvb2xlYW47XG4gICAgaGFzU2Vzc2lvbklkOiBib29sZWFuO1xuICAgIGhhc0VtYWlsOiBib29sZWFuO1xuICB9XG4pOiBMaW5rTWV0aG9kIHwgbnVsbCB7XG4gIGlmIChhdmFpbGFibGUuaGFzVGlja2V0SWQpIHJldHVybiAnc2RrX2V4cGxpY2l0JztcbiAgaWYgKGF2YWlsYWJsZS5oYXNNYXJrZXIpIHJldHVybiAnemVuZGVza19tYXJrZXInO1xuICBpZiAoYXZhaWxhYmxlLmhhc0N1c3RvbUZpZWxkKSByZXR1cm4gJ2N1c3RvbV9maWVsZCc7XG4gIGlmIChhdmFpbGFibGUuaGFzTWlkZGxld2FyZVN0YW1wKSByZXR1cm4gJ21pZGRsZXdhcmVfc3RhbXAnO1xuICBpZiAoYXZhaWxhYmxlLmhhc1Nlc3Npb25JZCkgcmV0dXJuICdzZXNzaW9uX21hdGNoJztcbiAgaWYgKGF2YWlsYWJsZS5oYXNFbWFpbCkgcmV0dXJuICdlbWFpbF90aW1lX3dpbmRvdyc7XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEZvcm1hdCBsaW5rIGNvbmZpZGVuY2UgZm9yIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdExpbmtDb25maWRlbmNlKGNvbmZpZGVuY2U6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtNYXRoLnJvdW5kKGNvbmZpZGVuY2UgKiAxMDApfSVgO1xufVxuXG4vKipcbiAqIEdldCBjb25maWRlbmNlIGxldmVsIGxhYmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWRlbmNlTGV2ZWwoXG4gIGNvbmZpZGVuY2U6IG51bWJlclxuKTogJ2RlZmluaXRpdmUnIHwgJ2hpZ2gnIHwgJ21lZGl1bScgfCAnbG93JyB7XG4gIGlmIChjb25maWRlbmNlID49IDEuMCkgcmV0dXJuICdkZWZpbml0aXZlJztcbiAgaWYgKGNvbmZpZGVuY2UgPj0gMC45NSkgcmV0dXJuICdoaWdoJztcbiAgaWYgKGNvbmZpZGVuY2UgPj0gMC44KSByZXR1cm4gJ21lZGl1bSc7XG4gIHJldHVybiAnbG93Jztcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,19 +1,45 @@
1
1
  {
2
2
  "name": "@thinkhive/sdk",
3
- "version": "2.0.1",
4
- "publishConfig": {
5
- "access": "public"
6
- },
7
- "description": "ThinkHive SDK - AI Agent Observability Platform with explainability, RAG evaluation, and business impact analysis",
3
+ "version": "3.1.0",
4
+ "description": "ThinkHive SDK v3.1 - AI agent observability supporting 25 trace formats including LangSmith, Langfuse, Opik, Braintrust, Datadog, MLflow, and more",
8
5
  "main": "dist/index.js",
9
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "require": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ },
12
+ "./instrumentation/openai": {
13
+ "require": "./dist/instrumentation/openai.js",
14
+ "types": "./dist/instrumentation/openai.d.ts"
15
+ },
16
+ "./instrumentation/langchain": {
17
+ "require": "./dist/instrumentation/langchain.js",
18
+ "types": "./dist/instrumentation/langchain.d.ts"
19
+ },
20
+ "./integrations/ticket-linking": {
21
+ "require": "./dist/integrations/ticket-linking.js",
22
+ "types": "./dist/integrations/ticket-linking.d.ts"
23
+ },
24
+ "./integrations/customer-context": {
25
+ "require": "./dist/integrations/customer-context.js",
26
+ "types": "./dist/integrations/customer-context.d.ts"
27
+ }
28
+ },
10
29
  "files": [
11
30
  "dist",
12
31
  "README.md",
13
- "LICENSE"
32
+ "LICENSE",
33
+ "MIGRATION.md"
14
34
  ],
15
35
  "scripts": {
16
- "test": "echo \"No tests yet\" && exit 0"
36
+ "build": "tsc",
37
+ "clean": "rm -rf dist",
38
+ "prepublishOnly": "npm run clean && npm run build",
39
+ "test": "vitest run",
40
+ "test:watch": "vitest",
41
+ "lint": "eslint src --ext .ts",
42
+ "typecheck": "tsc --noEmit"
17
43
  },
18
44
  "keywords": [
19
45
  "thinkhive",
@@ -27,9 +53,15 @@
27
53
  "hallucination-detection",
28
54
  "business-impact",
29
55
  "langchain",
56
+ "langgraph",
30
57
  "openai",
31
58
  "anthropic",
32
- "agent"
59
+ "agent",
60
+ "facts-vs-inferences",
61
+ "calibration",
62
+ "zendesk",
63
+ "intercom",
64
+ "customer-support"
33
65
  ],
34
66
  "author": "ThinkHive <support@thinkhive.ai>",
35
67
  "license": "MIT",
@@ -42,7 +74,7 @@
42
74
  "url": "https://github.com/thinkhive/thinkhive-js/issues"
43
75
  },
44
76
  "engines": {
45
- "node": ">=16.0.0"
77
+ "node": ">=18.0.0"
46
78
  },
47
79
  "dependencies": {
48
80
  "@opentelemetry/api": "^1.8.0",
@@ -50,5 +82,25 @@
50
82
  "@opentelemetry/resources": "^1.21.0",
51
83
  "@opentelemetry/sdk-trace-node": "^1.21.0",
52
84
  "@opentelemetry/sdk-trace-base": "^1.21.0"
85
+ },
86
+ "devDependencies": {
87
+ "@types/node": "^20.0.0",
88
+ "typescript": "^5.0.0",
89
+ "vitest": "^1.0.0",
90
+ "eslint": "^8.0.0",
91
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
92
+ "@typescript-eslint/parser": "^6.0.0"
93
+ },
94
+ "peerDependencies": {
95
+ "openai": ">=4.0.0",
96
+ "@langchain/core": ">=0.1.0"
97
+ },
98
+ "peerDependenciesMeta": {
99
+ "openai": {
100
+ "optional": true
101
+ },
102
+ "@langchain/core": {
103
+ "optional": true
104
+ }
53
105
  }
54
106
  }