attio-mcp 1.3.5 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/CHANGELOG.md +263 -9
  2. package/README.md +315 -235
  3. package/dist/api/attio-client.d.ts +13 -3
  4. package/dist/api/attio-client.d.ts.map +1 -1
  5. package/dist/api/attio-client.js +37 -7
  6. package/dist/api/attio-client.js.map +1 -1
  7. package/dist/api/attribute-types.d.ts.map +1 -1
  8. package/dist/api/attribute-types.js +59 -29
  9. package/dist/api/attribute-types.js.map +1 -1
  10. package/dist/api/client-context.d.ts.map +1 -1
  11. package/dist/api/client-context.js +28 -42
  12. package/dist/api/client-context.js.map +1 -1
  13. package/dist/api/operations/batch.d.ts.map +1 -1
  14. package/dist/api/operations/batch.js +3 -1
  15. package/dist/api/operations/batch.js.map +1 -1
  16. package/dist/cli/commands/generate-skill.d.ts +28 -0
  17. package/dist/cli/commands/generate-skill.d.ts.map +1 -0
  18. package/dist/cli/commands/generate-skill.js +101 -0
  19. package/dist/cli/commands/generate-skill.js.map +1 -0
  20. package/dist/cli/discover.js +65 -0
  21. package/dist/cli/discover.js.map +1 -1
  22. package/dist/config/deal-defaults.d.ts +2 -2
  23. package/dist/config/deal-defaults.d.ts.map +1 -1
  24. package/dist/config/deal-defaults.js +15 -6
  25. package/dist/config/deal-defaults.js.map +1 -1
  26. package/dist/config/tool-aliases.d.ts +12 -0
  27. package/dist/config/tool-aliases.d.ts.map +1 -1
  28. package/dist/config/tool-aliases.js +213 -69
  29. package/dist/config/tool-aliases.js.map +1 -1
  30. package/dist/constants/tool-names.d.ts +84 -0
  31. package/dist/constants/tool-names.d.ts.map +1 -0
  32. package/dist/constants/tool-names.js +81 -0
  33. package/dist/constants/tool-names.js.map +1 -0
  34. package/dist/constants/universal.constants.d.ts +24 -0
  35. package/dist/constants/universal.constants.d.ts.map +1 -1
  36. package/dist/constants/universal.constants.js +81 -9
  37. package/dist/constants/universal.constants.js.map +1 -1
  38. package/dist/handlers/tool-configs/tasks.d.ts.map +1 -1
  39. package/dist/handlers/tool-configs/tasks.js +28 -0
  40. package/dist/handlers/tool-configs/tasks.js.map +1 -1
  41. package/dist/handlers/tool-configs/universal/batch-search.js +4 -4
  42. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.d.ts +26 -4
  43. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.d.ts.map +1 -1
  44. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js +181 -21
  45. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js.map +1 -1
  46. package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts.map +1 -1
  47. package/dist/handlers/tool-configs/universal/core/crud-operations.js +52 -13
  48. package/dist/handlers/tool-configs/universal/core/crud-operations.js.map +1 -1
  49. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js +3 -3
  50. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js.map +1 -1
  51. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.d.ts +17 -0
  52. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.d.ts.map +1 -0
  53. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.js +118 -0
  54. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.js.map +1 -0
  55. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.d.ts +14 -0
  56. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.d.ts.map +1 -0
  57. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.js +77 -0
  58. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.js.map +1 -0
  59. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.d.ts +24 -0
  60. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.d.ts.map +1 -0
  61. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.js +35 -0
  62. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.js.map +1 -0
  63. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.d.ts +15 -0
  64. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.d.ts.map +1 -0
  65. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.js +108 -0
  66. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.js.map +1 -0
  67. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.d.ts +14 -0
  68. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.d.ts.map +1 -0
  69. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.js +91 -0
  70. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.js.map +1 -0
  71. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.d.ts +14 -0
  72. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.d.ts.map +1 -0
  73. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.js +118 -0
  74. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.js.map +1 -0
  75. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.d.ts +77 -0
  76. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.d.ts.map +1 -0
  77. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.js +42 -0
  78. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.js.map +1 -0
  79. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.d.ts +15 -0
  80. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.d.ts.map +1 -0
  81. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.js +109 -0
  82. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.js.map +1 -0
  83. package/dist/handlers/tool-configs/universal/core/index.d.ts +63 -22
  84. package/dist/handlers/tool-configs/universal/core/index.d.ts.map +1 -1
  85. package/dist/handlers/tool-configs/universal/core/index.js +24 -22
  86. package/dist/handlers/tool-configs/universal/core/index.js.map +1 -1
  87. package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts +43 -1
  88. package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts.map +1 -1
  89. package/dist/handlers/tool-configs/universal/core/metadata-operations.js +117 -11
  90. package/dist/handlers/tool-configs/universal/core/metadata-operations.js.map +1 -1
  91. package/dist/handlers/tool-configs/universal/core/notes-operations.d.ts.map +1 -1
  92. package/dist/handlers/tool-configs/universal/core/notes-operations.js +27 -12
  93. package/dist/handlers/tool-configs/universal/core/notes-operations.js.map +1 -1
  94. package/dist/handlers/tool-configs/universal/core/record-details-operations.d.ts.map +1 -1
  95. package/dist/handlers/tool-configs/universal/core/record-details-operations.js +20 -3
  96. package/dist/handlers/tool-configs/universal/core/record-details-operations.js.map +1 -1
  97. package/dist/handlers/tool-configs/universal/core/search-operations.d.ts.map +1 -1
  98. package/dist/handlers/tool-configs/universal/core/search-operations.js +11 -4
  99. package/dist/handlers/tool-configs/universal/core/search-operations.js.map +1 -1
  100. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.d.ts.map +1 -1
  101. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.js +32 -9
  102. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.js.map +1 -1
  103. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.d.ts.map +1 -1
  104. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.js +45 -6
  105. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.js.map +1 -1
  106. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.d.ts.map +1 -1
  107. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.js +36 -5
  108. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.js.map +1 -1
  109. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.d.ts +1 -1
  110. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.d.ts.map +1 -1
  111. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.js +17 -1
  112. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.js.map +1 -1
  113. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.d.ts.map +1 -1
  114. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.js +3 -1
  115. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.js.map +1 -1
  116. package/dist/handlers/tool-configs/universal/index.d.ts +75 -34
  117. package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
  118. package/dist/handlers/tool-configs/universal/index.js +58 -58
  119. package/dist/handlers/tool-configs/universal/index.js.map +1 -1
  120. package/dist/handlers/tool-configs/universal/operations/advanced-search.d.ts.map +1 -1
  121. package/dist/handlers/tool-configs/universal/operations/advanced-search.js +5 -4
  122. package/dist/handlers/tool-configs/universal/operations/advanced-search.js.map +1 -1
  123. package/dist/handlers/tool-configs/universal/operations/batch-operations.js +3 -3
  124. package/dist/handlers/tool-configs/universal/operations/content-search.js +3 -3
  125. package/dist/handlers/tool-configs/universal/operations/index.d.ts +10 -10
  126. package/dist/handlers/tool-configs/universal/operations/index.js +15 -15
  127. package/dist/handlers/tool-configs/universal/operations/relationship-search.js +3 -3
  128. package/dist/handlers/tool-configs/universal/operations/timeframe-search.js +3 -3
  129. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.d.ts.map +1 -1
  130. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js +5 -2
  131. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js.map +1 -1
  132. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts +29 -0
  133. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts.map +1 -1
  134. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js +28 -0
  135. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js.map +1 -1
  136. package/dist/handlers/tool-configs/universal/schemas.d.ts +1 -1
  137. package/dist/handlers/tool-configs/universal/schemas.d.ts.map +1 -1
  138. package/dist/handlers/tool-configs/universal/schemas.js +1 -1
  139. package/dist/handlers/tool-configs/universal/schemas.js.map +1 -1
  140. package/dist/handlers/tool-configs/universal/shared-handlers.d.ts +20 -1
  141. package/dist/handlers/tool-configs/universal/shared-handlers.d.ts.map +1 -1
  142. package/dist/handlers/tool-configs/universal/shared-handlers.js +216 -0
  143. package/dist/handlers/tool-configs/universal/shared-handlers.js.map +1 -1
  144. package/dist/handlers/tool-configs/universal/smithery-diagnostics.js +2 -2
  145. package/dist/handlers/tool-configs/universal/types.d.ts +9 -0
  146. package/dist/handlers/tool-configs/universal/types.d.ts.map +1 -1
  147. package/dist/handlers/tool-configs/universal/validators/schema-validator.d.ts +11 -0
  148. package/dist/handlers/tool-configs/universal/validators/schema-validator.d.ts.map +1 -1
  149. package/dist/handlers/tool-configs/universal/validators/schema-validator.js +63 -9
  150. package/dist/handlers/tool-configs/universal/validators/schema-validator.js.map +1 -1
  151. package/dist/handlers/tool-types.d.ts +9 -0
  152. package/dist/handlers/tool-types.d.ts.map +1 -1
  153. package/dist/handlers/tools/dispatcher/core.d.ts.map +1 -1
  154. package/dist/handlers/tools/dispatcher/core.js +24 -5
  155. package/dist/handlers/tools/dispatcher/core.js.map +1 -1
  156. package/dist/handlers/tools/formatters.d.ts +8 -1
  157. package/dist/handlers/tools/formatters.d.ts.map +1 -1
  158. package/dist/handlers/tools/formatters.js +30 -14
  159. package/dist/handlers/tools/formatters.js.map +1 -1
  160. package/dist/handlers/tools/registry.d.ts +125 -84
  161. package/dist/handlers/tools/registry.d.ts.map +1 -1
  162. package/dist/handlers/tools/registry.js +14 -9
  163. package/dist/handlers/tools/registry.js.map +1 -1
  164. package/dist/handlers/tools/standards/index.d.ts.map +1 -1
  165. package/dist/handlers/tools/standards/index.js +19 -11
  166. package/dist/handlers/tools/standards/index.js.map +1 -1
  167. package/dist/objects/companies/attributes.d.ts +5 -0
  168. package/dist/objects/companies/attributes.d.ts.map +1 -1
  169. package/dist/objects/companies/attributes.js +45 -31
  170. package/dist/objects/companies/attributes.js.map +1 -1
  171. package/dist/server/createServer.d.ts.map +1 -1
  172. package/dist/server/createServer.js +4 -3
  173. package/dist/server/createServer.js.map +1 -1
  174. package/dist/services/ErrorService.js +3 -3
  175. package/dist/services/ErrorService.js.map +1 -1
  176. package/dist/services/UniversalCreateService.d.ts.map +1 -1
  177. package/dist/services/UniversalCreateService.js +136 -12
  178. package/dist/services/UniversalCreateService.js.map +1 -1
  179. package/dist/services/UniversalSearchService.d.ts +4 -25
  180. package/dist/services/UniversalSearchService.d.ts.map +1 -1
  181. package/dist/services/UniversalSearchService.js +14 -324
  182. package/dist/services/UniversalSearchService.js.map +1 -1
  183. package/dist/services/UniversalUpdateService.d.ts +15 -4
  184. package/dist/services/UniversalUpdateService.d.ts.map +1 -1
  185. package/dist/services/UniversalUpdateService.js +79 -151
  186. package/dist/services/UniversalUpdateService.js.map +1 -1
  187. package/dist/services/create/factory.d.ts.map +1 -1
  188. package/dist/services/create/factory.js +2 -1
  189. package/dist/services/create/factory.js.map +1 -1
  190. package/dist/services/metadata/AttributeOptionsService.d.ts +38 -0
  191. package/dist/services/metadata/AttributeOptionsService.d.ts.map +1 -0
  192. package/dist/services/metadata/AttributeOptionsService.js +92 -0
  193. package/dist/services/metadata/AttributeOptionsService.js.map +1 -0
  194. package/dist/services/metadata/index.d.ts +1 -0
  195. package/dist/services/metadata/index.d.ts.map +1 -1
  196. package/dist/services/metadata/index.js +1 -0
  197. package/dist/services/metadata/index.js.map +1 -1
  198. package/dist/services/search/QueryApiService.d.ts +27 -0
  199. package/dist/services/search/QueryApiService.d.ts.map +1 -0
  200. package/dist/services/search/QueryApiService.js +144 -0
  201. package/dist/services/search/QueryApiService.js.map +1 -0
  202. package/dist/services/search/RecordsSearchService.d.ts +27 -0
  203. package/dist/services/search/RecordsSearchService.d.ts.map +1 -0
  204. package/dist/services/search/RecordsSearchService.js +122 -0
  205. package/dist/services/search/RecordsSearchService.js.map +1 -0
  206. package/dist/services/search/SearchCoordinator.d.ts +41 -0
  207. package/dist/services/search/SearchCoordinator.d.ts.map +1 -0
  208. package/dist/services/search/SearchCoordinator.js +83 -0
  209. package/dist/services/search/SearchCoordinator.js.map +1 -0
  210. package/dist/services/search/StrategyFactory.d.ts +31 -0
  211. package/dist/services/search/StrategyFactory.d.ts.map +1 -0
  212. package/dist/services/search/StrategyFactory.js +100 -0
  213. package/dist/services/search/StrategyFactory.js.map +1 -0
  214. package/dist/services/skill-generator/OutputWriterService.d.ts +41 -0
  215. package/dist/services/skill-generator/OutputWriterService.d.ts.map +1 -0
  216. package/dist/services/skill-generator/OutputWriterService.js +100 -0
  217. package/dist/services/skill-generator/OutputWriterService.js.map +1 -0
  218. package/dist/services/skill-generator/SchemaFormatterService.d.ts +61 -0
  219. package/dist/services/skill-generator/SchemaFormatterService.d.ts.map +1 -0
  220. package/dist/services/skill-generator/SchemaFormatterService.js +168 -0
  221. package/dist/services/skill-generator/SchemaFormatterService.js.map +1 -0
  222. package/dist/services/skill-generator/WorkspaceSchemaService.d.ts +84 -0
  223. package/dist/services/skill-generator/WorkspaceSchemaService.d.ts.map +1 -0
  224. package/dist/services/skill-generator/WorkspaceSchemaService.js +292 -0
  225. package/dist/services/skill-generator/WorkspaceSchemaService.js.map +1 -0
  226. package/dist/services/skill-generator/index.d.ts +12 -0
  227. package/dist/services/skill-generator/index.d.ts.map +1 -0
  228. package/dist/services/skill-generator/index.js +11 -0
  229. package/dist/services/skill-generator/index.js.map +1 -0
  230. package/dist/services/skill-generator/types.d.ts +137 -0
  231. package/dist/services/skill-generator/types.d.ts.map +1 -0
  232. package/dist/services/skill-generator/types.js +10 -0
  233. package/dist/services/skill-generator/types.js.map +1 -0
  234. package/dist/services/update/FieldPersistenceHandler.d.ts +101 -0
  235. package/dist/services/update/FieldPersistenceHandler.d.ts.map +1 -0
  236. package/dist/services/update/FieldPersistenceHandler.js +198 -0
  237. package/dist/services/update/FieldPersistenceHandler.js.map +1 -0
  238. package/dist/services/update/FieldValidationHandler.d.ts +77 -0
  239. package/dist/services/update/FieldValidationHandler.d.ts.map +1 -0
  240. package/dist/services/update/FieldValidationHandler.js +157 -0
  241. package/dist/services/update/FieldValidationHandler.js.map +1 -0
  242. package/dist/services/update/MetadataResolver.d.ts +50 -0
  243. package/dist/services/update/MetadataResolver.d.ts.map +1 -0
  244. package/dist/services/update/MetadataResolver.js +110 -0
  245. package/dist/services/update/MetadataResolver.js.map +1 -0
  246. package/dist/services/update/UpdateOrchestrator.d.ts +37 -0
  247. package/dist/services/update/UpdateOrchestrator.d.ts.map +1 -0
  248. package/dist/services/update/UpdateOrchestrator.js +58 -0
  249. package/dist/services/update/UpdateOrchestrator.js.map +1 -0
  250. package/dist/services/update/UpdateValidation.d.ts +5 -1
  251. package/dist/services/update/UpdateValidation.d.ts.map +1 -1
  252. package/dist/services/update/UpdateValidation.js +46 -14
  253. package/dist/services/update/UpdateValidation.js.map +1 -1
  254. package/dist/services/value-transformer/index.d.ts +57 -0
  255. package/dist/services/value-transformer/index.d.ts.map +1 -0
  256. package/dist/services/value-transformer/index.js +326 -0
  257. package/dist/services/value-transformer/index.js.map +1 -0
  258. package/dist/services/value-transformer/multi-select-transformer.d.ts +63 -0
  259. package/dist/services/value-transformer/multi-select-transformer.d.ts.map +1 -0
  260. package/dist/services/value-transformer/multi-select-transformer.js +144 -0
  261. package/dist/services/value-transformer/multi-select-transformer.js.map +1 -0
  262. package/dist/services/value-transformer/record-reference-transformer.d.ts +43 -0
  263. package/dist/services/value-transformer/record-reference-transformer.d.ts.map +1 -0
  264. package/dist/services/value-transformer/record-reference-transformer.js +245 -0
  265. package/dist/services/value-transformer/record-reference-transformer.js.map +1 -0
  266. package/dist/services/value-transformer/select-transformer.d.ts +48 -0
  267. package/dist/services/value-transformer/select-transformer.d.ts.map +1 -0
  268. package/dist/services/value-transformer/select-transformer.js +232 -0
  269. package/dist/services/value-transformer/select-transformer.js.map +1 -0
  270. package/dist/services/value-transformer/status-transformer.d.ts +32 -0
  271. package/dist/services/value-transformer/status-transformer.d.ts.map +1 -0
  272. package/dist/services/value-transformer/status-transformer.js +294 -0
  273. package/dist/services/value-transformer/status-transformer.js.map +1 -0
  274. package/dist/services/value-transformer/types.d.ts +100 -0
  275. package/dist/services/value-transformer/types.d.ts.map +1 -0
  276. package/dist/services/value-transformer/types.js +6 -0
  277. package/dist/services/value-transformer/types.js.map +1 -0
  278. package/dist/templates/skill/SKILL.template.md +78 -0
  279. package/dist/templates/skill/attribute-reference.template.md +126 -0
  280. package/dist/templates/skill/complex-types.template.md +255 -0
  281. package/dist/utils/client-resolver.d.ts.map +1 -1
  282. package/dist/utils/client-resolver.js +8 -16
  283. package/dist/utils/client-resolver.js.map +1 -1
  284. package/dist/utils/complex-type-validation.d.ts +16 -0
  285. package/dist/utils/complex-type-validation.d.ts.map +1 -0
  286. package/dist/utils/complex-type-validation.js +196 -0
  287. package/dist/utils/complex-type-validation.js.map +1 -0
  288. package/dist/utils/error-utilities.d.ts.map +1 -1
  289. package/dist/utils/error-utilities.js +16 -9
  290. package/dist/utils/error-utilities.js.map +1 -1
  291. package/dist/utils/location-normalizer.d.ts +26 -0
  292. package/dist/utils/location-normalizer.d.ts.map +1 -0
  293. package/dist/utils/location-normalizer.js +39 -0
  294. package/dist/utils/location-normalizer.js.map +1 -0
  295. package/dist/utils/metadata-utils.d.ts +27 -0
  296. package/dist/utils/metadata-utils.d.ts.map +1 -0
  297. package/dist/utils/metadata-utils.js +59 -0
  298. package/dist/utils/metadata-utils.js.map +1 -0
  299. package/dist/utils/personal-name-parser.d.ts.map +1 -1
  300. package/dist/utils/personal-name-parser.js +26 -17
  301. package/dist/utils/personal-name-parser.js.map +1 -1
  302. package/dist/validators/company/field_detector.d.ts.map +1 -1
  303. package/dist/validators/company/field_detector.js +5 -0
  304. package/dist/validators/company/field_detector.js.map +1 -1
  305. package/package.json +28 -25
@@ -2,110 +2,25 @@
2
2
  * UniversalSearchService - Centralized record search operations
3
3
  *
4
4
  * Issue #574: Refactored to use Strategy Pattern for resource-specific search logic
5
- * Reduced from 1800+ lines to <500 lines by extracting strategies
5
+ * Issue #935: Search routing delegated to SearchCoordinator and extracted services
6
6
  */
7
7
  import { UniversalResourceType, SearchType, MatchType, SortType, } from '../handlers/tool-configs/universal/types.js';
8
8
  import { performance } from 'perf_hooks';
9
- import { debug, createScopedLogger, OperationType } from '../utils/logger.js';
9
+ import { debug } from '../utils/logger.js';
10
10
  // Import services
11
11
  import { ValidationService } from './ValidationService.js';
12
12
  import { CachingService } from './CachingService.js';
13
13
  // Import performance tracking
14
14
  import { enhancedPerformanceTracker } from '../middleware/performance-enhanced.js';
15
- // Import error types for validation and proper error handling
16
- import { AuthenticationError, AuthorizationError, NetworkError, RateLimitError, ServerError, ResourceNotFoundError, createApiErrorFromAxiosError, } from '../errors/api-errors.js';
17
- // Import resource-specific search functions
18
- import { advancedSearchCompanies } from '../objects/companies/index.js';
19
- import { advancedSearchPeople } from '../objects/people/index.js';
20
- import { advancedSearchDeals } from '../objects/deals/index.js';
21
- import { searchLists } from '../objects/lists.js';
22
- import { listObjectRecords } from '../objects/records/index.js';
23
- import { listTasks } from '../objects/tasks.js';
24
- import { listNotes } from '../objects/notes.js';
25
- // Import guardrails
26
- // Import Attio client for deal queries
27
- import { getLazyAttioClient } from '../api/lazy-client.js';
28
- import * as AttioClientModule from '../api/attio-client.js';
29
- // Note: Attio client resolution is centralized in getLazyAttioClient(),
30
- // which prefers mocked getAttioClient() during tests/offline.
31
- // Import factory for guard checks
32
- // Prefer the module's getAttioClient (enables Vitest mocks). Fallback to lazy client.
33
- function resolveQueryApiClient() {
34
- const mod = AttioClientModule;
35
- if (typeof mod.getAttioClient === 'function') {
36
- return mod.getAttioClient();
37
- }
38
- return getLazyAttioClient();
39
- }
40
- // Import new query API utilities
41
- import { createRelationshipQuery, createTimeframeQuery, createContentSearchQuery, } from '../utils/filters/index.js';
42
15
  // Import timeframe utility functions for Issue #475
43
16
  import { convertDateParamsToTimeframeQuery } from '../utils/filters/timeframe-utils.js';
44
- // Import search strategies
45
- import { CompanySearchStrategy, PeopleSearchStrategy, DealSearchStrategy, TaskSearchStrategy, ListSearchStrategy, NoteSearchStrategy, } from './search-strategies/index.js';
46
- import { SearchUtilities } from './search-utilities/SearchUtilities.js';
47
- import { ensureFunctionAvailability } from './search-utilities/FunctionValidator.js';
48
- // Dynamic imports for better error handling using extracted utility pattern
49
- const ensureAdvancedSearchCompanies = () => ensureFunctionAvailability(advancedSearchCompanies, 'advancedSearchCompanies');
50
- const ensureAdvancedSearchPeople = () => ensureFunctionAvailability(advancedSearchPeople, 'advancedSearchPeople');
51
- const ensureAdvancedSearchDeals = () => ensureFunctionAvailability(advancedSearchDeals, 'advancedSearchDeals');
17
+ // Issue #935: Search routing delegated to SearchCoordinator
18
+ import { SearchCoordinator } from './search/SearchCoordinator.js';
52
19
  /**
53
20
  * UniversalSearchService provides centralized record search functionality
21
+ * Issue #935: Strategy initialization delegated to StrategyFactory via SearchCoordinator
54
22
  */
55
23
  export class UniversalSearchService {
56
- static strategies = new Map();
57
- /**
58
- * Initialize search strategies with their dependencies
59
- */
60
- static async initializeStrategies() {
61
- if (this.strategies.size > 0) {
62
- return; // Already initialized
63
- }
64
- // Create dependencies for strategies
65
- const companyDependencies = {
66
- advancedSearchFunction: await ensureAdvancedSearchCompanies(),
67
- createDateFilter: SearchUtilities.createDateFilter,
68
- mergeFilters: SearchUtilities.mergeFilters,
69
- rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
70
- getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
71
- };
72
- const peopleDependencies = {
73
- paginatedSearchFunction: await ensureAdvancedSearchPeople(),
74
- createDateFilter: SearchUtilities.createDateFilter,
75
- mergeFilters: SearchUtilities.mergeFilters,
76
- rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
77
- getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
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
- };
86
- const listDependencies = {
87
- listFunction: (query, limit, offset) => searchLists(query || '', limit, offset),
88
- rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
89
- getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
90
- };
91
- const taskDependencies = {
92
- taskFunction: (status, assigneeId, page, pageSize) => listTasks(status, assigneeId, page, pageSize),
93
- rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
94
- getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
95
- };
96
- const noteDependencies = {
97
- noteFunction: (query) => listNotes(query || {}),
98
- rankByRelevance: SearchUtilities.rankByRelevance.bind(SearchUtilities),
99
- getFieldValue: SearchUtilities.getFieldValue.bind(SearchUtilities),
100
- };
101
- // Initialize strategies
102
- this.strategies.set(UniversalResourceType.COMPANIES, new CompanySearchStrategy(companyDependencies));
103
- this.strategies.set(UniversalResourceType.PEOPLE, new PeopleSearchStrategy(peopleDependencies));
104
- this.strategies.set(UniversalResourceType.DEALS, new DealSearchStrategy(dealDependencies));
105
- this.strategies.set(UniversalResourceType.LISTS, new ListSearchStrategy(listDependencies));
106
- this.strategies.set(UniversalResourceType.TASKS, new TaskSearchStrategy(taskDependencies));
107
- this.strategies.set(UniversalResourceType.NOTES, new NoteSearchStrategy(noteDependencies));
108
- }
109
24
  /**
110
25
  * Universal search handler with performance tracking
111
26
  */
@@ -205,7 +120,7 @@ export class UniversalSearchService {
205
120
  date_operator: processedTimeframeParams.date_operator,
206
121
  content_fields,
207
122
  use_or_logic,
208
- }, perfId, apiStart);
123
+ });
209
124
  enhancedPerformanceTracker.markApiEnd(perfId, apiStart);
210
125
  enhancedPerformanceTracker.endOperation(perfId, true, undefined, 200, {
211
126
  recordCount: results.length,
@@ -224,242 +139,17 @@ export class UniversalSearchService {
224
139
  }
225
140
  }
226
141
  /**
227
- * Perform search by resource type with strategy pattern
228
- */
229
- static async performSearchByResourceType(resource_type, params, perfId, apiStart) {
230
- const { query, filters, limit, offset, search_type, fields, match_type, sort, relationship_target_type, relationship_target_id, timeframe_attribute, start_date, end_date, date_operator, content_fields, use_or_logic, } = params;
231
- // Handle new search types first (unchanged from original)
232
- switch (search_type) {
233
- case SearchType.RELATIONSHIP:
234
- if (relationship_target_type && relationship_target_id) {
235
- return this.searchByRelationship(resource_type, relationship_target_type, relationship_target_id, limit, offset);
236
- }
237
- throw new Error('Relationship search requires target_type and target_id parameters');
238
- case SearchType.TIMEFRAME:
239
- if (timeframe_attribute) {
240
- const timeframeConfig = {
241
- resourceType: resource_type,
242
- attribute: timeframe_attribute,
243
- startDate: start_date,
244
- endDate: end_date,
245
- operator: date_operator || 'between',
246
- };
247
- return this.searchByTimeframe(resource_type, timeframeConfig, limit, offset);
248
- }
249
- throw new Error('Timeframe search requires timeframe_attribute parameter');
250
- case SearchType.CONTENT:
251
- // Use new Query API if content_fields is explicitly provided
252
- if (content_fields && content_fields.length > 0) {
253
- if (!query) {
254
- throw new Error('Content search requires query parameter');
255
- }
256
- return this.searchByContent(resource_type, query, content_fields, use_or_logic !== false, limit, offset);
257
- }
258
- // Fall through to strategy-based content search
259
- break;
260
- }
261
- // Initialize strategies if needed
262
- await this.initializeStrategies();
263
- // Use strategy pattern for resource-specific searches
264
- const strategy = this.strategies.get(resource_type);
265
- if (strategy) {
266
- return await strategy.search({
267
- query,
268
- filters,
269
- limit,
270
- offset,
271
- search_type,
272
- fields,
273
- match_type,
274
- sort,
275
- timeframeParams: {
276
- timeframe_attribute,
277
- start_date,
278
- end_date,
279
- date_operator,
280
- },
281
- });
282
- }
283
- // Fallback for resources without strategies
284
- // This handles both 'records' type AND custom objects (e.g., "funds", "investment_opportunities")
285
- switch (resource_type) {
286
- case UniversalResourceType.RECORDS:
287
- return this.searchRecords_ObjectType(limit, offset, filters);
288
- default:
289
- // Custom objects: route through generic records API with object slug
290
- // This enables support for user-defined custom objects (Issue #918)
291
- return this.searchCustomObject(resource_type, limit, offset, filters);
292
- }
293
- }
294
- // LEGACY METHODS - These remain unchanged for non-strategy resources
295
- /**
296
- * Search records using object records API with filter support
142
+ * Perform search by resource type
143
+ * Issue #935: Delegates to SearchCoordinator for routing logic
297
144
  */
298
- static async searchRecords_ObjectType(limit, offset, filters) {
299
- // Handle list_membership filters - invalid UUID should return empty array
300
- if (filters?.list_membership) {
301
- const listId = String(filters.list_membership);
302
- if (!ValidationService.validateUUIDForSearch(listId)) {
303
- return []; // Return empty success for invalid UUID
304
- }
305
- createScopedLogger('UniversalSearchService', 'searchRecords_ObjectType', OperationType.DATA_PROCESSING).warn('list_membership filter not yet supported in listObjectRecords');
306
- }
307
- return await listObjectRecords('records', {
308
- pageSize: limit,
309
- page: Math.floor((offset || 0) / (limit || 10)) + 1,
145
+ static async performSearchByResourceType(resource_type, params) {
146
+ // Issue #935: Delegate to SearchCoordinator for all search routing
147
+ return SearchCoordinator.executeSearch({
148
+ resource_type,
149
+ ...params,
310
150
  });
311
151
  }
312
- /**
313
- * Search custom objects using generic records API
314
- * Enables support for user-defined custom objects (Issue #918)
315
- *
316
- * @param objectSlug - The custom object type (e.g., "funds", "investment_opportunities")
317
- * @param limit - Maximum results
318
- * @param offset - Pagination offset
319
- * @param filters - Optional filters
320
- */
321
- static async searchCustomObject(objectSlug, limit, offset, filters) {
322
- // Handle list_membership filters - invalid UUID should return empty array
323
- if (filters?.list_membership) {
324
- const listId = String(filters.list_membership);
325
- if (!ValidationService.validateUUIDForSearch(listId)) {
326
- return []; // Return empty success for invalid UUID
327
- }
328
- createScopedLogger('UniversalSearchService', 'searchCustomObject', OperationType.DATA_PROCESSING).warn('list_membership filter not yet supported for custom objects');
329
- }
330
- createScopedLogger('UniversalSearchService', 'searchCustomObject', OperationType.DATA_PROCESSING).info('Searching custom object', {
331
- objectSlug,
332
- limit,
333
- offset,
334
- hasFilters: !!filters,
335
- });
336
- // Custom objects require POST to /objects/{slug}/records/query
337
- // The GET endpoint (/objects/{slug}/records) returns 404 for custom objects
338
- const api = getLazyAttioClient();
339
- const path = `/objects/${objectSlug}/records/query`;
340
- const requestBody = {
341
- limit: limit || 20,
342
- };
343
- // Add offset if provided
344
- if (offset && offset > 0) {
345
- requestBody.offset = offset;
346
- }
347
- const response = await api.post(path, requestBody);
348
- return Array.isArray(response?.data?.data) ? response.data.data : [];
349
- }
350
- // Query API methods remain unchanged
351
- static async searchByRelationship(sourceResourceType, targetResourceType, targetRecordId, limit, offset) {
352
- const relationshipQuery = {
353
- sourceObjectType: sourceResourceType,
354
- targetObjectType: targetResourceType,
355
- targetAttribute: 'id',
356
- condition: 'equals',
357
- value: targetRecordId,
358
- };
359
- const queryApiFilter = createRelationshipQuery(relationshipQuery);
360
- try {
361
- const client = resolveQueryApiClient();
362
- const path = `/objects/${sourceResourceType}/records/query`;
363
- const requestBody = {
364
- ...queryApiFilter,
365
- limit: limit || 10,
366
- offset: offset || 0,
367
- };
368
- const response = await client.post(path, requestBody);
369
- return response?.data?.data || [];
370
- }
371
- catch (error) {
372
- const apiError = createApiErrorFromAxiosError(error, `/objects/${sourceResourceType}/records/query`, 'POST');
373
- if (apiError instanceof AuthenticationError ||
374
- apiError instanceof AuthorizationError ||
375
- apiError instanceof NetworkError ||
376
- apiError instanceof RateLimitError ||
377
- apiError instanceof ServerError) {
378
- throw apiError;
379
- }
380
- if (apiError instanceof ResourceNotFoundError) {
381
- debug('UniversalSearchService', `No relationship found between ${sourceResourceType} -> ${targetResourceType}`, { targetRecordId });
382
- return [];
383
- }
384
- createScopedLogger('UniversalSearchService', 'searchByRelationship', OperationType.API_CALL).error(`Relationship search failed for ${sourceResourceType} -> ${targetResourceType}`, error);
385
- return [];
386
- }
387
- }
388
- static async searchByTimeframe(resourceType, timeframeConfig, limit, offset) {
389
- const queryApiFilter = createTimeframeQuery(timeframeConfig);
390
- try {
391
- const client = resolveQueryApiClient();
392
- const path = `/objects/${resourceType}/records/query`;
393
- const requestBody = {
394
- ...queryApiFilter,
395
- limit: limit || 10,
396
- offset: offset || 0,
397
- };
398
- const response = await client.post(path, requestBody);
399
- return response?.data?.data || [];
400
- }
401
- catch (error) {
402
- const apiError = createApiErrorFromAxiosError(error, `/objects/${resourceType}/records/query`, 'POST');
403
- if (apiError instanceof AuthenticationError ||
404
- apiError instanceof AuthorizationError ||
405
- apiError instanceof NetworkError ||
406
- apiError instanceof RateLimitError ||
407
- apiError instanceof ServerError) {
408
- throw apiError;
409
- }
410
- if (apiError instanceof ResourceNotFoundError) {
411
- debug('UniversalSearchService', `No ${resourceType} records found in specified timeframe`, { timeframeConfig });
412
- return [];
413
- }
414
- createScopedLogger('UniversalSearchService', 'searchByTimeframe', OperationType.API_CALL).error(`Timeframe search failed for ${resourceType}`, error);
415
- return [];
416
- }
417
- }
418
- static async searchByContent(resourceType, query, searchFields = [], useOrLogic = true, limit, offset) {
419
- let fields = searchFields;
420
- if (fields.length === 0) {
421
- switch (resourceType) {
422
- case UniversalResourceType.COMPANIES:
423
- fields = ['name', 'description', 'domains'];
424
- break;
425
- case UniversalResourceType.PEOPLE:
426
- fields = ['name', 'email_addresses', 'job_title'];
427
- break;
428
- default:
429
- fields = ['name'];
430
- break;
431
- }
432
- }
433
- const queryApiFilter = createContentSearchQuery(fields, query, useOrLogic);
434
- try {
435
- const client = getLazyAttioClient();
436
- const path = `/objects/${resourceType}/records/query`;
437
- const requestBody = {
438
- ...queryApiFilter,
439
- limit: limit || 10,
440
- offset: offset || 0,
441
- };
442
- const response = await client.post(path, requestBody);
443
- return response?.data?.data || [];
444
- }
445
- catch (error) {
446
- const apiError = createApiErrorFromAxiosError(error, `/objects/${resourceType}/records/query`, 'POST');
447
- if (apiError instanceof AuthenticationError ||
448
- apiError instanceof AuthorizationError ||
449
- apiError instanceof NetworkError ||
450
- apiError instanceof RateLimitError ||
451
- apiError instanceof ServerError) {
452
- throw apiError;
453
- }
454
- if (apiError instanceof ResourceNotFoundError) {
455
- debug('UniversalSearchService', `No ${resourceType} records found matching content search`, { query, fields });
456
- return [];
457
- }
458
- createScopedLogger('UniversalSearchService', 'searchByContent', OperationType.API_CALL).error(`Content search failed for ${resourceType}`, error);
459
- return [];
460
- }
461
- }
462
- // Utility methods remain unchanged
152
+ // Utility methods
463
153
  static async getSearchSuggestions() {
464
154
  return [];
465
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalSearchService.js","sourceRoot":"","sources":["../../src/services/UniversalSearchService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,QAAQ,GACT,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9E,kBAAkB;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,8BAA8B;AAC9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,8DAA8D;AAC9D,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAEjC,4CAA4C;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAyB,MAAM,qBAAqB,CAAC;AAEvE,oBAAoB;AAEpB,uCAAuC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAG5D,wEAAwE;AACxE,8DAA8D;AAE9D,kCAAkC;AAElC,sFAAsF;AACtF,SAAS,qBAAqB;IAC5B,MAAM,GAAG,GAAG,iBAA6D,CAAC;IAC1E,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC;AAED,iCAAiC;AACjC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,oDAAoD;AACpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAKxF,2BAA2B;AAC3B,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF,4EAA4E;AAC5E,MAAM,6BAA6B,GAAG,GAAG,EAAE,CACzC,0BAA0B,CACxB,uBAAuB,EACvB,yBAAyB,CAC1B,CAAC;AAEJ,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,0BAA0B,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;AAE3E,MAAM,yBAAyB,GAAG,GAAG,EAAE,CACrC,0BAA0B,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,OAAO,sBAAsB;IACzB,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,EAA0C,CAAC;IAE9E;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,oBAAoB;QACvC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,sBAAsB;QAChC,CAAC;QAED,qCAAqC;QACrC,MAAM,mBAAmB,GAAyB;YAChD,sBAAsB,EAAE,MAAM,6BAA6B,EAAE;YAC7D,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;YAClD,YAAY,EAAE,eAAe,CAAC,YAAY;YAC1C,eAAe,EAAE,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;YACtE,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC;SACnE,CAAC;QAEF,MAAM,kBAAkB,GAAyB;YAC/C,uBAAuB,EAAE,MAAM,0BAA0B,EAAE;YAC3D,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;YAClD,YAAY,EAAE,eAAe,CAAC,YAAY;YAC1C,eAAe,EAAE,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;YACtE,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC;SACnE,CAAC;QAEF,MAAM,gBAAgB,GAAyB;YAC7C,sBAAsB,EAAE,MAAM,yBAAyB,EAAE;YACzD,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;YAClD,YAAY,EAAE,eAAe,CAAC,YAAY;YAC1C,eAAe,EAAE,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;YACtE,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC;SACnE,CAAC;QAEF,MAAM,gBAAgB,GAAyB;YAC7C,YAAY,EAAE,CAAC,KAAc,EAAE,KAAc,EAAE,MAAe,EAAE,EAAE,CAChE,WAAW,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC;YACzC,eAAe,EAAE,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;YACtE,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC;SACnE,CAAC;QAEF,MAAM,gBAAgB,GAAyB;YAC7C,YAAY,EAAE,CACZ,MAAe,EACf,UAAmB,EACnB,IAAa,EACb,QAAiB,EACjB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC;YAClD,eAAe,EAAE,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;YACtE,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC;SACnE,CAAC;QAEF,MAAM,gBAAgB,GAAyB;YAC7C,YAAY,EAAE,CAAC,KAA+B,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YACzE,eAAe,EAAE,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;YACtE,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC;SACnE,CAAC;QAEF,wBAAwB;QACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,qBAAqB,CAAC,SAAS,EAC/B,IAAI,qBAAqB,CAAC,mBAAmB,CAAC,CAC/C,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,qBAAqB,CAAC,MAAM,EAC5B,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAC7C,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,qBAAqB,CAAC,KAAK,EAC3B,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CACzC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,qBAAqB,CAAC,KAAK,EAC3B,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CACzC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,qBAAqB,CAAC,KAAK,EAC3B,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CACzC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,qBAAqB,CAAC,KAAK,EAC3B,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,MAA6B;QAE7B,MAAM,EACJ,aAAa,EACb,KAAK,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,WAAW,GAAG,UAAU,CAAC,KAAK,EAC9B,MAAM,EACN,UAAU,GAAG,SAAS,CAAC,OAAO,EAC9B,IAAI,GAAG,QAAQ,CAAC,IAAI;QACpB,2BAA2B;QAC3B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,YAAY;QACZ,4CAA4C;QAC5C,SAAS,EACT,OAAO,EACP,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,GACX,GAAG,MAAM,CAAC;QAEX,6BAA6B;QAC7B,MAAM,MAAM,GAAG,0BAA0B,CAAC,cAAc,CACtD,gBAAgB,EAChB,QAAQ,EACR;YACE,YAAY,EAAE,aAAa;YAC3B,QAAQ,EAAE,CAAC,CAAC,KAAK;YACjB,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1D,KAAK;YACL,MAAM;YACN,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,IAAI;SACf,CACF,CAAC;QAEF,0BAA0B;QAC1B,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAE1C,yDAAyD;QACzD,iBAAiB,CAAC,4BAA4B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QAE1E,wDAAwD;QACxD,iBAAiB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEjD,0BAA0B,CAAC,UAAU,CACnC,MAAM,EACN,YAAY,EACZ,WAAW,CAAC,GAAG,EAAE,GAAG,eAAe,CACpC,CAAC;QAEF,kEAAkE;QAClE,IAAI,wBAAwB,GAAG;YAC7B,mBAAmB;YACnB,UAAU;YACV,QAAQ;YACR,aAAa;SACd,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,iCAAiC,CAAC;gBACvD,SAAS;gBACT,OAAO;gBACP,aAAa;gBACb,cAAc;gBACd,aAAa;gBACb,cAAc;gBACd,SAAS;gBACT,UAAU;aACX,CAAC,CAAC;YAEH,IAAI,cAAc,EAAE,CAAC;gBACnB,kEAAkE;gBAClE,wBAAwB,GAAG;oBACzB,GAAG,wBAAwB;oBAC3B,GAAG,cAAc;iBAClB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,SAAkB,EAAE,CAAC;YAC5B,uDAAuD;YACvD,MAAM,YAAY,GAChB,SAAS,YAAY,KAAK;gBACxB,CAAC,CAAC,qCAAqC,SAAS,CAAC,OAAO,EAAE;gBAC1D,CAAC,CAAC,kCAAkC,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,qEAAqE;QACrE,IAAI,eAAe,GAAG,WAAW,CAAC;QAClC,MAAM,kBAAkB,GACtB,wBAAwB,CAAC,mBAAmB;YAC5C,CAAC,wBAAwB,CAAC,UAAU;gBAClC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAEvC,IAAI,kBAAkB,EAAE,CAAC;YACvB,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC;YACvC,KAAK,CACH,wBAAwB,EACxB,mGAAmG,EACnG;gBACE,kBAAkB,EAAE,WAAW;gBAC/B,mBAAmB,EAAE,wBAAwB,CAAC,mBAAmB;gBACjE,UAAU,EAAE,wBAAwB,CAAC,UAAU;gBAC/C,QAAQ,EAAE,wBAAwB,CAAC,QAAQ;gBAC3C,aAAa,EAAE,wBAAwB,CAAC,aAAa;aACtD,CACF,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,0BAA0B,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,OAAsB,CAAC;QAE3B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAC9C,aAAa,EACb;gBACE,KAAK;gBACL,OAAO;gBACP,KAAK;gBACL,MAAM;gBACN,WAAW,EAAE,eAAe;gBAC5B,MAAM;gBACN,UAAU;gBACV,IAAI;gBACJ,2BAA2B;gBAC3B,wBAAwB;gBACxB,sBAAsB;gBACtB,kDAAkD;gBAClD,mBAAmB,EAAE,wBAAwB,CAAC,mBAAmB;gBACjE,UAAU,EAAE,wBAAwB,CAAC,UAAU;gBAC/C,QAAQ,EAAE,wBAAwB,CAAC,QAAQ;gBAC3C,aAAa,EAAE,wBAAwB,CAAC,aAAa;gBACrD,cAAc;gBACd,YAAY;aACb,EACD,MAAM,EACN,QAAQ,CACT,CAAC;YAEF,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACxD,0BAA0B,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;gBACpE,WAAW,EAAE,OAAO,CAAC,MAAM;aAC5B,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,QAAiB,EAAE,CAAC;YAC3B,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAExD,MAAM,QAAQ,GAAG,QAAmC,CAAC;YACrD,MAAM,UAAU,GACZ,QAAQ,EAAE,QAAoC,EAAE,MAAiB;gBAClE,QAAQ,EAAE,UAAqB;gBAChC,GAAG,CAAC;YACN,MAAM,YAAY,GAChB,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,0BAA0B,CAAC,YAAY,CACrC,MAAM,EACN,KAAK,EACL,YAAY,EACZ,UAAU,CACX,CAAC;YACF,MAAM,QAAQ,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAC9C,aAAoC,EACpC,MAkBC,EACD,MAAc,EACd,QAAgB;QAEhB,MAAM,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,WAAW,EACX,MAAM,EACN,UAAU,EACV,IAAI,EACJ,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,YAAY,GACb,GAAG,MAAM,CAAC;QAEX,0DAA0D;QAC1D,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,UAAU,CAAC,YAAY;gBAC1B,IAAI,wBAAwB,IAAI,sBAAsB,EAAE,CAAC;oBACvD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,EACL,MAAM,CACP,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;YAEJ,KAAK,UAAU,CAAC,SAAS;gBACvB,IAAI,mBAAmB,EAAE,CAAC;oBACxB,MAAM,eAAe,GAAmB;wBACtC,YAAY,EAAE,aAAa;wBAC3B,SAAS,EAAE,mBAAmB;wBAC9B,SAAS,EAAE,UAAU;wBACrB,OAAO,EAAE,QAAQ;wBACjB,QAAQ,EAAE,aAAa,IAAI,SAAS;qBACrC,CAAC;oBACF,OAAO,IAAI,CAAC,iBAAiB,CAC3B,aAAa,EACb,eAAe,EACf,KAAK,EACL,MAAM,CACP,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;YAEJ,KAAK,UAAU,CAAC,OAAO;gBACrB,6DAA6D;gBAC7D,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBAC7D,CAAC;oBACD,OAAO,IAAI,CAAC,eAAe,CACzB,aAAa,EACb,KAAK,EACL,cAAc,EACd,YAAY,KAAK,KAAK,EACtB,KAAK,EACL,MAAM,CACP,CAAC;gBACJ,CAAC;gBACD,gDAAgD;gBAChD,MAAM;QACV,CAAC;QAED,kCAAkC;QAClC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElC,sDAAsD;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC;gBAC3B,KAAK;gBACL,OAAO;gBACP,KAAK;gBACL,MAAM;gBACN,WAAW;gBACX,MAAM;gBACN,UAAU;gBACV,IAAI;gBACJ,eAAe,EAAE;oBACf,mBAAmB;oBACnB,UAAU;oBACV,QAAQ;oBACR,aAAa;iBACd;aACF,CAAC,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,kGAAkG;QAClG,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,qBAAqB,CAAC,OAAO;gBAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAE/D;gBACE,qEAAqE;gBACrE,oEAAoE;gBACpE,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,qEAAqE;IAErE;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAC3C,KAAc,EACd,MAAe,EACf,OAAiC;QAEjC,0EAA0E;QAC1E,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/C,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,OAAO,EAAE,CAAC,CAAC,wCAAwC;YACrD,CAAC;YACD,kBAAkB,CAChB,wBAAwB,EACxB,0BAA0B,EAC1B,aAAa,CAAC,eAAe,CAC9B,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,MAAM,iBAAiB,CAAC,SAAS,EAAE;YACxC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACrC,UAAkB,EAClB,KAAc,EACd,MAAe,EACf,OAAiC;QAEjC,0EAA0E;QAC1E,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/C,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,OAAO,EAAE,CAAC,CAAC,wCAAwC;YACrD,CAAC;YACD,kBAAkB,CAChB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,CAAC,eAAe,CAC9B,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QACxE,CAAC;QAED,kBAAkB,CAChB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,CAAC,eAAe,CAC9B,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAChC,UAAU;YACV,KAAK;YACL,MAAM;YACN,UAAU,EAAE,CAAC,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,+DAA+D;QAC/D,4EAA4E;QAC5E,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,YAAY,UAAU,gBAAgB,CAAC;QAEpD,MAAM,WAAW,GAA4B;YAC3C,KAAK,EAAE,KAAK,IAAI,EAAE;SACnB,CAAC;QAEF,yBAAyB;QACzB,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,qCAAqC;IACrC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAC/B,kBAAyC,EACzC,kBAAyC,EACzC,cAAsB,EACtB,KAAc,EACd,MAAe;QAEf,MAAM,iBAAiB,GAAsB;YAC3C,gBAAgB,EAAE,kBAAkB;YACpC,gBAAgB,EAAE,kBAAkB;YACpC,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,cAAc;SACtB,CAAC;QAEF,MAAM,cAAc,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,YAAY,kBAAkB,gBAAgB,CAAC;YAC5D,MAAM,WAAW,GAAG;gBAClB,GAAG,cAAc;gBACjB,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,EAAE,MAAM,IAAI,CAAC;aACpB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,OAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,4BAA4B,CAC3C,KAAK,EACL,YAAY,kBAAkB,gBAAgB,EAC9C,MAAM,CACP,CAAC;YAEF,IACE,QAAQ,YAAY,mBAAmB;gBACvC,QAAQ,YAAY,kBAAkB;gBACtC,QAAQ,YAAY,YAAY;gBAChC,QAAQ,YAAY,cAAc;gBAClC,QAAQ,YAAY,WAAW,EAC/B,CAAC;gBACD,MAAM,QAAQ,CAAC;YACjB,CAAC;YAED,IAAI,QAAQ,YAAY,qBAAqB,EAAE,CAAC;gBAC9C,KAAK,CACH,wBAAwB,EACxB,iCAAiC,kBAAkB,OAAO,kBAAkB,EAAE,EAC9E,EAAE,cAAc,EAAE,CACnB,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,kBAAkB,CAChB,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,CAAC,QAAQ,CACvB,CAAC,KAAK,CACL,kCAAkC,kBAAkB,OAAO,kBAAkB,EAAE,EAC/E,KAAK,CACN,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,YAAmC,EACnC,eAA+B,EAC/B,KAAc,EACd,MAAe;QAEf,MAAM,cAAc,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,YAAY,YAAY,gBAAgB,CAAC;YACtD,MAAM,WAAW,GAAG;gBAClB,GAAG,cAAc;gBACjB,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,EAAE,MAAM,IAAI,CAAC;aACpB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,OAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,4BAA4B,CAC3C,KAAK,EACL,YAAY,YAAY,gBAAgB,EACxC,MAAM,CACP,CAAC;YAEF,IACE,QAAQ,YAAY,mBAAmB;gBACvC,QAAQ,YAAY,kBAAkB;gBACtC,QAAQ,YAAY,YAAY;gBAChC,QAAQ,YAAY,cAAc;gBAClC,QAAQ,YAAY,WAAW,EAC/B,CAAC;gBACD,MAAM,QAAQ,CAAC;YACjB,CAAC;YAED,IAAI,QAAQ,YAAY,qBAAqB,EAAE,CAAC;gBAC9C,KAAK,CACH,wBAAwB,EACxB,MAAM,YAAY,uCAAuC,EACzD,EAAE,eAAe,EAAE,CACpB,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,kBAAkB,CAChB,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,CAAC,QAAQ,CACvB,CAAC,KAAK,CAAC,+BAA+B,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,YAAmC,EACnC,KAAa,EACb,eAAyB,EAAE,EAC3B,aAAsB,IAAI,EAC1B,KAAc,EACd,MAAe;QAEf,IAAI,MAAM,GAAG,YAAY,CAAC;QAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,QAAQ,YAAY,EAAE,CAAC;gBACrB,KAAK,qBAAqB,CAAC,SAAS;oBAClC,MAAM,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;oBAC5C,MAAM;gBACR,KAAK,qBAAqB,CAAC,MAAM;oBAC/B,MAAM,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;oBAClD,MAAM;gBACR;oBACE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;oBAClB,MAAM;YACV,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE3E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,YAAY,YAAY,gBAAgB,CAAC;YACtD,MAAM,WAAW,GAAG;gBAClB,GAAG,cAAc;gBACjB,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,EAAE,MAAM,IAAI,CAAC;aACpB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,OAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,4BAA4B,CAC3C,KAAK,EACL,YAAY,YAAY,gBAAgB,EACxC,MAAM,CACP,CAAC;YAEF,IACE,QAAQ,YAAY,mBAAmB;gBACvC,QAAQ,YAAY,kBAAkB;gBACtC,QAAQ,YAAY,YAAY;gBAChC,QAAQ,YAAY,cAAc;gBAClC,QAAQ,YAAY,WAAW,EAC/B,CAAC;gBACD,MAAM,QAAQ,CAAC;YACjB,CAAC;YAED,IAAI,QAAQ,YAAY,qBAAqB,EAAE,CAAC;gBAC9C,KAAK,CACH,wBAAwB,EACxB,MAAM,YAAY,wCAAwC,EAC1D,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,kBAAkB,CAChB,wBAAwB,EACxB,iBAAiB,EACjB,aAAa,CAAC,QAAQ,CACvB,CAAC,KAAK,CAAC,6BAA6B,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,CAAC,KAAK,CAAC,oBAAoB;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,aAAoC;QAEpC,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjC,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBACjE,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD;gBACE,OAAO,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,yBAAyB,CAC9B,aAAoC;QAEpC,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,qBAAqB,CAAC,SAAS,CAAC;YACrC,KAAK,qBAAqB,CAAC,MAAM;gBAC/B,OAAO,IAAI,CAAC;YACd,KAAK,qBAAqB,CAAC,KAAK,CAAC;YACjC,KAAK,qBAAqB,CAAC,OAAO,CAAC;YACnC,KAAK,qBAAqB,CAAC,KAAK,CAAC;YACjC,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,aAAoC;QAC7D,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,qBAAqB,CAAC,SAAS,CAAC;YACrC,KAAK,qBAAqB,CAAC,MAAM,CAAC;YAClC,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,OAAO,IAAI,CAAC;YACd,KAAK,qBAAqB,CAAC,OAAO,CAAC;YACnC,KAAK,qBAAqB,CAAC,KAAK,CAAC;YACjC,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"UniversalSearchService.js","sourceRoot":"","sources":["../../src/services/UniversalSearchService.ts"],"names":[],"mappings":"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"}
@@ -34,19 +34,30 @@
34
34
  import type { UniversalUpdateParams } from '../handlers/tool-configs/universal/types.js';
35
35
  import { AttioRecord } from '../types/attio.js';
36
36
  /**
37
- * Validation result containing warnings and actual persisted values
37
+ * Update metadata containing warnings, suggestions, and field verification results
38
+ *
39
+ * Renamed from ValidationResult to avoid confusion with:
40
+ * - FieldValidationHandler.ValidationResult (pre-update validation)
41
+ * - FieldPersistenceHandler.VerificationResult (post-update verification)
42
+ *
43
+ * @see Issue #984 extension - Verification API unification
38
44
  */
39
- export interface ValidationResult {
45
+ export interface UpdateMetadata {
40
46
  warnings: string[];
41
47
  actualValues: Record<string, unknown>;
42
48
  suggestions: string[];
49
+ /** Field verification details (Issue #984 extension) */
50
+ fieldVerification?: {
51
+ verified: boolean;
52
+ discrepancies: string[];
53
+ };
43
54
  }
44
55
  /**
45
- * Enhanced update result that includes validation metadata
56
+ * Enhanced update result that includes update metadata
46
57
  */
47
58
  export interface EnhancedUpdateResult {
48
59
  record: AttioRecord;
49
- validation: ValidationResult;
60
+ validation: UpdateMetadata;
50
61
  }
51
62
  /**
52
63
  * UniversalUpdateService provides centralized record update functionality
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalUpdateService.d.ts","sourceRoot":"","sources":["../../src/services/UniversalUpdateService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBhD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAkBD;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;WACU,0BAA0B,CACrC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,oBAAoB,CAAC;WA6DnB,YAAY,CACvB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,WAAW,CAAC;IA6DvB;;OAEG;mBACkB,mCAAmC;IAyLxD;;OAEG;mBACkB,qBAAqB;mBAmUrB,6BAA6B;CA2BnD"}
1
+ {"version":3,"file":"UniversalUpdateService.d.ts","sourceRoot":"","sources":["../../src/services/UniversalUpdateService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiB/C;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE;QAClB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAkBD;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;WACU,0BAA0B,CACrC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,oBAAoB,CAAC;WA6DnB,YAAY,CACvB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,WAAW,CAAC;IA6DvB;;OAEG;mBACkB,mCAAmC;IAgKxD;;OAEG;mBACkB,qBAAqB;mBA2OrB,6BAA6B;CA2BnD"}