@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.
@@ -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.12";
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.12"; // auto-synced from package.json during release
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;IAwCpE;;;;;;;;;;;;;;;OAeG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGxC"}
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"}
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Provides methods for RAG (Retrieval-Augmented Generation) queries.
5
5
  */
6
- import { HttpClient } from "../utils/fetch.js";
7
- import { QueryOptions, QueryResponse, SearchOptions, SearchResponse } from "../types/index.js";
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: ['550e8400-e29b-41d4-a716-446655440000'],
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, without AI summarization.
59
- * Use this when you need full control over how results are displayed.
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,EAEf,MAAM,mBAAmB,CAAC;AAY3B;;;;;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;IAoCzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,cAAc,CAAC;CAiC3B"}
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"}
@@ -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: ['550e8400-e29b-41d4-a716-446655440000'],
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 = "sources";
211
+ body.expand = 'sources';
72
212
  }
73
- const response = await this.http.post(`/v1/users/${this.userId}/query`, body);
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, without AI summarization.
85
- * Use this when you need full control over how results are displayed.
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
- body.expand = "body_text";
286
+ expandFields.add('body_text');
287
+ }
288
+ if (expandFields.size > 0) {
289
+ body.expand = Array.from(expandFields).join(',');
135
290
  }
136
- return this.http.post(`/v1/users/${this.userId}/search`, body);
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;AAqBH;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACxB,YACmB,IAAgB,EAChB,MAAc;QADd,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,KAAK,CACT,MAAc,EACd,UAAwB,EAAE;QAE1B,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,MAAM;YACb,eAAe,EACb,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;SACvE,CAAC;QAEF,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACnC,aAAa,IAAI,CAAC,MAAM,QAAQ,EAChC,IAAI,CACL,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,UAAyB,EAAE;QAE3B,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,CAAC;QAEhD,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,aAAa,IAAI,CAAC,MAAM,SAAS,EACjC,IAAI,CACL,CAAC;IACJ,CAAC;CACF"}
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 "../utils/fetch.js";
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?: number;
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 the options are invalid (e.g., initialSyncDays out of range)
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,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;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;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA2BxE"}
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 "../errors/index.js";
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 the options are invalid (e.g., initialSyncDays out of range)
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 !== undefined) {
52
- if (!Number.isInteger(options.initialSyncDays) ||
53
- options.initialSyncDays < MIN_SYNC_DAYS ||
54
- options.initialSyncDays > MAX_SYNC_DAYS) {
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 = { client_id: this.clientId };
59
- if (options.initialSyncDays !== undefined) {
60
- body.initial_sync_days = options.initialSyncDays;
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;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1C,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC;gBAC1C,OAAO,CAAC,eAAe,GAAG,aAAa;gBACvC,OAAO,CAAC,eAAe,GAAG,aAAa,EACvC,CAAC;gBACD,MAAM,IAAI,eAAe,CACvB,8CAA8C,aAAa,QAAQ,aAAa,SAAS,OAAO,CAAC,eAAe,EAAE,CACnH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAA4B,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;QACnD,CAAC;QAED,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"}
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"}