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
@@ -33,11 +33,11 @@
33
33
  */
34
34
  import { UniversalResourceType } from '../handlers/tool-configs/universal/types.js';
35
35
  import { UniversalValidationError, ErrorType, } from '../handlers/tool-configs/universal/schemas.js';
36
- import { debug, error as logError } from '../utils/logger.js';
36
+ import { debug } from '../utils/logger.js';
37
37
  // Import shared type definitions for better type safety
38
- import { createNotFoundError, isAttributeObject, } from '../types/universal-service-types.js';
38
+ import { createNotFoundError, } from '../types/universal-service-types.js';
39
39
  // Import services
40
- import { ValidationService } from './ValidationService.js';
40
+ import { ValidationService } from '../services/ValidationService.js';
41
41
  // Import field mapping utilities
42
42
  import { mapRecordFields, validateResourceType, validateFields, getValidResourceTypes, mapTaskFields, } from '../handlers/tool-configs/universal/field-mapper.js';
43
43
  // Import validation utilities
@@ -218,45 +218,24 @@ export class UniversalUpdateService {
218
218
  const { mapped: mappedData } = await mapRecordFields(resource_type, values);
219
219
  const attioPayload = { values: mappedData };
220
220
  const { UpdateValidation } = await import('./update/UpdateValidation.js');
221
+ const { FieldPersistenceHandler } = await import('./update/FieldPersistenceHandler.js');
221
222
  const sanitizedData = UpdateValidation.sanitizeSpecialCharacters(attioPayload.values);
222
- const verification = await UpdateValidation.verifyFieldPersistence(resource_type, record_id, sanitizedData);
223
- // Add field persistence warnings to validation result
224
- if (verification.warnings.length > 0) {
225
- validationResult.warnings.push(...verification.warnings);
226
- }
227
- if (!verification.verified) {
228
- // Issue #798: Only log warnings in STRICT mode or for semantic value mismatches
229
- // Cosmetic format differences (e.g., {stage: "Demo"} vs {stage: {title: "Demo"}}) are suppressed by default
230
- const isStrictMode = process.env.STRICT_FIELD_VALIDATION === 'true';
231
- if (isStrictMode) {
232
- // STRICT mode: log all discrepancies
233
- validationResult.warnings.push(...verification.discrepancies.map((discrepancy) => `Field persistence issue: ${discrepancy}`));
234
- }
235
- else {
236
- // Non-STRICT mode: only log discrepancies that appear to be semantic value changes
237
- // Filter out format-only mismatches by checking if both values contain similar semantic content
238
- const semanticMismatches = verification.discrepancies.filter((d) => {
239
- // Extract expected and actual from: Field "X" persistence mismatch: expected Y, got Z
240
- const match = d.match(/expected (.+?), got (.+?)$/);
241
- if (!match)
242
- return true; // Log if we can't parse (safety)
243
- const [, expectedStr, actualStr] = match;
244
- try {
245
- // If one is a string and the other is an object containing that string, it's cosmetic
246
- const isCosmetic = (expectedStr.includes('"') &&
247
- actualStr.includes(expectedStr.replace(/^"|"$/g, ''))) ||
248
- (actualStr.includes('"') &&
249
- expectedStr.includes(actualStr.replace(/^"|"$/g, '')));
250
- return !isCosmetic;
251
- }
252
- catch {
253
- return true; // Log on parse errors (safety)
254
- }
255
- });
256
- if (semanticMismatches.length > 0) {
257
- validationResult.warnings.push(...semanticMismatches.map((discrepancy) => `Field persistence issue: ${discrepancy}`));
258
- }
259
- }
223
+ // UNIFIED: Single call to FieldPersistenceHandler (Issue #984 extension)
224
+ // Eliminates duplicate semantic filtering logic by using shared implementation
225
+ const verification = await FieldPersistenceHandler.verifyPersistence(resource_type, record_id, sanitizedData, validationResult.actualValues, // Pass actual values from line 326
226
+ {
227
+ strict: process.env.STRICT_FIELD_VALIDATION === 'true',
228
+ skip: false,
229
+ });
230
+ // Surface complete VerificationResult into validationResult
231
+ validationResult.warnings.push(...verification.warnings);
232
+ validationResult.fieldVerification = {
233
+ verified: verification.verified,
234
+ discrepancies: verification.discrepancies,
235
+ };
236
+ // Also add discrepancies as warnings for backward compatibility
237
+ if (verification.discrepancies.length > 0) {
238
+ validationResult.warnings.push(...verification.discrepancies.map((discrepancy) => `Field persistence issue: ${discrepancy}`));
260
239
  }
261
240
  }
262
241
  catch (error) {
@@ -300,39 +279,9 @@ export class UniversalUpdateService {
300
279
  suggestions: truncated.join('\n'),
301
280
  });
302
281
  }
303
- // Fetch available attributes for attribute-aware mapping (optional; best-effort)
304
- let availableAttributes;
305
- try {
306
- const { UniversalMetadataService } = await import('./UniversalMetadataService.js');
307
- const options = resource_type === UniversalResourceType.RECORDS
308
- ? {
309
- objectSlug: actualRecordData?.object ||
310
- actualRecordData?.object_api_slug ||
311
- 'records',
312
- }
313
- : resource_type === UniversalResourceType.DEALS
314
- ? { objectSlug: 'deals' }
315
- : undefined;
316
- const attributeResult = await UniversalMetadataService.discoverAttributesForResourceType(resource_type, options);
317
- const attrs = attributeResult?.attributes ?? [];
318
- /**
319
- * **Type Guard Usage**: Using isAttributeObject type guard instead of inline casting
320
- * for safer attribute processing and better runtime type validation.
321
- */
322
- availableAttributes = Array.from(new Set(attrs.flatMap((a) => {
323
- if (!isAttributeObject(a)) {
324
- return [];
325
- }
326
- return [a.api_slug, a.title, a.name].filter((s) => typeof s === 'string');
327
- }))).map((s) => s.toLowerCase());
328
- }
329
- catch (error) {
330
- debug('UniversalUpdateService', 'Failed to fetch attributes', {
331
- resource_type,
332
- error: error instanceof Error ? error.message : String(error),
333
- });
334
- availableAttributes = undefined;
335
- }
282
+ // Issue #984: Fetch metadata once using MetadataResolver
283
+ const { MetadataResolver } = await import('./update/MetadataResolver.js');
284
+ const { metadataMap, availableAttributes } = await MetadataResolver.fetchMetadata(resource_type, actualRecordData);
336
285
  // Map field names to correct ones with collision detection
337
286
  const mappingResult = await mapRecordFields(resource_type, values, availableAttributes);
338
287
  if (mappingResult.errors && mappingResult.errors.length > 0) {
@@ -378,88 +327,67 @@ export class UniversalUpdateService {
378
327
  });
379
328
  }
380
329
  }
381
- let updatedRecord;
382
- switch (resource_type) {
383
- case UniversalResourceType.COMPANIES: {
384
- const { CompanyUpdateStrategy } = await import('./update/strategies/CompanyUpdateStrategy.js');
385
- const strategy = new CompanyUpdateStrategy();
386
- updatedRecord = await strategy.update(record_id, attioPayload.values, resource_type);
387
- break;
388
- }
389
- case UniversalResourceType.LISTS: {
390
- const { ListUpdateStrategy } = await import('./update/strategies/ListUpdateStrategy.js');
391
- const strategy = new ListUpdateStrategy();
392
- updatedRecord = await strategy.update(record_id, attioPayload.values, resource_type);
393
- break;
394
- }
395
- case UniversalResourceType.PEOPLE: {
396
- const { PersonUpdateStrategy } = await import('./update/strategies/PersonUpdateStrategy.js');
397
- const strategy = new PersonUpdateStrategy();
398
- updatedRecord = await strategy.update(record_id, attioPayload.values, resource_type);
399
- break;
400
- }
401
- case UniversalResourceType.RECORDS:
402
- case UniversalResourceType.DEALS: {
403
- const { RecordUpdateStrategy } = await import('./update/strategies/RecordUpdateStrategy.js');
404
- const strategy = new RecordUpdateStrategy();
405
- /**
406
- * **Safe Property Access**: Using type-safe property access for object slug
407
- * extraction while providing sensible defaults.
408
- */
409
- const recordsObjectSlug = (typeof actualRecordData?.object === 'string'
410
- ? actualRecordData.object
411
- : undefined) ||
412
- (typeof actualRecordData?.object_api_slug === 'string'
413
- ? actualRecordData.object_api_slug
414
- : undefined) ||
415
- 'records';
416
- updatedRecord = await strategy.update(record_id, attioPayload.values, resource_type, { objectSlug: recordsObjectSlug });
417
- break;
418
- }
419
- case UniversalResourceType.TASKS: {
420
- const { TaskUpdateStrategy } = await import('./update/strategies/TaskUpdateStrategy.js');
421
- const strategy = new TaskUpdateStrategy();
422
- updatedRecord = await strategy.update(record_id, attioPayload.values, resource_type);
423
- break;
424
- }
425
- default: {
426
- updatedRecord = await this.handleUnsupportedResourceType(resource_type, params);
427
- break;
428
- }
429
- }
430
- const { ResponseNormalizer } = await import('./update/ResponseNormalizer.js');
431
- const normalizedRecord = ResponseNormalizer.normalizeResponseFormat(resource_type, updatedRecord);
432
- // Field persistence verification (enabled by default)
433
- // WARNING: Disabling this can cause silent data consistency issues
434
- // Skip verification if called from validation-aware path to avoid duplication
435
- if (!skipVerification &&
436
- process.env.ENABLE_FIELD_VERIFICATION !== 'false') {
437
- try {
438
- const verification = await UpdateValidation.verifyFieldPersistence(resource_type, record_id, sanitizedData);
439
- if (verification.warnings.length > 0) {
440
- logError('UniversalUpdateService', `Field persistence warnings for ${resource_type} ${record_id}:`, verification.warnings);
330
+ // FEATURE: Auto-transform values for Issue #980 UX improvements
331
+ // Transforms: status titles → {status_id: uuid}, single values → arrays for multi-select
332
+ try {
333
+ const { transformRecordValues, mayNeedTransformation } = await import('./value-transformer/index.js');
334
+ // Quick check to avoid unnecessary async work
335
+ if (mayNeedTransformation(attioPayload.values, resource_type)) {
336
+ const transformResult = await transformRecordValues(attioPayload.values, {
337
+ resourceType: resource_type,
338
+ operation: 'update',
339
+ recordId: record_id,
340
+ // Issue #984: Pass metadata to avoid duplicate fetch
341
+ attributeMetadata: metadataMap,
342
+ });
343
+ attioPayload.values = transformResult.data;
344
+ // Log transformations for debugging
345
+ if (transformResult.transformations.length > 0) {
346
+ debug('UniversalUpdateService', 'Value transformations applied', {
347
+ transformations: transformResult.transformations.map((t) => ({
348
+ field: t.field,
349
+ type: t.type,
350
+ })),
351
+ });
441
352
  }
442
- if (!verification.verified) {
443
- // Use structured logging for field persistence verification failures
444
- logError('UniversalUpdateService', 'Field persistence verification failed', new Error('Verification failed'), {
445
- resource_type,
446
- record_id,
447
- discrepancies: verification.discrepancies,
353
+ if (transformResult.warnings.length > 0) {
354
+ debug('UniversalUpdateService', 'Value transformation warnings', {
355
+ warnings: transformResult.warnings,
448
356
  });
449
- // If strict validation is enabled, fail the operation
450
- // WARNING: This environment variable changes runtime behavior
451
- // Production Impact: Operations may fail that previously succeeded
452
- if (process.env.STRICT_FIELD_VALIDATION === 'true') {
453
- throw new UniversalValidationError(`Field persistence verification failed: ${verification.discrepancies.join('; ')}`, ErrorType.API_ERROR, {
454
- field: 'field_verification',
455
- suggestion: 'Check that the field values are correctly formatted and supported by the API',
456
- });
457
- }
458
357
  }
459
358
  }
460
- catch (error) {
461
- logError('UniversalUpdateService', 'Field persistence verification error', error);
359
+ }
360
+ catch (transformError) {
361
+ // If transformation throws (e.g., invalid status value), propagate the error
362
+ if (transformError instanceof Error) {
363
+ throw new UniversalValidationError(transformError.message, ErrorType.USER_ERROR, {
364
+ suggestion: 'Check that field values match the expected format. Use records_get_attribute_options to see valid options.',
365
+ field: undefined,
366
+ cause: undefined,
367
+ });
462
368
  }
369
+ throw transformError;
370
+ }
371
+ // Capture post-transform data for verification (PR #981 review feedback)
372
+ // This ensures verification compares what was actually sent to API
373
+ const dataForVerification = { ...attioPayload.values };
374
+ // Issue #984: Use UpdateOrchestrator for strategy dispatch
375
+ const { UpdateOrchestrator } = await import('./update/UpdateOrchestrator.js');
376
+ // Use centralized object slug extraction (fixes DEALS slug inconsistency)
377
+ // MetadataResolver already imported at line 468
378
+ const objectSlug = MetadataResolver.extractObjectSlug(resource_type, actualRecordData);
379
+ const updatedRecord = await UpdateOrchestrator.executeUpdate({
380
+ resourceType: resource_type,
381
+ recordId: record_id,
382
+ sanitizedValues: attioPayload.values,
383
+ objectSlug,
384
+ });
385
+ const { ResponseNormalizer } = await import('./update/ResponseNormalizer.js');
386
+ const normalizedRecord = ResponseNormalizer.normalizeResponseFormat(resource_type, updatedRecord);
387
+ // Issue #984: Use FieldPersistenceHandler for verification
388
+ if (!skipVerification) {
389
+ const { FieldPersistenceHandler } = await import('./update/FieldPersistenceHandler.js');
390
+ await FieldPersistenceHandler.verifyPersistence(resource_type, record_id, dataForVerification, normalizedRecord.values || {}, { strict: false });
463
391
  }
464
392
  return normalizedRecord;
465
393
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalUpdateService.js","sourceRoot":"","sources":["../../src/services/UniversalUpdateService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UniversalUpdateService.js","sourceRoot":"","sources":["../../src/services/UniversalUpdateService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/services/create/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKtE;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAyB3C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAiBhD;AAED;;GAEG;AACH,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,gBAAgB,IAAI,aAAa;IAIjC,iBAAiB,IAAI,OAAO;CAG7B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,0BAAiC,CAAC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/services/create/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKtE;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAyB3C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAkBhD;AAED;;GAEG;AACH,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,gBAAgB,IAAI,aAAa;IAIjC,iBAAiB,IAAI,OAAO;CAG7B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,0BAAiC,CAAC"}
@@ -48,7 +48,8 @@ export function getCreateService() {
48
48
  return new MockCreateService();
49
49
  }
50
50
  // Fail fast if real API requested but no credentials available
51
- if (!process.env.ATTIO_API_KEY) {
51
+ // Issue #928: Support both ATTIO_API_KEY and ATTIO_ACCESS_TOKEN (OAuth alternative)
52
+ if (!process.env.ATTIO_API_KEY && !process.env.ATTIO_ACCESS_TOKEN) {
52
53
  throw new Error('ATTIO_API_KEY is required for real API calls. Set USE_MOCK_DATA=true to use mock data instead.');
53
54
  }
54
55
  debug('CreateServiceFactory', 'Selected AttioCreateService');
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/services/create/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,uCAAuC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAExD,kDAAkD;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAElD,+DAA+D;IAC/D,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM;QACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM;QACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;IAElC,mDAAmD;IACnD,KAAK,CAAC,sBAAsB,EAAE,uBAAuB,EAAE;QACrD,MAAM;QACN,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACxC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC9C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;QAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;KAC/B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IAErC,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAC;QAC5D,OAAO,IAAI,iBAAiB,EAAE,CAAC;IACjC,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,EAAE,6BAA6B,CAAC,CAAC;IAC7D,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,wBAAwB;IACnC,gBAAgB;QACd,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB;QACf,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/services/create/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,uCAAuC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAExD,kDAAkD;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAElD,+DAA+D;IAC/D,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM;QACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM;QACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;IAElC,mDAAmD;IACnD,KAAK,CAAC,sBAAsB,EAAE,uBAAuB,EAAE;QACrD,MAAM;QACN,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACxC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC9C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;QAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;KAC/B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IAErC,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAC;QAC5D,OAAO,IAAI,iBAAiB,EAAE,CAAC;IACjC,CAAC;IAED,+DAA+D;IAC/D,oFAAoF;IACpF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,EAAE,6BAA6B,CAAC,CAAC;IAC7D,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,wBAAwB;IACnC,gBAAgB;QACd,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB;QACf,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Service for retrieving attribute options (select, multi-select, status).
3
+ * Provides a unified interface for fetching valid options from Attio.
4
+ */
5
+ import type { AttioSelectOption, AttioStatusOption } from '../../api/types.js';
6
+ /**
7
+ * Result structure for attribute options
8
+ */
9
+ export interface AttributeOptionsResult {
10
+ options: (AttioSelectOption | AttioStatusOption)[];
11
+ attributeType: 'select' | 'status';
12
+ }
13
+ /**
14
+ * Service for fetching attribute options from Attio.
15
+ * Handles both select/multi-select and status attribute types.
16
+ */
17
+ export declare class AttributeOptionsService {
18
+ /**
19
+ * Gets options for any option-based attribute (select, multi-select, status).
20
+ * Auto-detects attribute type by trying select first, then status.
21
+ *
22
+ * @param objectSlug - The object slug (e.g., "companies", "people", "deals")
23
+ * @param attributeSlug - The attribute slug (e.g., "channel", "stage")
24
+ * @param showArchived - Whether to include archived options
25
+ * @returns Options with attribute type information
26
+ */
27
+ static getOptions(objectSlug: string, attributeSlug: string, showArchived?: boolean): Promise<AttributeOptionsResult>;
28
+ /**
29
+ * Gets options for a select attribute on a list.
30
+ *
31
+ * @param listId - The list ID or slug
32
+ * @param attributeSlug - The attribute slug
33
+ * @param showArchived - Whether to include archived options
34
+ * @returns Options with attribute type information
35
+ */
36
+ static getListOptions(listId: string, attributeSlug: string, showArchived?: boolean): Promise<AttributeOptionsResult>;
37
+ }
38
+ //# sourceMappingURL=AttributeOptionsService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributeOptionsService.d.ts","sourceRoot":"","sources":["../../../src/services/metadata/AttributeOptionsService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG3E;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,EAAE,CAAC;IACnD,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACpC;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAClC;;;;;;;;OAQG;WACU,UAAU,CACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,sBAAsB,CAAC;IA6ElC;;;;;;;OAOG;WACU,cAAc,CACzB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,sBAAsB,CAAC;CAqBnC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Service for retrieving attribute options (select, multi-select, status).
3
+ * Provides a unified interface for fetching valid options from Attio.
4
+ */
5
+ import { getSelectOptions, getListSelectOptions, getStatusOptions, } from '../../api/attio-client.js';
6
+ import { error as logError } from '../../utils/logger.js';
7
+ /**
8
+ * Service for fetching attribute options from Attio.
9
+ * Handles both select/multi-select and status attribute types.
10
+ */
11
+ export class AttributeOptionsService {
12
+ /**
13
+ * Gets options for any option-based attribute (select, multi-select, status).
14
+ * Auto-detects attribute type by trying select first, then status.
15
+ *
16
+ * @param objectSlug - The object slug (e.g., "companies", "people", "deals")
17
+ * @param attributeSlug - The attribute slug (e.g., "channel", "stage")
18
+ * @param showArchived - Whether to include archived options
19
+ * @returns Options with attribute type information
20
+ */
21
+ static async getOptions(objectSlug, attributeSlug, showArchived) {
22
+ let selectOptions = [];
23
+ let selectError = null;
24
+ let statusError = null;
25
+ // Try select endpoint first (covers select and multi-select)
26
+ try {
27
+ selectOptions = await getSelectOptions(objectSlug, attributeSlug, showArchived);
28
+ }
29
+ catch (err) {
30
+ selectError = err;
31
+ }
32
+ // Select succeeded with results → return as select
33
+ if (!selectError && selectOptions.length > 0) {
34
+ return {
35
+ options: selectOptions,
36
+ attributeType: 'select',
37
+ };
38
+ }
39
+ // Select empty or failed → try status endpoint
40
+ // This handles status attributes like deals.stage where /options returns []
41
+ // but /statuses returns actual values (Issue #987)
42
+ try {
43
+ const statuses = await getStatusOptions(objectSlug, attributeSlug, showArchived);
44
+ // Status endpoint succeeded → treat as status type (even if empty)
45
+ return {
46
+ options: statuses,
47
+ attributeType: 'status',
48
+ };
49
+ }
50
+ catch (err) {
51
+ statusError = err;
52
+ logError('AttributeOptionsService', `Status endpoint failed for ${objectSlug}.${attributeSlug}`, err, { objectSlug, attributeSlug });
53
+ }
54
+ // Status failed but select succeeded with empty → return empty select
55
+ // (legitimate case for unconfigured select attributes)
56
+ if (!selectError) {
57
+ return {
58
+ options: selectOptions,
59
+ attributeType: 'select',
60
+ };
61
+ }
62
+ // Both failed → throw with detailed error context
63
+ const selectMsg = selectError instanceof Error ? selectError.message : String(selectError);
64
+ const statusMsg = statusError instanceof Error ? statusError.message : String(statusError);
65
+ logError('AttributeOptionsService', `Failed to get options for ${objectSlug}.${attributeSlug}`, selectError instanceof Error ? selectError : new Error(selectMsg), { selectError: selectMsg, statusError: statusMsg });
66
+ throw new Error(`Attribute "${attributeSlug}" on "${objectSlug}" does not support options. ` +
67
+ `This may not be a select, multi-select, or status attribute. ` +
68
+ `Select error: ${selectMsg}; Status error: ${statusMsg}`);
69
+ }
70
+ /**
71
+ * Gets options for a select attribute on a list.
72
+ *
73
+ * @param listId - The list ID or slug
74
+ * @param attributeSlug - The attribute slug
75
+ * @param showArchived - Whether to include archived options
76
+ * @returns Options with attribute type information
77
+ */
78
+ static async getListOptions(listId, attributeSlug, showArchived) {
79
+ try {
80
+ const options = await getListSelectOptions(listId, attributeSlug, showArchived);
81
+ return {
82
+ options,
83
+ attributeType: 'select',
84
+ };
85
+ }
86
+ catch (err) {
87
+ logError('AttributeOptionsService', `Failed to get list options for ${listId}.${attributeSlug}`, err, { listId, attributeSlug });
88
+ throw err;
89
+ }
90
+ }
91
+ }
92
+ //# sourceMappingURL=AttributeOptionsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributeOptionsService.js","sourceRoot":"","sources":["../../../src/services/metadata/AttributeOptionsService.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export { DefaultMetadataErrorService } from './MetadataErrorService.js';
7
7
  export { InMemoryMetadataMetricsService } from './MetadataMetricsService.js';
8
8
  export { DefaultMetadataRecordService } from './MetadataRecordService.js';
9
9
  export { DefaultMetadataTransformService } from './MetadataTransformService.js';
10
+ export { AttributeOptionsService, type AttributeOptionsResult, } from './AttributeOptionsService.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/metadata/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,6BAA6B,IAAI,oBAAoB,CAoBpE;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/metadata/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,6BAA6B,IAAI,oBAAoB,CAoBpE;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EACL,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC"}
@@ -26,4 +26,5 @@ export { DefaultMetadataErrorService } from './MetadataErrorService.js';
26
26
  export { InMemoryMetadataMetricsService } from './MetadataMetricsService.js';
27
27
  export { DefaultMetadataRecordService } from './MetadataRecordService.js';
28
28
  export { DefaultMetadataTransformService } from './MetadataTransformService.js';
29
+ export { AttributeOptionsService, } from './AttributeOptionsService.js';
29
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAGhF,MAAM,UAAU,6BAA6B;IAC3C,MAAM,YAAY,GAAG,IAAI,2BAA2B,EAAE,CAAC;IACvD,MAAM,cAAc,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,2BAA2B,EAAE,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAC/D,MAAM,gBAAgB,GAAG,IAAI,+BAA+B,CAC1D,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,CACb,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,4BAA4B,CAAC,YAAY,CAAC,CAAC;IAErE,OAAO;QACL,YAAY;QACZ,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,cAAc;KACf,CAAC;AACJ,CAAC;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAGhF,MAAM,UAAU,6BAA6B;IAC3C,MAAM,YAAY,GAAG,IAAI,2BAA2B,EAAE,CAAC;IACvD,MAAM,cAAc,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,2BAA2B,EAAE,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAC/D,MAAM,gBAAgB,GAAG,IAAI,+BAA+B,CAC1D,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,CACb,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,4BAA4B,CAAC,YAAY,CAAC,CAAC;IAErE,OAAO;QACL,YAAY;QACZ,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,cAAc;KACf,CAAC;AACJ,CAAC;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EACL,uBAAuB,GAExB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * QueryApiService - Attio Query API operations for advanced search
3
+ *
4
+ * Issue #935: Extracted from UniversalSearchService.ts to reduce file size
5
+ * Handles relationship, timeframe, and content searches using the Query API
6
+ */
7
+ import { AttioRecord } from '../../types/attio.js';
8
+ import { UniversalResourceType } from '../../handlers/tool-configs/universal/types.js';
9
+ import { TimeframeQuery } from '../../utils/filters/types.js';
10
+ /**
11
+ * Query API Service for advanced search operations
12
+ */
13
+ export declare class QueryApiService {
14
+ /**
15
+ * Search records by relationship to another record
16
+ */
17
+ static searchByRelationship(sourceResourceType: UniversalResourceType, targetResourceType: UniversalResourceType, targetRecordId: string, limit?: number, offset?: number): Promise<AttioRecord[]>;
18
+ /**
19
+ * Search records within a specific timeframe
20
+ */
21
+ static searchByTimeframe(resourceType: UniversalResourceType, timeframeConfig: TimeframeQuery, limit?: number, offset?: number): Promise<AttioRecord[]>;
22
+ /**
23
+ * Search records by content across multiple fields
24
+ */
25
+ static searchByContent(resourceType: UniversalResourceType, query: string, searchFields?: string[], useOrLogic?: boolean, limit?: number, offset?: number): Promise<AttioRecord[]>;
26
+ }
27
+ //# sourceMappingURL=QueryApiService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryApiService.d.ts","sourceRoot":"","sources":["../../../src/services/search/QueryApiService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAgBnF,OAAO,EAAqB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA6D7E;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;WACU,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;IA+BzB;;OAEG;WACU,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;IAuBzB;;OAEG;WACU,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;CAqC1B"}