attio-mcp 1.1.1 → 1.1.3

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.
Files changed (84) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +3 -2
  3. package/dist/api/client-context.d.ts.map +1 -1
  4. package/dist/api/client-context.js +39 -1
  5. package/dist/api/client-context.js.map +1 -1
  6. package/dist/api/operations/search.d.ts +5 -2
  7. package/dist/api/operations/search.d.ts.map +1 -1
  8. package/dist/api/operations/search.js +469 -9
  9. package/dist/api/operations/search.js.map +1 -1
  10. package/dist/handlers/tool-configs/openai/index.d.ts +2 -2
  11. package/dist/handlers/tool-configs/openai/index.d.ts.map +1 -1
  12. package/dist/handlers/tool-configs/openai/index.js +13 -2
  13. package/dist/handlers/tool-configs/openai/index.js.map +1 -1
  14. package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts.map +1 -1
  15. package/dist/handlers/tool-configs/universal/core/crud-operations.js +22 -3
  16. package/dist/handlers/tool-configs/universal/core/crud-operations.js.map +1 -1
  17. package/dist/handlers/tool-configs/universal/index.d.ts +26 -2
  18. package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
  19. package/dist/handlers/tool-configs/universal/index.js +10 -1
  20. package/dist/handlers/tool-configs/universal/index.js.map +1 -1
  21. package/dist/handlers/tool-configs/universal/smithery-diagnostics.d.ts +37 -0
  22. package/dist/handlers/tool-configs/universal/smithery-diagnostics.d.ts.map +1 -0
  23. package/dist/handlers/tool-configs/universal/smithery-diagnostics.js +103 -0
  24. package/dist/handlers/tool-configs/universal/smithery-diagnostics.js.map +1 -0
  25. package/dist/handlers/tools/registry.d.ts +26 -2
  26. package/dist/handlers/tools/registry.d.ts.map +1 -1
  27. package/dist/objects/deals/index.d.ts +1 -0
  28. package/dist/objects/deals/index.d.ts.map +1 -1
  29. package/dist/objects/deals/index.js +2 -0
  30. package/dist/objects/deals/index.js.map +1 -1
  31. package/dist/objects/deals/search.d.ts +16 -0
  32. package/dist/objects/deals/search.d.ts.map +1 -0
  33. package/dist/objects/deals/search.js +59 -0
  34. package/dist/objects/deals/search.js.map +1 -0
  35. package/dist/server/createServer.d.ts.map +1 -1
  36. package/dist/server/createServer.js +27 -4
  37. package/dist/server/createServer.js.map +1 -1
  38. package/dist/services/CachingService.d.ts +57 -0
  39. package/dist/services/CachingService.d.ts.map +1 -1
  40. package/dist/services/CachingService.js +112 -0
  41. package/dist/services/CachingService.js.map +1 -1
  42. package/dist/services/UniversalSearchService.d.ts +0 -12
  43. package/dist/services/UniversalSearchService.d.ts.map +1 -1
  44. package/dist/services/UniversalSearchService.js +19 -133
  45. package/dist/services/UniversalSearchService.js.map +1 -1
  46. package/dist/services/search-strategies/CompanySearchStrategy.d.ts.map +1 -1
  47. package/dist/services/search-strategies/CompanySearchStrategy.js +13 -11
  48. package/dist/services/search-strategies/CompanySearchStrategy.js.map +1 -1
  49. package/dist/services/search-strategies/DealSearchStrategy.d.ts +38 -0
  50. package/dist/services/search-strategies/DealSearchStrategy.d.ts.map +1 -0
  51. package/dist/services/search-strategies/DealSearchStrategy.js +119 -0
  52. package/dist/services/search-strategies/DealSearchStrategy.js.map +1 -0
  53. package/dist/services/search-strategies/NoteSearchStrategy.d.ts +62 -0
  54. package/dist/services/search-strategies/NoteSearchStrategy.d.ts.map +1 -0
  55. package/dist/services/search-strategies/NoteSearchStrategy.js +224 -0
  56. package/dist/services/search-strategies/NoteSearchStrategy.js.map +1 -0
  57. package/dist/services/search-strategies/PeopleSearchStrategy.d.ts.map +1 -1
  58. package/dist/services/search-strategies/PeopleSearchStrategy.js +13 -15
  59. package/dist/services/search-strategies/PeopleSearchStrategy.js.map +1 -1
  60. package/dist/services/search-strategies/index.d.ts +2 -0
  61. package/dist/services/search-strategies/index.d.ts.map +1 -1
  62. package/dist/services/search-strategies/index.js +2 -0
  63. package/dist/services/search-strategies/index.js.map +1 -1
  64. package/dist/services/search-strategies/interfaces.d.ts +6 -0
  65. package/dist/services/search-strategies/interfaces.d.ts.map +1 -1
  66. package/dist/services/search-utilities/SearchScorer.d.ts +4 -0
  67. package/dist/services/search-utilities/SearchScorer.d.ts.map +1 -0
  68. package/dist/services/search-utilities/SearchScorer.js +243 -0
  69. package/dist/services/search-utilities/SearchScorer.js.map +1 -0
  70. package/dist/services/search-utilities/SearchUtilities.d.ts +5 -0
  71. package/dist/services/search-utilities/SearchUtilities.d.ts.map +1 -1
  72. package/dist/services/search-utilities/SearchUtilities.js +20 -0
  73. package/dist/services/search-utilities/SearchUtilities.js.map +1 -1
  74. package/dist/smithery.d.ts +1 -1
  75. package/dist/smithery.d.ts.map +1 -1
  76. package/dist/smithery.js +45 -11
  77. package/dist/smithery.js.map +1 -1
  78. package/dist/utils/client-resolver.d.ts.map +1 -1
  79. package/dist/utils/client-resolver.js +30 -2
  80. package/dist/utils/client-resolver.js.map +1 -1
  81. package/dist/utils/mcp-discovery.d.ts.map +1 -1
  82. package/dist/utils/mcp-discovery.js +19 -1
  83. package/dist/utils/mcp-discovery.js.map +1 -1
  84. package/package.json +5 -1
@@ -34,16 +34,29 @@ export const configSchema = z.object({
34
34
  */
35
35
  export function createServer(context) {
36
36
  const startTime = Date.now();
37
- createScopedLogger('mcp.init', 'createServer').info('Server creation started');
37
+ const logger = createScopedLogger('mcp.init', 'createServer');
38
+ logger.info('Server creation started');
38
39
  // For backward compatibility: if no context provided (STDIO mode),
39
40
  // create one that reads from environment variables
40
41
  const ctx = context || {
41
42
  getApiKey: () => process.env.ATTIO_API_KEY,
42
43
  getWorkspaceId: () => process.env.ATTIO_WORKSPACE_ID,
43
44
  };
45
+ // Debug logging for Issue #891: Track context setup
46
+ if (process.env.MCP_LOG_LEVEL === 'DEBUG') {
47
+ const typedContext = ctx;
48
+ console.error('[createServer:init] Context configuration:', {
49
+ hasContext: Boolean(context),
50
+ contextKeys: context ? Object.keys(context) : [],
51
+ hasGetApiKey: typeof typedContext.getApiKey === 'function',
52
+ hasGetWorkspaceId: typeof typedContext.getWorkspaceId === 'function',
53
+ mode: context ? 'smithery' : 'stdio',
54
+ timestamp: new Date().toISOString(),
55
+ });
56
+ }
44
57
  // Set the global context so lazy client can access it
45
58
  setGlobalContext(ctx);
46
- createScopedLogger('mcp.init', 'createServer').info('Global context set');
59
+ logger.info('Global context set');
47
60
  // Create MCP server with proper capabilities declaration
48
61
  // Note: No API key validation here - it's checked when tools are invoked
49
62
  const mcpServer = new Server({
@@ -61,14 +74,24 @@ export function createServer(context) {
61
74
  });
62
75
  // Register all handlers with the context
63
76
  // The handlers will use the context to get API key when needed
64
- createScopedLogger('mcp.init', 'createServer').info('Registering handlers');
77
+ logger.info('Registering handlers');
65
78
  registerResourceHandlers(mcpServer, ctx);
66
79
  registerToolHandlers(mcpServer, ctx);
67
80
  registerPromptHandlers(mcpServer, ctx);
68
81
  const duration = Date.now() - startTime;
69
- createScopedLogger('mcp.init', 'createServer').info('Server created', {
82
+ logger.info('Server created', {
70
83
  durationMs: duration,
71
84
  });
85
+ // Final debug summary for Issue #891
86
+ if (process.env.MCP_LOG_LEVEL === 'DEBUG') {
87
+ console.error('[createServer:complete] Server initialization complete:', {
88
+ duration: `${duration}ms`,
89
+ serverVersion: '1.1.2',
90
+ capabilities: ['resources', 'tools', 'prompts'],
91
+ hasContext: Boolean(context),
92
+ timestamp: new Date().toISOString(),
93
+ });
94
+ }
72
95
  return mcpServer;
73
96
  }
74
97
  //# sourceMappingURL=createServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createServer.js","sourceRoot":"","sources":["../../src/server/createServer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAWzD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IACrE,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,oBAAoB,CAAC;IACjC,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACrE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAuB;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,IAAI,CACjD,yBAAyB,CAC1B,CAAC;IAEF,mEAAmE;IACnE,mDAAmD;IACnD,MAAM,GAAG,GAAkB,OAAO,IAAI;QACpC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;QAC1C,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB;KACrD,CAAC;IAEF,sDAAsD;IACtD,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAE1E,yDAAyD;IACzD,yEAAyE;IACzE,MAAM,SAAS,GAAG,IAAI,MAAM,CAC1B;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,EAAE;aACR;SACF;KACF,CACF,CAAC;IAEF,yCAAyC;IACzC,+DAA+D;IAC/D,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC5E,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACzC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACrC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;QACpE,UAAU,EAAE,QAAQ;KACrB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"createServer.js","sourceRoot":"","sources":["../../src/server/createServer.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,11 @@ interface CacheStats {
16
16
  misses: number;
17
17
  entries: number;
18
18
  };
19
+ notes: {
20
+ hits: number;
21
+ misses: number;
22
+ entries: number;
23
+ };
19
24
  attributes: {
20
25
  hits: number;
21
26
  misses: number;
@@ -32,6 +37,7 @@ interface CacheStats {
32
37
  */
33
38
  export declare class CachingService {
34
39
  private static tasksCache;
40
+ private static notesCache;
35
41
  private static attributesCache;
36
42
  private static notFoundCache;
37
43
  private static stats;
@@ -129,6 +135,10 @@ export declare class CachingService {
129
135
  * Clear all 404 cache entries
130
136
  */
131
137
  static clearNotFoundCache(): void;
138
+ /**
139
+ * Clear all notes cache entries
140
+ */
141
+ static clearNotesCache(): void;
132
142
  /**
133
143
  * Clear all cache entries
134
144
  */
@@ -172,8 +182,11 @@ export declare class CachingService {
172
182
  totalEntries: number;
173
183
  tasksCacheSize: number;
174
184
  tasksCacheEntries: string[];
185
+ notesCacheSize: number;
186
+ notesCacheEntries: string[];
175
187
  cacheEfficiency: {
176
188
  tasks: number;
189
+ notes: number;
177
190
  attributes: number;
178
191
  notFound: number;
179
192
  overall: number;
@@ -196,6 +209,50 @@ export declare class CachingService {
196
209
  data: AttioRecord[];
197
210
  fromCache: boolean;
198
211
  }>;
212
+ /**
213
+ * Get cached notes with automatic TTL management
214
+ */
215
+ static getCachedNotes(cacheKey: string, ttl?: number): AttioRecord[] | undefined;
216
+ /**
217
+ * Set cached notes with timestamp
218
+ */
219
+ static setCachedNotes(cacheKey: string, data: AttioRecord[]): void;
220
+ /**
221
+ * Generate cache key for notes list
222
+ * Includes parent filter context to prevent cache collisions between different parent records.
223
+ *
224
+ * IMPORTANT: Unlike tasks (which use static 'tasks_list_all' key), notes MUST use
225
+ * context-specific keys because Attio API requires parent filters to return any notes.
226
+ * Without parent context in the cache key, we'd incorrectly return cached notes
227
+ * from one parent when searching another parent's notes.
228
+ *
229
+ * Examples:
230
+ * - Workspace-wide: 'notes:list:all:all'
231
+ * - Company-specific: 'notes:list:companies:abc-123'
232
+ * - Deal-specific: 'notes:list:deals:xyz-789'
233
+ */
234
+ static getNotesListCacheKey(filters?: Record<string, unknown>): string;
235
+ /**
236
+ * Clear expired notes cache entries
237
+ */
238
+ static clearExpiredNotesCache(ttl?: number): void;
239
+ /**
240
+ * Manage note caching with automatic data loading
241
+ *
242
+ * This method encapsulates the common pattern of:
243
+ * 1. Check cache for valid data
244
+ * 2. Load data if cache miss
245
+ * 3. Cache the loaded data
246
+ *
247
+ * @param dataLoader - Function to load data when cache miss occurs
248
+ * @param cacheKey - Cache key (default: standard notes list key)
249
+ * @param ttl - Time to live in milliseconds
250
+ * @returns Cached or freshly loaded data
251
+ */
252
+ static getOrLoadNotes(dataLoader: () => Promise<AttioRecord[]>, cacheKey?: string, ttl?: number): Promise<{
253
+ data: AttioRecord[];
254
+ fromCache: boolean;
255
+ }>;
199
256
  }
200
257
  export {};
201
258
  //# sourceMappingURL=CachingService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CachingService.d.ts","sourceRoot":"","sources":["../../src/services/CachingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CachingService.d.ts","sourceRoot":"","sources":["../../src/services/CachingService.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ import { DEFAULT_TASKS_CACHE_TTL, DEFAULT_404_CACHE_TTL, DEFAULT_ATTRIBUTES_CACH
14
14
  export class CachingService {
15
15
  // Simple in-memory cache for tasks pagination performance optimization
16
16
  static tasksCache = new Map();
17
+ // Simple in-memory cache for notes pagination performance optimization
18
+ static notesCache = new Map();
17
19
  // Attribute discovery cache for performance optimization
18
20
  static attributesCache = new Map();
19
21
  // 404 response cache to prevent repeated failed lookups
@@ -21,6 +23,7 @@ export class CachingService {
21
23
  // Cache statistics for monitoring
22
24
  static stats = {
23
25
  tasks: { hits: 0, misses: 0, entries: 0 },
26
+ notes: { hits: 0, misses: 0, entries: 0 },
24
27
  attributes: { hits: 0, misses: 0, entries: 0 },
25
28
  notFound: { hits: 0, misses: 0, entries: 0 },
26
29
  };
@@ -226,16 +229,25 @@ export class CachingService {
226
229
  this.notFoundCache.clear();
227
230
  this.stats.notFound.entries = 0;
228
231
  }
232
+ /**
233
+ * Clear all notes cache entries
234
+ */
235
+ static clearNotesCache() {
236
+ this.notesCache.clear();
237
+ this.stats.notes = { hits: 0, misses: 0, entries: 0 };
238
+ }
229
239
  /**
230
240
  * Clear all cache entries
231
241
  */
232
242
  static clearAllCache() {
233
243
  this.clearTasksCache();
244
+ this.clearNotesCache();
234
245
  this.clearAttributesCache();
235
246
  this.clearNotFoundCache();
236
247
  // Reset stats
237
248
  this.stats = {
238
249
  tasks: { hits: 0, misses: 0, entries: 0 },
250
+ notes: { hits: 0, misses: 0, entries: 0 },
239
251
  attributes: { hits: 0, misses: 0, entries: 0 },
240
252
  notFound: { hits: 0, misses: 0, entries: 0 },
241
253
  };
@@ -362,24 +374,33 @@ export class CachingService {
362
374
  */
363
375
  static getCacheStats() {
364
376
  const totalHits = this.stats.tasks.hits +
377
+ this.stats.notes.hits +
365
378
  this.stats.attributes.hits +
366
379
  this.stats.notFound.hits;
367
380
  const totalRequests = totalHits +
368
381
  this.stats.tasks.misses +
382
+ this.stats.notes.misses +
369
383
  this.stats.attributes.misses +
370
384
  this.stats.notFound.misses;
371
385
  return {
372
386
  ...this.stats,
373
387
  totalEntries: this.tasksCache.size +
388
+ this.notesCache.size +
374
389
  this.attributesCache.size +
375
390
  this.notFoundCache.size,
376
391
  tasksCacheSize: this.tasksCache.size,
377
392
  tasksCacheEntries: Array.from(this.tasksCache.keys()),
393
+ notesCacheSize: this.notesCache.size,
394
+ notesCacheEntries: Array.from(this.notesCache.keys()),
378
395
  cacheEfficiency: {
379
396
  tasks: this.stats.tasks.hits + this.stats.tasks.misses > 0
380
397
  ? this.stats.tasks.hits /
381
398
  (this.stats.tasks.hits + this.stats.tasks.misses)
382
399
  : 0,
400
+ notes: this.stats.notes.hits + this.stats.notes.misses > 0
401
+ ? this.stats.notes.hits /
402
+ (this.stats.notes.hits + this.stats.notes.misses)
403
+ : 0,
383
404
  attributes: this.stats.attributes.hits + this.stats.attributes.misses > 0
384
405
  ? this.stats.attributes.hits /
385
406
  (this.stats.attributes.hits + this.stats.attributes.misses)
@@ -417,5 +438,96 @@ export class CachingService {
417
438
  this.setCachedTasks(cacheKey, freshData);
418
439
  return { data: freshData, fromCache: false };
419
440
  }
441
+ /**
442
+ * Get cached notes with automatic TTL management
443
+ */
444
+ static getCachedNotes(cacheKey, ttl = DEFAULT_TASKS_CACHE_TTL) {
445
+ const entry = this.notesCache.get(cacheKey);
446
+ if (!entry) {
447
+ this.stats.notes.misses++;
448
+ return undefined;
449
+ }
450
+ const now = Date.now();
451
+ if (now - entry.timestamp > ttl) {
452
+ this.notesCache.delete(cacheKey);
453
+ this.stats.notes.misses++;
454
+ return undefined;
455
+ }
456
+ this.stats.notes.hits++;
457
+ return entry.data;
458
+ }
459
+ /**
460
+ * Set cached notes with timestamp
461
+ */
462
+ static setCachedNotes(cacheKey, data) {
463
+ // Enforce maximum cache size
464
+ if (this.notesCache.size >= MAX_CACHE_ENTRIES) {
465
+ const firstKey = this.notesCache.keys().next().value;
466
+ if (firstKey) {
467
+ this.notesCache.delete(firstKey);
468
+ }
469
+ }
470
+ this.notesCache.set(cacheKey, {
471
+ data,
472
+ timestamp: Date.now(),
473
+ });
474
+ this.stats.notes.entries = this.notesCache.size;
475
+ }
476
+ /**
477
+ * Generate cache key for notes list
478
+ * Includes parent filter context to prevent cache collisions between different parent records.
479
+ *
480
+ * IMPORTANT: Unlike tasks (which use static 'tasks_list_all' key), notes MUST use
481
+ * context-specific keys because Attio API requires parent filters to return any notes.
482
+ * Without parent context in the cache key, we'd incorrectly return cached notes
483
+ * from one parent when searching another parent's notes.
484
+ *
485
+ * Examples:
486
+ * - Workspace-wide: 'notes:list:all:all'
487
+ * - Company-specific: 'notes:list:companies:abc-123'
488
+ * - Deal-specific: 'notes:list:deals:xyz-789'
489
+ */
490
+ static getNotesListCacheKey(filters) {
491
+ const parentObject = filters?.parent_object || 'all';
492
+ const parentRecordId = filters?.parent_record_id || 'all';
493
+ return `notes:list:${parentObject}:${parentRecordId}`;
494
+ }
495
+ /**
496
+ * Clear expired notes cache entries
497
+ */
498
+ static clearExpiredNotesCache(ttl = DEFAULT_TASKS_CACHE_TTL) {
499
+ const now = Date.now();
500
+ for (const [key, entry] of this.notesCache.entries()) {
501
+ if (now - entry.timestamp > ttl) {
502
+ this.notesCache.delete(key);
503
+ }
504
+ }
505
+ this.stats.notes.entries = this.notesCache.size;
506
+ }
507
+ /**
508
+ * Manage note caching with automatic data loading
509
+ *
510
+ * This method encapsulates the common pattern of:
511
+ * 1. Check cache for valid data
512
+ * 2. Load data if cache miss
513
+ * 3. Cache the loaded data
514
+ *
515
+ * @param dataLoader - Function to load data when cache miss occurs
516
+ * @param cacheKey - Cache key (default: standard notes list key)
517
+ * @param ttl - Time to live in milliseconds
518
+ * @returns Cached or freshly loaded data
519
+ */
520
+ static async getOrLoadNotes(dataLoader, cacheKey = this.getNotesListCacheKey(), ttl = DEFAULT_TASKS_CACHE_TTL) {
521
+ // Check cache first
522
+ const cachedNotes = this.getCachedNotes(cacheKey, ttl);
523
+ if (cachedNotes) {
524
+ return { data: cachedNotes, fromCache: true };
525
+ }
526
+ // Load fresh data
527
+ const freshData = await dataLoader();
528
+ // Cache the fresh data
529
+ this.setCachedNotes(cacheKey, freshData);
530
+ return { data: freshData, fromCache: false };
531
+ }
420
532
  }
421
533
  //# sourceMappingURL=CachingService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CachingService.js","sourceRoot":"","sources":["../../src/services/CachingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CachingService.js","sourceRoot":"","sources":["../../src/services/CachingService.ts"],"names":[],"mappings":"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"}
@@ -29,18 +29,6 @@ export declare class UniversalSearchService {
29
29
  * Search records using object records API with filter support
30
30
  */
31
31
  private static searchRecords_ObjectType;
32
- /**
33
- * Search deals using query endpoint with filtering support
34
- */
35
- private static searchDeals;
36
- /**
37
- * Query deal records using the proper Attio API endpoint
38
- */
39
- private static queryDealRecords;
40
- /**
41
- * Search notes with filtering and pagination
42
- */
43
- private static searchNotes;
44
32
  static searchByRelationship(sourceResourceType: UniversalResourceType, targetResourceType: UniversalResourceType, targetRecordId: string, limit?: number, offset?: number): Promise<AttioRecord[]>;
45
33
  static searchByTimeframe(resourceType: UniversalResourceType, timeframeConfig: TimeframeQuery, limit?: number, offset?: number): Promise<AttioRecord[]>;
46
34
  static searchByContent(resourceType: UniversalResourceType, query: string, searchFields?: string[], useOrLogic?: boolean, limit?: number, offset?: number): Promise<AttioRecord[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalSearchService.d.ts","sourceRoot":"","sources":["../../src/services/UniversalSearchService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,qBAAqB,EAItB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA8DhD,OAAO,EAAqB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAwB9E;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqD;IAE9E;;OAEG;mBACkB,oBAAoB;IA2DzC;;OAEG;WACU,aAAa,CACxB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,WAAW,EAAE,CAAC;IAkLzB;;OAEG;mBACkB,2BAA2B;IAqJhD;;OAEG;mBACkB,wBAAwB;IAwB7C;;OAEG;mBACkB,WAAW;IAQhC;;OAEG;mBACkB,gBAAgB;IAyFrC;;OAEG;mBACkB,WAAW;WAsFnB,oBAAoB,CAC/B,kBAAkB,EAAE,qBAAqB,EACzC,kBAAkB,EAAE,qBAAqB,EACzC,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;WA4DZ,iBAAiB,CAC5B,YAAY,EAAE,qBAAqB,EACnC,eAAe,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;WAiDZ,eAAe,CAC1B,YAAY,EAAE,qBAAqB,EACnC,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,MAAM,EAAO,EAC3B,UAAU,GAAE,OAAc,EAC1B,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;WAiEZ,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;WAIzC,cAAc,CACzB,aAAa,EAAE,qBAAqB,GACnC,OAAO,CAAC,MAAM,CAAC;IAWlB,MAAM,CAAC,yBAAyB,CAC9B,aAAa,EAAE,qBAAqB,GACnC,OAAO;IAeV,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO;CAc1E"}
1
+ {"version":3,"file":"UniversalSearchService.d.ts","sourceRoot":"","sources":["../../src/services/UniversalSearchService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,qBAAqB,EAItB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA+DhD,OAAO,EAAqB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AA6B9E;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqD;IAE9E;;OAEG;mBACkB,oBAAoB;IAiFzC;;OAEG;WACU,aAAa,CACxB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,WAAW,EAAE,CAAC;IAkLzB;;OAEG;mBACkB,2BAA2B;IAwIhD;;OAEG;mBACkB,wBAAwB;WAyBhC,oBAAoB,CAC/B,kBAAkB,EAAE,qBAAqB,EACzC,kBAAkB,EAAE,qBAAqB,EACzC,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;WA4DZ,iBAAiB,CAC5B,YAAY,EAAE,qBAAqB,EACnC,eAAe,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;WAiDZ,eAAe,CAC1B,YAAY,EAAE,qBAAqB,EACnC,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,MAAM,EAAO,EAC3B,UAAU,GAAE,OAAc,EAC1B,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;WAiEZ,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;WAIzC,cAAc,CACzB,aAAa,EAAE,qBAAqB,GACnC,OAAO,CAAC,MAAM,CAAC;IAWlB,MAAM,CAAC,yBAAyB,CAC9B,aAAa,EAAE,qBAAqB,GACnC,OAAO;IAeV,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO;CAc1E"}
@@ -17,10 +17,11 @@ import { AuthenticationError, AuthorizationError, NetworkError, RateLimitError,
17
17
  // Import resource-specific search functions
18
18
  import { advancedSearchCompanies } from '../objects/companies/index.js';
19
19
  import { advancedSearchPeople } from '../objects/people/index.js';
20
+ import { advancedSearchDeals } from '../objects/deals/index.js';
20
21
  import { searchLists } from '../objects/lists.js';
21
22
  import { listObjectRecords } from '../objects/records/index.js';
22
23
  import { listTasks } from '../objects/tasks.js';
23
- import { listNotes, normalizeNoteResponse } from '../objects/notes.js';
24
+ import { listNotes } from '../objects/notes.js';
24
25
  // Import guardrails
25
26
  // Import Attio client for deal queries
26
27
  import { getLazyAttioClient } from '../api/lazy-client.js';
@@ -41,12 +42,13 @@ import { createRelationshipQuery, createTimeframeQuery, createContentSearchQuery
41
42
  // Import timeframe utility functions for Issue #475
42
43
  import { convertDateParamsToTimeframeQuery } from '../utils/filters/timeframe-utils.js';
43
44
  // Import search strategies
44
- import { CompanySearchStrategy, PeopleSearchStrategy, TaskSearchStrategy, ListSearchStrategy, } from './search-strategies/index.js';
45
+ import { CompanySearchStrategy, PeopleSearchStrategy, DealSearchStrategy, TaskSearchStrategy, ListSearchStrategy, NoteSearchStrategy, } from './search-strategies/index.js';
45
46
  import { SearchUtilities } from './search-utilities/SearchUtilities.js';
46
47
  import { ensureFunctionAvailability } from './search-utilities/FunctionValidator.js';
47
48
  // Dynamic imports for better error handling using extracted utility pattern
48
49
  const ensureAdvancedSearchCompanies = () => ensureFunctionAvailability(advancedSearchCompanies, 'advancedSearchCompanies');
49
50
  const ensureAdvancedSearchPeople = () => ensureFunctionAvailability(advancedSearchPeople, 'advancedSearchPeople');
51
+ const ensureAdvancedSearchDeals = () => ensureFunctionAvailability(advancedSearchDeals, 'advancedSearchDeals');
50
52
  /**
51
53
  * UniversalSearchService provides centralized record search functionality
52
54
  */
@@ -74,6 +76,13 @@ export class UniversalSearchService {
74
76
  rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
75
77
  getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
76
78
  };
79
+ const dealDependencies = {
80
+ advancedSearchFunction: await ensureAdvancedSearchDeals(),
81
+ createDateFilter: SearchUtilities.createDateFilter,
82
+ mergeFilters: SearchUtilities.mergeFilters,
83
+ rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
84
+ getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
85
+ };
77
86
  const listDependencies = {
78
87
  listFunction: (query, limit, offset) => searchLists(query || '', limit, offset),
79
88
  rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
@@ -84,11 +93,18 @@ export class UniversalSearchService {
84
93
  rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
85
94
  getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
86
95
  };
96
+ const noteDependencies = {
97
+ noteFunction: (query) => listNotes(query || {}),
98
+ rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
99
+ getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
100
+ };
87
101
  // Initialize strategies
88
102
  this.strategies.set(UniversalResourceType.COMPANIES, new CompanySearchStrategy(companyDependencies));
89
103
  this.strategies.set(UniversalResourceType.PEOPLE, new PeopleSearchStrategy(peopleDependencies));
104
+ this.strategies.set(UniversalResourceType.DEALS, new DealSearchStrategy(dealDependencies));
90
105
  this.strategies.set(UniversalResourceType.LISTS, new ListSearchStrategy(listDependencies));
91
106
  this.strategies.set(UniversalResourceType.TASKS, new TaskSearchStrategy(taskDependencies));
107
+ this.strategies.set(UniversalResourceType.NOTES, new NoteSearchStrategy(noteDependencies));
92
108
  }
93
109
  /**
94
110
  * Universal search handler with performance tracking
@@ -264,14 +280,10 @@ export class UniversalSearchService {
264
280
  },
265
281
  });
266
282
  }
267
- // Fallback for resources without strategies (RECORDS, DEALS, NOTES)
283
+ // Fallback for resources without strategies (RECORDS only)
268
284
  switch (resource_type) {
269
285
  case UniversalResourceType.RECORDS:
270
286
  return this.searchRecords_ObjectType(limit, offset, filters);
271
- case UniversalResourceType.DEALS:
272
- return this.searchDeals(limit, offset, query);
273
- case UniversalResourceType.NOTES:
274
- return this.searchNotes(perfId, apiStart, query, filters, limit, offset);
275
287
  default:
276
288
  throw new Error(`Unsupported resource type for search: ${resource_type}`);
277
289
  }
@@ -294,132 +306,6 @@ export class UniversalSearchService {
294
306
  page: Math.floor((offset || 0) / (limit || 10)) + 1,
295
307
  });
296
308
  }
297
- /**
298
- * Search deals using query endpoint with filtering support
299
- */
300
- static async searchDeals(limit, offset, query) {
301
- return this.queryDealRecords({ limit, offset, query });
302
- }
303
- /**
304
- * Query deal records using the proper Attio API endpoint
305
- */
306
- static async queryDealRecords(params) {
307
- const { limit = 10, offset = 0, query } = params;
308
- const client = getLazyAttioClient();
309
- try {
310
- // First try exact match if query provided
311
- if (query && query.trim()) {
312
- try {
313
- const exactMatchResponse = await client.post('/objects/deals/records/query', {
314
- filter: {
315
- $and: [
316
- {
317
- path: [['deals', 'name']],
318
- constraints: {
319
- value: query.trim(),
320
- },
321
- },
322
- ],
323
- },
324
- limit: Math.min(limit || 10, 100),
325
- offset: offset || 0,
326
- });
327
- const exactResults = exactMatchResponse?.data?.data || [];
328
- if (exactResults.length > 0) {
329
- return exactResults;
330
- }
331
- }
332
- catch {
333
- createScopedLogger('UniversalSearchService', 'dealExactMatch').debug('Exact match failed, trying client-side filtering');
334
- }
335
- }
336
- // Fetch all deals for client-side filtering
337
- const allDealsResponse = await client.post('/objects/deals/records/query', {
338
- limit: 100,
339
- offset: 0,
340
- });
341
- let allDeals = allDealsResponse?.data?.data || [];
342
- // Apply client-side filtering if query provided
343
- if (query && query.trim()) {
344
- const queryLower = query.trim().toLowerCase();
345
- allDeals = allDeals.filter((deal) => {
346
- const nameField = deal.values?.name;
347
- const name = Array.isArray(nameField) && nameField[0]?.value
348
- ? String(nameField[0].value)
349
- : '';
350
- return name.toLowerCase().includes(queryLower);
351
- });
352
- }
353
- // Apply pagination to filtered results
354
- const start = offset || 0;
355
- const end = start + (limit || 10);
356
- return allDeals.slice(start, end);
357
- }
358
- catch (error) {
359
- createScopedLogger('UniversalSearchService', 'dealQuery').error('Failed to query deal records', error);
360
- if (error && typeof error === 'object' && 'response' in error) {
361
- const httpError = error;
362
- if (httpError.response.status === 404) {
363
- createScopedLogger('UniversalSearchService', 'dealQuery').error('Deal query endpoint not found, falling back to empty results');
364
- return [];
365
- }
366
- }
367
- createScopedLogger('UniversalSearchService', 'dealQuery').warn('Deal query failed with unexpected error, returning empty results');
368
- return [];
369
- }
370
- }
371
- /**
372
- * Search notes with filtering and pagination
373
- */
374
- static async searchNotes(perfId, apiStart, query, filters, limit, offset) {
375
- try {
376
- // Build query parameters for Attio Notes API
377
- const queryParams = {};
378
- // Apply filters (mapped from universal filter names)
379
- if (filters) {
380
- if (filters.parent_object || filters.linked_record_type) {
381
- queryParams.parent_object =
382
- filters.parent_object || filters.linked_record_type;
383
- }
384
- if (filters.parent_record_id || filters.linked_record_id) {
385
- queryParams.parent_record_id =
386
- filters.parent_record_id || filters.linked_record_id;
387
- }
388
- }
389
- // Add pagination parameters
390
- if (limit)
391
- queryParams.limit = limit;
392
- if (offset)
393
- queryParams.offset = offset;
394
- // Call Notes API
395
- const response = await listNotes(queryParams);
396
- const notes = response.data || [];
397
- // Log performance metrics
398
- enhancedPerformanceTracker.markTiming(perfId, 'attioApi', performance.now() - apiStart);
399
- // Normalize notes to AttioRecord format
400
- const normalizedNotes = notes.map((note) => normalizeNoteResponse(note));
401
- // Apply query-based filtering if query provided
402
- let results = normalizedNotes;
403
- if (query && query.trim()) {
404
- const queryLower = query.toLowerCase().trim();
405
- results = normalizedNotes.filter((record) => {
406
- const title = record.values?.title?.toString()?.toLowerCase() || '';
407
- const contentMarkdown = record.values?.content_markdown?.toString()?.toLowerCase() || '';
408
- const contentPlaintext = record.values?.content_plaintext?.toString()?.toLowerCase() || '';
409
- return (title.includes(queryLower) ||
410
- contentMarkdown.includes(queryLower) ||
411
- contentPlaintext.includes(queryLower));
412
- });
413
- }
414
- enhancedPerformanceTracker.markTiming(perfId, 'serialization', performance.now() - apiStart);
415
- return results;
416
- }
417
- catch (error) {
418
- createScopedLogger('UniversalSearchService', 'searchNotes', OperationType.API_CALL).error('Failed to search notes', error);
419
- enhancedPerformanceTracker.markTiming(perfId, 'other', performance.now() - apiStart);
420
- return [];
421
- }
422
- }
423
309
  // Query API methods remain unchanged
424
310
  static async searchByRelationship(sourceResourceType, targetResourceType, targetRecordId, limit, offset) {
425
311
  const relationshipQuery = {