@attrove/sdk 0.1.12 → 0.1.14
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/README.md +5 -2
- package/cjs/constants.js +1 -1
- package/cjs/resources/messages.js +3 -0
- package/cjs/resources/query.js +167 -8
- package/cjs/resources/settings.js +30 -14
- package/cjs/types/index.js +77 -66
- package/cjs/utils/streaming.js +16 -0
- package/esm/constants.d.ts +1 -1
- package/esm/constants.js +1 -1
- package/esm/resources/messages.d.ts.map +1 -1
- package/esm/resources/messages.js +3 -0
- package/esm/resources/messages.js.map +1 -1
- package/esm/resources/query.d.ts +12 -6
- package/esm/resources/query.d.ts.map +1 -1
- package/esm/resources/query.js +167 -8
- package/esm/resources/query.js.map +1 -1
- package/esm/resources/settings.d.ts +20 -6
- package/esm/resources/settings.d.ts.map +1 -1
- package/esm/resources/settings.js +31 -15
- package/esm/resources/settings.js.map +1 -1
- package/esm/types/index.d.ts +127 -45
- package/esm/types/index.d.ts.map +1 -1
- package/esm/types/index.js +77 -66
- package/esm/types/index.js.map +1 -1
- package/esm/utils/streaming.d.ts +9 -1
- package/esm/utils/streaming.d.ts.map +1 -1
- package/esm/utils/streaming.js +16 -0
- package/esm/utils/streaming.js.map +1 -1
- package/package.json +1 -1
package/esm/constants.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Automatically synchronized with package.json during the release process.
|
|
11
11
|
* For programmatic access, use `getVersion()` from './version'.
|
|
12
12
|
*/
|
|
13
|
-
export declare const SDK_VERSION = "0.1.
|
|
13
|
+
export declare const SDK_VERSION = "0.1.14";
|
|
14
14
|
/**
|
|
15
15
|
* Default API base URL for Attrove services.
|
|
16
16
|
*/
|
package/esm/constants.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Automatically synchronized with package.json during the release process.
|
|
11
11
|
* For programmatic access, use `getVersion()` from './version'.
|
|
12
12
|
*/
|
|
13
|
-
export const SDK_VERSION = "0.1.
|
|
13
|
+
export const SDK_VERSION = "0.1.14"; // auto-synced from package.json during release
|
|
14
14
|
/**
|
|
15
15
|
* Default API base URL for Attrove services.
|
|
16
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,OAAO,EAEP,UAAU,EACV,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM;IAGjC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,OAAO,EAEP,UAAU,EACV,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM;IAGjC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IA2CpE;;;;;;;;;;;;;;;OAeG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGxC"}
|
|
@@ -62,6 +62,9 @@ export class MessagesResource {
|
|
|
62
62
|
if (options.offset !== undefined) {
|
|
63
63
|
params.offset = String(options.offset);
|
|
64
64
|
}
|
|
65
|
+
if (options.excludeBots !== undefined) {
|
|
66
|
+
params.exclude_bots = String(options.excludeBots);
|
|
67
|
+
}
|
|
65
68
|
if (options.expand?.length) {
|
|
66
69
|
params.expand = options.expand.join(",");
|
|
67
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YACmB,IAAgB,EAChB,MAAc;QADd,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,IAAI,CAAC,UAA+B,EAAE;QAC1C,MAAM,MAAM,GAAuC,EAAE,CAAC;QAEtD,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACtC,aAAa,IAAI,CAAC,MAAM,WAAW,EACnC,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,MAAM,CACP,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,aAAa,IAAI,CAAC,MAAM,aAAa,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YACmB,IAAgB,EAChB,MAAc;QADd,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,IAAI,CAAC,UAA+B,EAAE;QAC1C,MAAM,MAAM,GAAuC,EAAE,CAAC;QAEtD,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACtC,aAAa,IAAI,CAAC,MAAM,WAAW,EACnC,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,MAAM,CACP,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,aAAa,IAAI,CAAC,MAAM,aAAa,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
package/esm/resources/query.d.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides methods for RAG (Retrieval-Augmented Generation) queries.
|
|
5
5
|
*/
|
|
6
|
-
import { HttpClient } from
|
|
7
|
-
import { QueryOptions, QueryResponse, SearchOptions, SearchResponse } from
|
|
6
|
+
import { HttpClient } from '../utils/fetch.js';
|
|
7
|
+
import { QueryOptions, QueryResponse, SearchOptions, SearchResponse } from '../types/index.js';
|
|
8
8
|
/**
|
|
9
9
|
* Query resource for RAG operations.
|
|
10
10
|
*
|
|
@@ -46,7 +46,7 @@ export declare class QueryResource {
|
|
|
46
46
|
*
|
|
47
47
|
* // With filters
|
|
48
48
|
* const response = await attrove.query('Latest updates', {
|
|
49
|
-
* integrationIds: ['
|
|
49
|
+
* integrationIds: ['int_xxx'],
|
|
50
50
|
* includeSources: true
|
|
51
51
|
* });
|
|
52
52
|
* ```
|
|
@@ -55,12 +55,13 @@ export declare class QueryResource {
|
|
|
55
55
|
/**
|
|
56
56
|
* Semantic search across the user's context.
|
|
57
57
|
*
|
|
58
|
-
* Returns raw matching messages grouped by conversation,
|
|
59
|
-
*
|
|
58
|
+
* Returns raw matching messages (grouped by conversation), plus matched meetings
|
|
59
|
+
* and calendar events, without AI summarization.
|
|
60
|
+
* Use this when you need full control over how results are displayed and processed.
|
|
60
61
|
*
|
|
61
62
|
* @param query - The search query (semantic, not keyword-based)
|
|
62
63
|
* @param options - Search options including filters, date range, etc.
|
|
63
|
-
* @returns Matching messages grouped by conversation
|
|
64
|
+
* @returns Matching messages grouped by conversation, plus matched meetings and calendar events
|
|
64
65
|
*
|
|
65
66
|
* @throws {AuthenticationError} If the API key is invalid or expired
|
|
66
67
|
* @throws {ValidationError} If the search parameters are invalid
|
|
@@ -79,6 +80,11 @@ export declare class QueryResource {
|
|
|
79
80
|
* senderDomains: ['acme.com'],
|
|
80
81
|
* includeBodyText: true
|
|
81
82
|
* });
|
|
83
|
+
*
|
|
84
|
+
* // Expand meeting and event detail fields
|
|
85
|
+
* const richResults = await attrove.search('standup action items', {
|
|
86
|
+
* expand: ['summary', 'action_items', 'description']
|
|
87
|
+
* });
|
|
82
88
|
* ```
|
|
83
89
|
*/
|
|
84
90
|
search(query: string, options?: SearchOptions): Promise<SearchResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/query.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/query.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EASf,MAAM,mBAAmB,CAAC;AAwQ3B;;;;;GAKG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM;IAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,aAAa,CAAC;IA2CzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,cAAc,CAAC;CA4C3B"}
|
package/esm/resources/query.js
CHANGED
|
@@ -3,6 +3,146 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides methods for RAG (Retrieval-Augmented Generation) queries.
|
|
5
5
|
*/
|
|
6
|
+
function normalizeOptionalId(value) {
|
|
7
|
+
return value == null ? null : String(value);
|
|
8
|
+
}
|
|
9
|
+
function normalizeRequiredId(value) {
|
|
10
|
+
return String(value);
|
|
11
|
+
}
|
|
12
|
+
function normalizeKeyMessage(message) {
|
|
13
|
+
return {
|
|
14
|
+
message_id: normalizeRequiredId(message.message_id),
|
|
15
|
+
thread_id: normalizeOptionalId(message.thread_id),
|
|
16
|
+
conversation_id: normalizeOptionalId(message.conversation_id),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function normalizeThreadMessage(message) {
|
|
20
|
+
return {
|
|
21
|
+
message_id: normalizeRequiredId(message.message_id),
|
|
22
|
+
received_at: message.received_at,
|
|
23
|
+
integration_type: normalizeIntegrationType(message.integration_type),
|
|
24
|
+
integration_type_generic: message.integration_type_generic,
|
|
25
|
+
sender_name: message.sender_name,
|
|
26
|
+
recipient_names: message.recipient_names,
|
|
27
|
+
body_text: message.body_text,
|
|
28
|
+
thread_id: normalizeOptionalId(message.thread_id),
|
|
29
|
+
thread_message_count: message.thread_message_count,
|
|
30
|
+
thread_position: message.thread_position,
|
|
31
|
+
parent_message_id: normalizeOptionalId(message.parent_message_id),
|
|
32
|
+
conversation_type: message.conversation_type,
|
|
33
|
+
conversation_id: normalizeOptionalId(message.conversation_id),
|
|
34
|
+
conversation_participants: message.conversation_participants,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const VALID_MEETING_PROVIDERS = new Set([
|
|
38
|
+
'google_meet',
|
|
39
|
+
'zoom',
|
|
40
|
+
'teams',
|
|
41
|
+
'unknown',
|
|
42
|
+
]);
|
|
43
|
+
function normalizeMeetingProvider(provider) {
|
|
44
|
+
if (VALID_MEETING_PROVIDERS.has(provider)) {
|
|
45
|
+
return provider;
|
|
46
|
+
}
|
|
47
|
+
// prettier-ignore
|
|
48
|
+
console.warn(`[Attrove SDK] Unknown meeting provider "${provider}" normalized to "unknown". SDK may need updating.`);
|
|
49
|
+
return 'unknown';
|
|
50
|
+
}
|
|
51
|
+
const VALID_INTEGRATION_TYPES = new Set([
|
|
52
|
+
'slack',
|
|
53
|
+
'gmail',
|
|
54
|
+
'outlook',
|
|
55
|
+
'google_calendar',
|
|
56
|
+
'outlook_calendar',
|
|
57
|
+
'unknown',
|
|
58
|
+
]);
|
|
59
|
+
function normalizeIntegrationType(type) {
|
|
60
|
+
if (VALID_INTEGRATION_TYPES.has(type)) {
|
|
61
|
+
return type;
|
|
62
|
+
}
|
|
63
|
+
// prettier-ignore
|
|
64
|
+
console.warn(`[Attrove SDK] Unknown integration type "${type}" normalized to "unknown". SDK may need updating.`);
|
|
65
|
+
return 'unknown';
|
|
66
|
+
}
|
|
67
|
+
function normalizeSearchMeeting(meeting) {
|
|
68
|
+
return {
|
|
69
|
+
id: meeting.id,
|
|
70
|
+
title: meeting.title,
|
|
71
|
+
meeting_code: meeting.meeting_code,
|
|
72
|
+
start_time: meeting.start_time,
|
|
73
|
+
end_time: meeting.end_time,
|
|
74
|
+
summary: meeting.summary,
|
|
75
|
+
short_summary: meeting.short_summary,
|
|
76
|
+
action_items: meeting.action_items,
|
|
77
|
+
attendees: meeting.attendees,
|
|
78
|
+
meeting_link: meeting.meeting_link,
|
|
79
|
+
has_transcript: meeting.has_transcript,
|
|
80
|
+
provider: normalizeMeetingProvider(meeting.provider),
|
|
81
|
+
event_id: meeting.event_id,
|
|
82
|
+
created_at: meeting.created_at,
|
|
83
|
+
updated_at: meeting.updated_at,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function normalizeSearchEvent(event) {
|
|
87
|
+
let attendees;
|
|
88
|
+
if (Array.isArray(event.attendees)) {
|
|
89
|
+
attendees = event.attendees;
|
|
90
|
+
}
|
|
91
|
+
else if (event.attendees !== undefined && event.attendees !== null) {
|
|
92
|
+
// prettier-ignore
|
|
93
|
+
console.warn(`[Attrove SDK] Event ${event.id} has non-array attendees (${typeof event.attendees}), ignoring.`);
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
id: event.id,
|
|
97
|
+
calendar_id: event.calendar_id,
|
|
98
|
+
title: event.title,
|
|
99
|
+
description: event.description,
|
|
100
|
+
start_time: event.start_time,
|
|
101
|
+
end_time: event.end_time,
|
|
102
|
+
location: event.location,
|
|
103
|
+
status: event.status,
|
|
104
|
+
all_day: event.all_day,
|
|
105
|
+
organizer_entity_id: event.organizer_entity_id,
|
|
106
|
+
attendee_entity_ids: event.attendee_entity_ids,
|
|
107
|
+
attendees,
|
|
108
|
+
html_link: event.html_link,
|
|
109
|
+
event_link: event.event_link,
|
|
110
|
+
created_at: event.created_at,
|
|
111
|
+
updated_at: event.updated_at,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function normalizeSearchResponse(response) {
|
|
115
|
+
const conversations = response.conversations || {};
|
|
116
|
+
if (!response.conversations) {
|
|
117
|
+
// prettier-ignore
|
|
118
|
+
console.warn('[Attrove SDK] Search response missing conversations field, defaulting to empty object.');
|
|
119
|
+
}
|
|
120
|
+
const normalizedConversations = {};
|
|
121
|
+
for (const [conversationId, conversation] of Object.entries(conversations)) {
|
|
122
|
+
const normalizedThreads = {};
|
|
123
|
+
for (const [threadId, messages] of Object.entries(conversation.threads || {})) {
|
|
124
|
+
normalizedThreads[threadId] = (messages || []).map(normalizeThreadMessage);
|
|
125
|
+
}
|
|
126
|
+
normalizedConversations[conversationId] = {
|
|
127
|
+
conversation_name: conversation.conversation_name,
|
|
128
|
+
threads: normalizedThreads,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
if (!response.key_messages) {
|
|
132
|
+
// prettier-ignore
|
|
133
|
+
console.warn('[Attrove SDK] Search response missing key_messages field, defaulting to empty array.');
|
|
134
|
+
}
|
|
135
|
+
const result = {
|
|
136
|
+
key_messages: (response.key_messages || []).map(normalizeKeyMessage),
|
|
137
|
+
conversations: normalizedConversations,
|
|
138
|
+
key_meetings: (response.key_meetings || []).map(normalizeSearchMeeting),
|
|
139
|
+
key_events: (response.key_events || []).map(normalizeSearchEvent),
|
|
140
|
+
};
|
|
141
|
+
if (response.warnings && response.warnings.length > 0) {
|
|
142
|
+
result.warnings = response.warnings;
|
|
143
|
+
}
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
6
146
|
/**
|
|
7
147
|
* Query resource for RAG operations.
|
|
8
148
|
*
|
|
@@ -45,7 +185,7 @@ export class QueryResource {
|
|
|
45
185
|
*
|
|
46
186
|
* // With filters
|
|
47
187
|
* const response = await attrove.query('Latest updates', {
|
|
48
|
-
* integrationIds: ['
|
|
188
|
+
* integrationIds: ['int_xxx'],
|
|
49
189
|
* includeSources: true
|
|
50
190
|
* });
|
|
51
191
|
* ```
|
|
@@ -68,25 +208,31 @@ export class QueryResource {
|
|
|
68
208
|
body.allow_bot_messages = options.allowBotMessages;
|
|
69
209
|
}
|
|
70
210
|
if (options.includeSources) {
|
|
71
|
-
body.expand =
|
|
211
|
+
body.expand = 'sources';
|
|
72
212
|
}
|
|
73
|
-
const
|
|
213
|
+
const config = options.idempotencyKey
|
|
214
|
+
? { headers: { "Idempotency-Key": options.idempotencyKey } }
|
|
215
|
+
: undefined;
|
|
216
|
+
const response = await this.http.post(`/v1/users/${this.userId}/query`, body, config);
|
|
74
217
|
return {
|
|
75
218
|
answer: response.answer,
|
|
76
219
|
history: response.history,
|
|
77
220
|
used_message_ids: response.used_message_ids,
|
|
221
|
+
used_meeting_ids: response.used_meeting_ids ?? [],
|
|
222
|
+
used_event_ids: response.used_event_ids ?? [],
|
|
78
223
|
sources: response.sources,
|
|
79
224
|
};
|
|
80
225
|
}
|
|
81
226
|
/**
|
|
82
227
|
* Semantic search across the user's context.
|
|
83
228
|
*
|
|
84
|
-
* Returns raw matching messages grouped by conversation,
|
|
85
|
-
*
|
|
229
|
+
* Returns raw matching messages (grouped by conversation), plus matched meetings
|
|
230
|
+
* and calendar events, without AI summarization.
|
|
231
|
+
* Use this when you need full control over how results are displayed and processed.
|
|
86
232
|
*
|
|
87
233
|
* @param query - The search query (semantic, not keyword-based)
|
|
88
234
|
* @param options - Search options including filters, date range, etc.
|
|
89
|
-
* @returns Matching messages grouped by conversation
|
|
235
|
+
* @returns Matching messages grouped by conversation, plus matched meetings and calendar events
|
|
90
236
|
*
|
|
91
237
|
* @throws {AuthenticationError} If the API key is invalid or expired
|
|
92
238
|
* @throws {ValidationError} If the search parameters are invalid
|
|
@@ -105,10 +251,16 @@ export class QueryResource {
|
|
|
105
251
|
* senderDomains: ['acme.com'],
|
|
106
252
|
* includeBodyText: true
|
|
107
253
|
* });
|
|
254
|
+
*
|
|
255
|
+
* // Expand meeting and event detail fields
|
|
256
|
+
* const richResults = await attrove.search('standup action items', {
|
|
257
|
+
* expand: ['summary', 'action_items', 'description']
|
|
258
|
+
* });
|
|
108
259
|
* ```
|
|
109
260
|
*/
|
|
110
261
|
async search(query, options = {}) {
|
|
111
262
|
const body = { query };
|
|
263
|
+
const expandFields = new Set(options.expand || []);
|
|
112
264
|
if (options.integrationIds?.length) {
|
|
113
265
|
body.integration_ids = options.integrationIds;
|
|
114
266
|
}
|
|
@@ -131,9 +283,16 @@ export class QueryResource {
|
|
|
131
283
|
body.entity_ids = options.entityIds;
|
|
132
284
|
}
|
|
133
285
|
if (options.includeBodyText) {
|
|
134
|
-
|
|
286
|
+
expandFields.add('body_text');
|
|
287
|
+
}
|
|
288
|
+
if (expandFields.size > 0) {
|
|
289
|
+
body.expand = Array.from(expandFields).join(',');
|
|
135
290
|
}
|
|
136
|
-
|
|
291
|
+
const config = options.idempotencyKey
|
|
292
|
+
? { headers: { "Idempotency-Key": options.idempotencyKey } }
|
|
293
|
+
: undefined;
|
|
294
|
+
const response = await this.http.post(`/v1/users/${this.userId}/search`, body, config);
|
|
295
|
+
return normalizeSearchResponse(response);
|
|
137
296
|
}
|
|
138
297
|
}
|
|
139
298
|
//# sourceMappingURL=query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/query.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* Provides methods for managing organization-level sync settings
|
|
5
5
|
* via the partner (server-to-server) API.
|
|
6
6
|
*/
|
|
7
|
-
import { HttpClient } from
|
|
7
|
+
import { HttpClient } from '../utils/fetch.js';
|
|
8
8
|
/**
|
|
9
9
|
* Options for updating organization sync settings.
|
|
10
10
|
*/
|
|
11
11
|
export interface UpdateSettingsOptions {
|
|
12
|
-
/** Number of days of history to fetch during initial integration sync (7-90). */
|
|
13
|
-
initialSyncDays
|
|
12
|
+
/** Number of days of history to fetch during initial integration sync (7-90). Required. */
|
|
13
|
+
initialSyncDays: number;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Response from the settings update endpoint.
|
|
@@ -34,6 +34,22 @@ export declare class AdminSettingsResource {
|
|
|
34
34
|
private readonly http;
|
|
35
35
|
private readonly clientId;
|
|
36
36
|
constructor(http: HttpClient, clientId: string);
|
|
37
|
+
/**
|
|
38
|
+
* Get current organization sync settings.
|
|
39
|
+
*
|
|
40
|
+
* @returns Current settings
|
|
41
|
+
*
|
|
42
|
+
* @throws {AuthenticationError} If partner credentials are invalid
|
|
43
|
+
* @throws {NetworkError} If unable to reach the API
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* const admin = Attrove.admin({ clientId, clientSecret });
|
|
48
|
+
* const settings = await admin.settings.get();
|
|
49
|
+
* console.log(settings.initialSyncDays); // 30 or null
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
get(): Promise<SettingsResponse>;
|
|
37
53
|
/**
|
|
38
54
|
* Update organization sync settings.
|
|
39
55
|
*
|
|
@@ -44,15 +60,13 @@ export declare class AdminSettingsResource {
|
|
|
44
60
|
* @param options - Settings to update
|
|
45
61
|
* @returns Current settings after the update
|
|
46
62
|
*
|
|
47
|
-
* @throws {ValidationError} If
|
|
63
|
+
* @throws {ValidationError} If initialSyncDays is out of range (7-90) or not an integer
|
|
48
64
|
* @throws {AuthenticationError} If partner credentials are invalid
|
|
49
65
|
* @throws {NetworkError} If unable to reach the API
|
|
50
66
|
*
|
|
51
67
|
* @example
|
|
52
68
|
* ```ts
|
|
53
69
|
* const admin = Attrove.admin({ clientId, clientSecret });
|
|
54
|
-
*
|
|
55
|
-
* // Set initial sync depth to 14 days
|
|
56
70
|
* const settings = await admin.settings.update({ initialSyncDays: 14 });
|
|
57
71
|
* console.log(settings.initialSyncDays); // 14
|
|
58
72
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/settings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/settings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2FAA2F;IAC3F,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM;IAGnC;;;;;;;;;;;;;;OAcG;IACG,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAUtC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwBxE"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Provides methods for managing organization-level sync settings
|
|
5
5
|
* via the partner (server-to-server) API.
|
|
6
6
|
*/
|
|
7
|
-
import { ValidationError } from
|
|
7
|
+
import { ValidationError } from '../errors/index.js';
|
|
8
8
|
/** Valid range for initialSyncDays. Must stay in sync with MIN/MAX_INITIAL_SYNC_DAYS in @attrove/shared-types. */
|
|
9
9
|
const MIN_SYNC_DAYS = 7;
|
|
10
10
|
const MAX_SYNC_DAYS = 90;
|
|
@@ -24,6 +24,27 @@ export class AdminSettingsResource {
|
|
|
24
24
|
this.http = http;
|
|
25
25
|
this.clientId = clientId;
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Get current organization sync settings.
|
|
29
|
+
*
|
|
30
|
+
* @returns Current settings
|
|
31
|
+
*
|
|
32
|
+
* @throws {AuthenticationError} If partner credentials are invalid
|
|
33
|
+
* @throws {NetworkError} If unable to reach the API
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* const admin = Attrove.admin({ clientId, clientSecret });
|
|
38
|
+
* const settings = await admin.settings.get();
|
|
39
|
+
* console.log(settings.initialSyncDays); // 30 or null
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
async get() {
|
|
43
|
+
const raw = await this.http.get('/v1/users/settings');
|
|
44
|
+
return {
|
|
45
|
+
initialSyncDays: raw.initial_sync_days,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
27
48
|
/**
|
|
28
49
|
* Update organization sync settings.
|
|
29
50
|
*
|
|
@@ -34,32 +55,27 @@ export class AdminSettingsResource {
|
|
|
34
55
|
* @param options - Settings to update
|
|
35
56
|
* @returns Current settings after the update
|
|
36
57
|
*
|
|
37
|
-
* @throws {ValidationError} If
|
|
58
|
+
* @throws {ValidationError} If initialSyncDays is out of range (7-90) or not an integer
|
|
38
59
|
* @throws {AuthenticationError} If partner credentials are invalid
|
|
39
60
|
* @throws {NetworkError} If unable to reach the API
|
|
40
61
|
*
|
|
41
62
|
* @example
|
|
42
63
|
* ```ts
|
|
43
64
|
* const admin = Attrove.admin({ clientId, clientSecret });
|
|
44
|
-
*
|
|
45
|
-
* // Set initial sync depth to 14 days
|
|
46
65
|
* const settings = await admin.settings.update({ initialSyncDays: 14 });
|
|
47
66
|
* console.log(settings.initialSyncDays); // 14
|
|
48
67
|
* ```
|
|
49
68
|
*/
|
|
50
69
|
async update(options) {
|
|
51
|
-
if (options.initialSyncDays
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
throw new ValidationError(`initialSyncDays must be an integer between ${MIN_SYNC_DAYS} and ${MAX_SYNC_DAYS}, got ${options.initialSyncDays}`);
|
|
56
|
-
}
|
|
70
|
+
if (!Number.isInteger(options.initialSyncDays) ||
|
|
71
|
+
options.initialSyncDays < MIN_SYNC_DAYS ||
|
|
72
|
+
options.initialSyncDays > MAX_SYNC_DAYS) {
|
|
73
|
+
throw new ValidationError(`initialSyncDays must be an integer between ${MIN_SYNC_DAYS} and ${MAX_SYNC_DAYS}, got ${options.initialSyncDays}`);
|
|
57
74
|
}
|
|
58
|
-
const body = {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const raw = await this.http.patch("/v1/users/settings", body);
|
|
75
|
+
const body = {
|
|
76
|
+
initial_sync_days: options.initialSyncDays,
|
|
77
|
+
};
|
|
78
|
+
const raw = await this.http.patch('/v1/users/settings', body);
|
|
63
79
|
return {
|
|
64
80
|
initialSyncDays: raw.initial_sync_days,
|
|
65
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/settings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,kHAAkH;AAClH,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,EAAE,CAAC;AAkBzB;;;;;;;;;;GAUG;AACH,MAAM,OAAO,qBAAqB;IAChC,YACmB,IAAgB,EAChB,QAAgB;QADhB,SAAI,GAAJ,IAAI,CAAY;QAChB,aAAQ,GAAR,QAAQ,CAAQ;IAChC,CAAC;IAEJ
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../../packages/sdk/src/resources/settings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,kHAAkH;AAClH,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,EAAE,CAAC;AAkBzB;;;;;;;;;;GAUG;AACH,MAAM,OAAO,qBAAqB;IAChC,YACmB,IAAgB,EAChB,QAAgB;QADhB,SAAI,GAAJ,IAAI,CAAY;QAChB,aAAQ,GAAR,QAAQ,CAAQ;IAChC,CAAC;IAEJ;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,GAAG;QACP,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7B,oBAAoB,CACrB,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,GAAG,CAAC,iBAAiB;SACvC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC;YAC1C,OAAO,CAAC,eAAe,GAAG,aAAa;YACvC,OAAO,CAAC,eAAe,GAAG,aAAa,EACvC,CAAC;YACD,MAAM,IAAI,eAAe,CACvB,8CAA8C,aAAa,QAAQ,aAAa,SAAS,OAAO,CAAC,eAAe,EAAE,CACnH,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAA4B;YACpC,iBAAiB,EAAE,OAAO,CAAC,eAAe;SAC3C,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAC/B,oBAAoB,EACpB,IAAI,CACL,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,GAAG,CAAC,iBAAiB;SACvC,CAAC;IACJ,CAAC;CACF"}
|