attio-mcp 1.3.6 → 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 (293) hide show
  1. package/CHANGELOG.md +236 -2
  2. package/README.md +106 -266
  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 +42 -20
  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/cli/commands/generate-skill.d.ts +28 -0
  14. package/dist/cli/commands/generate-skill.d.ts.map +1 -0
  15. package/dist/cli/commands/generate-skill.js +101 -0
  16. package/dist/cli/commands/generate-skill.js.map +1 -0
  17. package/dist/cli/discover.js +65 -0
  18. package/dist/cli/discover.js.map +1 -1
  19. package/dist/config/deal-defaults.d.ts +2 -2
  20. package/dist/config/deal-defaults.d.ts.map +1 -1
  21. package/dist/config/deal-defaults.js +15 -6
  22. package/dist/config/deal-defaults.js.map +1 -1
  23. package/dist/config/tool-aliases.d.ts +12 -0
  24. package/dist/config/tool-aliases.d.ts.map +1 -1
  25. package/dist/config/tool-aliases.js +213 -69
  26. package/dist/config/tool-aliases.js.map +1 -1
  27. package/dist/constants/tool-names.d.ts +84 -0
  28. package/dist/constants/tool-names.d.ts.map +1 -0
  29. package/dist/constants/tool-names.js +81 -0
  30. package/dist/constants/tool-names.js.map +1 -0
  31. package/dist/constants/universal.constants.d.ts +24 -0
  32. package/dist/constants/universal.constants.d.ts.map +1 -1
  33. package/dist/constants/universal.constants.js +81 -9
  34. package/dist/constants/universal.constants.js.map +1 -1
  35. package/dist/handlers/tool-configs/universal/batch-search.js +4 -4
  36. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.d.ts +26 -4
  37. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.d.ts.map +1 -1
  38. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js +181 -21
  39. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js.map +1 -1
  40. package/dist/handlers/tool-configs/universal/core/crud-operations.js +13 -13
  41. package/dist/handlers/tool-configs/universal/core/crud-operations.js.map +1 -1
  42. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js +3 -3
  43. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js.map +1 -1
  44. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.d.ts +17 -0
  45. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.d.ts.map +1 -0
  46. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.js +118 -0
  47. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.js.map +1 -0
  48. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.d.ts +14 -0
  49. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.d.ts.map +1 -0
  50. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.js +77 -0
  51. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.js.map +1 -0
  52. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.d.ts +24 -0
  53. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.d.ts.map +1 -0
  54. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.js +35 -0
  55. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.js.map +1 -0
  56. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.d.ts +15 -0
  57. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.d.ts.map +1 -0
  58. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.js +108 -0
  59. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.js.map +1 -0
  60. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.d.ts +14 -0
  61. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.d.ts.map +1 -0
  62. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.js +91 -0
  63. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.js.map +1 -0
  64. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.d.ts +14 -0
  65. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.d.ts.map +1 -0
  66. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.js +118 -0
  67. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.js.map +1 -0
  68. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.d.ts +77 -0
  69. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.d.ts.map +1 -0
  70. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.js +42 -0
  71. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.js.map +1 -0
  72. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.d.ts +15 -0
  73. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.d.ts.map +1 -0
  74. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.js +109 -0
  75. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.js.map +1 -0
  76. package/dist/handlers/tool-configs/universal/core/index.d.ts +63 -22
  77. package/dist/handlers/tool-configs/universal/core/index.d.ts.map +1 -1
  78. package/dist/handlers/tool-configs/universal/core/index.js +24 -22
  79. package/dist/handlers/tool-configs/universal/core/index.js.map +1 -1
  80. package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts +43 -1
  81. package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts.map +1 -1
  82. package/dist/handlers/tool-configs/universal/core/metadata-operations.js +117 -11
  83. package/dist/handlers/tool-configs/universal/core/metadata-operations.js.map +1 -1
  84. package/dist/handlers/tool-configs/universal/core/notes-operations.js +12 -12
  85. package/dist/handlers/tool-configs/universal/core/notes-operations.js.map +1 -1
  86. package/dist/handlers/tool-configs/universal/core/record-details-operations.js +3 -3
  87. package/dist/handlers/tool-configs/universal/core/record-details-operations.js.map +1 -1
  88. package/dist/handlers/tool-configs/universal/core/search-operations.js +4 -4
  89. package/dist/handlers/tool-configs/universal/core/search-operations.js.map +1 -1
  90. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.d.ts.map +1 -1
  91. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.js +32 -9
  92. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.js.map +1 -1
  93. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.d.ts.map +1 -1
  94. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.js +45 -6
  95. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.js.map +1 -1
  96. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.d.ts.map +1 -1
  97. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.js +36 -5
  98. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.js.map +1 -1
  99. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.d.ts +1 -1
  100. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.d.ts.map +1 -1
  101. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.js +17 -1
  102. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.js.map +1 -1
  103. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.d.ts.map +1 -1
  104. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.js +3 -1
  105. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.js.map +1 -1
  106. package/dist/handlers/tool-configs/universal/index.d.ts +75 -34
  107. package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
  108. package/dist/handlers/tool-configs/universal/index.js +58 -58
  109. package/dist/handlers/tool-configs/universal/index.js.map +1 -1
  110. package/dist/handlers/tool-configs/universal/operations/advanced-search.d.ts.map +1 -1
  111. package/dist/handlers/tool-configs/universal/operations/advanced-search.js +5 -4
  112. package/dist/handlers/tool-configs/universal/operations/advanced-search.js.map +1 -1
  113. package/dist/handlers/tool-configs/universal/operations/batch-operations.js +3 -3
  114. package/dist/handlers/tool-configs/universal/operations/content-search.js +3 -3
  115. package/dist/handlers/tool-configs/universal/operations/index.d.ts +10 -10
  116. package/dist/handlers/tool-configs/universal/operations/index.js +15 -15
  117. package/dist/handlers/tool-configs/universal/operations/relationship-search.js +3 -3
  118. package/dist/handlers/tool-configs/universal/operations/timeframe-search.js +3 -3
  119. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.d.ts.map +1 -1
  120. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js +5 -2
  121. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js.map +1 -1
  122. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts +29 -0
  123. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts.map +1 -1
  124. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js +28 -0
  125. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js.map +1 -1
  126. package/dist/handlers/tool-configs/universal/schemas.d.ts +1 -1
  127. package/dist/handlers/tool-configs/universal/schemas.d.ts.map +1 -1
  128. package/dist/handlers/tool-configs/universal/schemas.js +1 -1
  129. package/dist/handlers/tool-configs/universal/schemas.js.map +1 -1
  130. package/dist/handlers/tool-configs/universal/shared-handlers.d.ts +20 -1
  131. package/dist/handlers/tool-configs/universal/shared-handlers.d.ts.map +1 -1
  132. package/dist/handlers/tool-configs/universal/shared-handlers.js +216 -0
  133. package/dist/handlers/tool-configs/universal/shared-handlers.js.map +1 -1
  134. package/dist/handlers/tool-configs/universal/smithery-diagnostics.js +2 -2
  135. package/dist/handlers/tool-configs/universal/types.d.ts +9 -0
  136. package/dist/handlers/tool-configs/universal/types.d.ts.map +1 -1
  137. package/dist/handlers/tool-configs/universal/validators/schema-validator.d.ts +11 -0
  138. package/dist/handlers/tool-configs/universal/validators/schema-validator.d.ts.map +1 -1
  139. package/dist/handlers/tool-configs/universal/validators/schema-validator.js +63 -9
  140. package/dist/handlers/tool-configs/universal/validators/schema-validator.js.map +1 -1
  141. package/dist/handlers/tools/dispatcher/core.d.ts.map +1 -1
  142. package/dist/handlers/tools/dispatcher/core.js +5 -1
  143. package/dist/handlers/tools/dispatcher/core.js.map +1 -1
  144. package/dist/handlers/tools/formatters.d.ts +8 -1
  145. package/dist/handlers/tools/formatters.d.ts.map +1 -1
  146. package/dist/handlers/tools/formatters.js +30 -14
  147. package/dist/handlers/tools/formatters.js.map +1 -1
  148. package/dist/handlers/tools/registry.d.ts +125 -84
  149. package/dist/handlers/tools/registry.d.ts.map +1 -1
  150. package/dist/handlers/tools/registry.js +14 -9
  151. package/dist/handlers/tools/registry.js.map +1 -1
  152. package/dist/handlers/tools/standards/index.d.ts.map +1 -1
  153. package/dist/handlers/tools/standards/index.js +19 -11
  154. package/dist/handlers/tools/standards/index.js.map +1 -1
  155. package/dist/objects/companies/attributes.d.ts +5 -0
  156. package/dist/objects/companies/attributes.d.ts.map +1 -1
  157. package/dist/objects/companies/attributes.js +45 -31
  158. package/dist/objects/companies/attributes.js.map +1 -1
  159. package/dist/server/createServer.d.ts.map +1 -1
  160. package/dist/server/createServer.js +4 -3
  161. package/dist/server/createServer.js.map +1 -1
  162. package/dist/services/ErrorService.js +3 -3
  163. package/dist/services/ErrorService.js.map +1 -1
  164. package/dist/services/UniversalCreateService.d.ts.map +1 -1
  165. package/dist/services/UniversalCreateService.js +136 -12
  166. package/dist/services/UniversalCreateService.js.map +1 -1
  167. package/dist/services/UniversalSearchService.d.ts +4 -25
  168. package/dist/services/UniversalSearchService.d.ts.map +1 -1
  169. package/dist/services/UniversalSearchService.js +14 -324
  170. package/dist/services/UniversalSearchService.js.map +1 -1
  171. package/dist/services/UniversalUpdateService.d.ts +15 -4
  172. package/dist/services/UniversalUpdateService.d.ts.map +1 -1
  173. package/dist/services/UniversalUpdateService.js +79 -151
  174. package/dist/services/UniversalUpdateService.js.map +1 -1
  175. package/dist/services/create/factory.d.ts.map +1 -1
  176. package/dist/services/create/factory.js +2 -1
  177. package/dist/services/create/factory.js.map +1 -1
  178. package/dist/services/metadata/AttributeOptionsService.d.ts +38 -0
  179. package/dist/services/metadata/AttributeOptionsService.d.ts.map +1 -0
  180. package/dist/services/metadata/AttributeOptionsService.js +92 -0
  181. package/dist/services/metadata/AttributeOptionsService.js.map +1 -0
  182. package/dist/services/metadata/index.d.ts +1 -0
  183. package/dist/services/metadata/index.d.ts.map +1 -1
  184. package/dist/services/metadata/index.js +1 -0
  185. package/dist/services/metadata/index.js.map +1 -1
  186. package/dist/services/search/QueryApiService.d.ts +27 -0
  187. package/dist/services/search/QueryApiService.d.ts.map +1 -0
  188. package/dist/services/search/QueryApiService.js +144 -0
  189. package/dist/services/search/QueryApiService.js.map +1 -0
  190. package/dist/services/search/RecordsSearchService.d.ts +27 -0
  191. package/dist/services/search/RecordsSearchService.d.ts.map +1 -0
  192. package/dist/services/search/RecordsSearchService.js +122 -0
  193. package/dist/services/search/RecordsSearchService.js.map +1 -0
  194. package/dist/services/search/SearchCoordinator.d.ts +41 -0
  195. package/dist/services/search/SearchCoordinator.d.ts.map +1 -0
  196. package/dist/services/search/SearchCoordinator.js +83 -0
  197. package/dist/services/search/SearchCoordinator.js.map +1 -0
  198. package/dist/services/search/StrategyFactory.d.ts +31 -0
  199. package/dist/services/search/StrategyFactory.d.ts.map +1 -0
  200. package/dist/services/search/StrategyFactory.js +100 -0
  201. package/dist/services/search/StrategyFactory.js.map +1 -0
  202. package/dist/services/skill-generator/OutputWriterService.d.ts +41 -0
  203. package/dist/services/skill-generator/OutputWriterService.d.ts.map +1 -0
  204. package/dist/services/skill-generator/OutputWriterService.js +100 -0
  205. package/dist/services/skill-generator/OutputWriterService.js.map +1 -0
  206. package/dist/services/skill-generator/SchemaFormatterService.d.ts +61 -0
  207. package/dist/services/skill-generator/SchemaFormatterService.d.ts.map +1 -0
  208. package/dist/services/skill-generator/SchemaFormatterService.js +168 -0
  209. package/dist/services/skill-generator/SchemaFormatterService.js.map +1 -0
  210. package/dist/services/skill-generator/WorkspaceSchemaService.d.ts +84 -0
  211. package/dist/services/skill-generator/WorkspaceSchemaService.d.ts.map +1 -0
  212. package/dist/services/skill-generator/WorkspaceSchemaService.js +292 -0
  213. package/dist/services/skill-generator/WorkspaceSchemaService.js.map +1 -0
  214. package/dist/services/skill-generator/index.d.ts +12 -0
  215. package/dist/services/skill-generator/index.d.ts.map +1 -0
  216. package/dist/services/skill-generator/index.js +11 -0
  217. package/dist/services/skill-generator/index.js.map +1 -0
  218. package/dist/services/skill-generator/types.d.ts +137 -0
  219. package/dist/services/skill-generator/types.d.ts.map +1 -0
  220. package/dist/services/skill-generator/types.js +10 -0
  221. package/dist/services/skill-generator/types.js.map +1 -0
  222. package/dist/services/update/FieldPersistenceHandler.d.ts +101 -0
  223. package/dist/services/update/FieldPersistenceHandler.d.ts.map +1 -0
  224. package/dist/services/update/FieldPersistenceHandler.js +198 -0
  225. package/dist/services/update/FieldPersistenceHandler.js.map +1 -0
  226. package/dist/services/update/FieldValidationHandler.d.ts +77 -0
  227. package/dist/services/update/FieldValidationHandler.d.ts.map +1 -0
  228. package/dist/services/update/FieldValidationHandler.js +157 -0
  229. package/dist/services/update/FieldValidationHandler.js.map +1 -0
  230. package/dist/services/update/MetadataResolver.d.ts +50 -0
  231. package/dist/services/update/MetadataResolver.d.ts.map +1 -0
  232. package/dist/services/update/MetadataResolver.js +110 -0
  233. package/dist/services/update/MetadataResolver.js.map +1 -0
  234. package/dist/services/update/UpdateOrchestrator.d.ts +37 -0
  235. package/dist/services/update/UpdateOrchestrator.d.ts.map +1 -0
  236. package/dist/services/update/UpdateOrchestrator.js +58 -0
  237. package/dist/services/update/UpdateOrchestrator.js.map +1 -0
  238. package/dist/services/update/UpdateValidation.d.ts +5 -1
  239. package/dist/services/update/UpdateValidation.d.ts.map +1 -1
  240. package/dist/services/update/UpdateValidation.js +46 -14
  241. package/dist/services/update/UpdateValidation.js.map +1 -1
  242. package/dist/services/value-transformer/index.d.ts +57 -0
  243. package/dist/services/value-transformer/index.d.ts.map +1 -0
  244. package/dist/services/value-transformer/index.js +326 -0
  245. package/dist/services/value-transformer/index.js.map +1 -0
  246. package/dist/services/value-transformer/multi-select-transformer.d.ts +63 -0
  247. package/dist/services/value-transformer/multi-select-transformer.d.ts.map +1 -0
  248. package/dist/services/value-transformer/multi-select-transformer.js +144 -0
  249. package/dist/services/value-transformer/multi-select-transformer.js.map +1 -0
  250. package/dist/services/value-transformer/record-reference-transformer.d.ts +43 -0
  251. package/dist/services/value-transformer/record-reference-transformer.d.ts.map +1 -0
  252. package/dist/services/value-transformer/record-reference-transformer.js +245 -0
  253. package/dist/services/value-transformer/record-reference-transformer.js.map +1 -0
  254. package/dist/services/value-transformer/select-transformer.d.ts +48 -0
  255. package/dist/services/value-transformer/select-transformer.d.ts.map +1 -0
  256. package/dist/services/value-transformer/select-transformer.js +232 -0
  257. package/dist/services/value-transformer/select-transformer.js.map +1 -0
  258. package/dist/services/value-transformer/status-transformer.d.ts +32 -0
  259. package/dist/services/value-transformer/status-transformer.d.ts.map +1 -0
  260. package/dist/services/value-transformer/status-transformer.js +294 -0
  261. package/dist/services/value-transformer/status-transformer.js.map +1 -0
  262. package/dist/services/value-transformer/types.d.ts +100 -0
  263. package/dist/services/value-transformer/types.d.ts.map +1 -0
  264. package/dist/services/value-transformer/types.js +6 -0
  265. package/dist/services/value-transformer/types.js.map +1 -0
  266. package/dist/templates/skill/SKILL.template.md +78 -0
  267. package/dist/templates/skill/attribute-reference.template.md +126 -0
  268. package/dist/templates/skill/complex-types.template.md +255 -0
  269. package/dist/utils/client-resolver.d.ts.map +1 -1
  270. package/dist/utils/client-resolver.js +8 -16
  271. package/dist/utils/client-resolver.js.map +1 -1
  272. package/dist/utils/complex-type-validation.d.ts +16 -0
  273. package/dist/utils/complex-type-validation.d.ts.map +1 -0
  274. package/dist/utils/complex-type-validation.js +196 -0
  275. package/dist/utils/complex-type-validation.js.map +1 -0
  276. package/dist/utils/error-utilities.d.ts.map +1 -1
  277. package/dist/utils/error-utilities.js +16 -9
  278. package/dist/utils/error-utilities.js.map +1 -1
  279. package/dist/utils/location-normalizer.d.ts +26 -0
  280. package/dist/utils/location-normalizer.d.ts.map +1 -0
  281. package/dist/utils/location-normalizer.js +39 -0
  282. package/dist/utils/location-normalizer.js.map +1 -0
  283. package/dist/utils/metadata-utils.d.ts +27 -0
  284. package/dist/utils/metadata-utils.d.ts.map +1 -0
  285. package/dist/utils/metadata-utils.js +59 -0
  286. package/dist/utils/metadata-utils.js.map +1 -0
  287. package/dist/utils/personal-name-parser.d.ts.map +1 -1
  288. package/dist/utils/personal-name-parser.js +26 -17
  289. package/dist/utils/personal-name-parser.js.map +1 -1
  290. package/dist/validators/company/field_detector.d.ts.map +1 -1
  291. package/dist/validators/company/field_detector.js +5 -0
  292. package/dist/validators/company/field_detector.js.map +1 -1
  293. package/package.json +13 -11
@@ -37,17 +37,17 @@ function normalizeRecordForOutput(record, resourceType) {
37
37
  return result;
38
38
  }
39
39
  export const createRecordConfig = {
40
- name: 'create-record',
40
+ name: 'create_record',
41
41
  handler: async (params) => {
42
42
  try {
43
- const sanitizedParams = validateUniversalToolParams('create-record', params);
43
+ const sanitizedParams = validateUniversalToolParams('create_record', params);
44
44
  const { CrossResourceValidator } = await import('../schemas.js');
45
45
  await CrossResourceValidator.validateRecordRelationships(sanitizedParams.resource_type, sanitizedParams.record_data);
46
46
  const result = await handleUniversalCreate(sanitizedParams);
47
47
  try {
48
48
  if (sanitizedParams.resource_type === 'tasks') {
49
49
  const { logTaskDebug, inspectTaskRecordShape } = await import('../../../../utils/task-debug.js');
50
- logTaskDebug('mcp.create-record', 'Returning MCP task record', {
50
+ logTaskDebug('mcp.create_record', 'Returning MCP task record', {
51
51
  shape: inspectTaskRecordShape(result),
52
52
  });
53
53
  }
@@ -81,10 +81,10 @@ export const createRecordConfig = {
81
81
  },
82
82
  };
83
83
  export const updateRecordConfig = {
84
- name: 'update-record',
84
+ name: 'update_record',
85
85
  handler: async (params) => {
86
86
  try {
87
- const sanitizedParams = validateUniversalToolParams('update-record', params);
87
+ const sanitizedParams = validateUniversalToolParams('update_record', params);
88
88
  const { CrossResourceValidator } = await import('../schemas.js');
89
89
  await CrossResourceValidator.validateRecordRelationships(sanitizedParams.resource_type, sanitizedParams.record_data);
90
90
  let result;
@@ -113,7 +113,7 @@ export const updateRecordConfig = {
113
113
  try {
114
114
  if (sanitizedParams.resource_type === 'tasks') {
115
115
  const { logTaskDebug, inspectTaskRecordShape } = await import('../../../../utils/task-debug.js');
116
- logTaskDebug('mcp.update-record', 'Returning MCP task record', {
116
+ logTaskDebug('mcp.update_record', 'Returning MCP task record', {
117
117
  shape: inspectTaskRecordShape(result),
118
118
  });
119
119
  }
@@ -151,10 +151,10 @@ export const updateRecordConfig = {
151
151
  },
152
152
  };
153
153
  export const deleteRecordConfig = {
154
- name: 'delete-record',
154
+ name: 'delete_record',
155
155
  handler: async (params) => {
156
156
  try {
157
- const sanitizedParams = validateUniversalToolParams('delete-record', params);
157
+ const sanitizedParams = validateUniversalToolParams('delete_record', params);
158
158
  return await handleUniversalDelete(sanitizedParams);
159
159
  }
160
160
  catch (error) {
@@ -173,13 +173,13 @@ export const deleteRecordConfig = {
173
173
  },
174
174
  };
175
175
  export const createRecordDefinition = {
176
- name: 'create-record',
176
+ name: 'create_record',
177
177
  description: formatToolDescription({
178
178
  capability: 'Create new Attio records (companies, people, deals, tasks).',
179
179
  boundaries: 'update existing records, attach files, or bypass required fields.',
180
180
  constraints: 'Requires resource_type/objectSlug plus attributes map that matches records_discover_attributes output.',
181
181
  requiresApproval: true,
182
- recoveryHint: 'If validation fails, call records_discover_attributes to confirm required fields and enums.',
182
+ recoveryHint: 'If validation fails, call records_discover_attributes to confirm required fields and enums. If a select/status value is rejected, call records_get_attribute_options for that attribute to list valid options before retrying.',
183
183
  }),
184
184
  inputSchema: createRecordSchema,
185
185
  annotations: {
@@ -188,13 +188,13 @@ export const createRecordDefinition = {
188
188
  },
189
189
  };
190
190
  export const updateRecordDefinition = {
191
- name: 'update-record',
191
+ name: 'update_record',
192
192
  description: formatToolDescription({
193
193
  capability: 'Update existing Attio record fields across all supported resource types.',
194
194
  boundaries: 'create new records, delete data, or manage list memberships.',
195
195
  constraints: 'Requires record_id and attributes payload; supports partial updates with schema validation.',
196
196
  requiresApproval: true,
197
- recoveryHint: 'Call records_get_details first to inspect the latest values before editing.',
197
+ recoveryHint: 'Call records_get_details first to inspect the latest values before editing. If a select/status value is rejected, call records_get_attribute_options for that attribute to list valid options.',
198
198
  }),
199
199
  inputSchema: updateRecordSchema,
200
200
  annotations: {
@@ -203,7 +203,7 @@ export const updateRecordDefinition = {
203
203
  },
204
204
  };
205
205
  export const deleteRecordDefinition = {
206
- name: 'delete-record',
206
+ name: 'delete_record',
207
207
  description: formatToolDescription({
208
208
  capability: 'Delete an Attio record from its object (company, person, deal, task).',
209
209
  boundaries: 'cascade delete related data or clean up list memberships automatically.',
@@ -1 +1 @@
1
- {"version":3,"file":"crud-operations.js","sourceRoot":"","sources":["../../../../../src/handlers/tool-configs/universal/core/crud-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud-operations.js","sourceRoot":"","sources":["../../../../../src/handlers/tool-configs/universal/core/crud-operations.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { getDetailedInfoSchema, validateUniversalToolParams, } from '../schemas.
2
2
  import { handleUniversalGetDetailedInfo, getSingularResourceType, } from '../shared-handlers.js';
3
3
  import { formatToolDescription } from '../../../../handlers/tools/standards/index.js';
4
4
  export const getDetailedInfoConfig = {
5
- name: 'records_get_info',
5
+ name: 'get_record_info',
6
6
  handler: async (params) => {
7
- validateUniversalToolParams('records_get_info', params);
7
+ validateUniversalToolParams('get_record_info', params);
8
8
  return await handleUniversalGetDetailedInfo(params);
9
9
  },
10
10
  formatResult: (info, ...args) => {
@@ -59,7 +59,7 @@ export const getDetailedInfoConfig = {
59
59
  },
60
60
  };
61
61
  export const getDetailedInfoDefinition = {
62
- name: 'records_get_info',
62
+ name: 'get_record_info',
63
63
  description: formatToolDescription({
64
64
  capability: 'Retrieve enriched info subsets (contact, business, social) for a record.',
65
65
  boundaries: 'search lists of records or mutate data.',
@@ -1 +1 @@
1
- {"version":3,"file":"detailed-info-operations.js","sourceRoot":"","sources":["../../../../../src/handlers/tool-configs/universal/core/detailed-info-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detailed-info-operations.js","sourceRoot":"","sources":["../../../../../src/handlers/tool-configs/universal/core/detailed-info-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Attribute Not Found Error Enhancer
3
+ * Issue #1001 - Strategy Pattern for CRUD error handling
4
+ *
5
+ * Detects "Cannot find attribute with slug/ID" errors and provides
6
+ * suggestions using Levenshtein distance algorithm.
7
+ *
8
+ * CRITICAL: This enhancer caused PR #1048 to fail due to missing
9
+ * function signatures. All functions must have COMPLETE declarations.
10
+ */
11
+ import type { ErrorEnhancer } from './types.js';
12
+ /**
13
+ * Attribute Not Found Enhancer
14
+ * Uses Levenshtein distance to suggest similar attribute names
15
+ */
16
+ export declare const attributeNotFoundEnhancer: ErrorEnhancer;
17
+ //# sourceMappingURL=attribute-enhancer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-enhancer.d.ts","sourceRoot":"","sources":["../../../../../../src/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AAmIlE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,aAevC,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Attribute Not Found Error Enhancer
3
+ * Issue #1001 - Strategy Pattern for CRUD error handling
4
+ *
5
+ * Detects "Cannot find attribute with slug/ID" errors and provides
6
+ * suggestions using Levenshtein distance algorithm.
7
+ *
8
+ * CRITICAL: This enhancer caused PR #1048 to fail due to missing
9
+ * function signatures. All functions must have COMPLETE declarations.
10
+ */
11
+ import { sanitizedLog } from '../pii-sanitizer.js';
12
+ import { createScopedLogger } from '../../../../../utils/logger.js';
13
+ const logger = createScopedLogger('attribute-enhancer');
14
+ /**
15
+ * Calculate Levenshtein distance between two strings
16
+ * Used for suggesting similar attribute names
17
+ *
18
+ * PR #1048 FAILURE POINT: Must include COMPLETE function signature
19
+ * NOT: const matrix: number[][] = []
20
+ * BUT: const levenshteinDistance = (a: string, b: string): number => { const matrix... }
21
+ */
22
+ const levenshteinDistance = (a, b) => {
23
+ const matrix = [];
24
+ // Initialize first column
25
+ for (let i = 0; i <= a.length; i++) {
26
+ matrix[i] = [i];
27
+ }
28
+ // Initialize first row
29
+ for (let j = 0; j <= b.length; j++) {
30
+ matrix[0][j] = j;
31
+ }
32
+ // Fill in the rest of the matrix
33
+ for (let i = 1; i <= a.length; i++) {
34
+ for (let j = 1; j <= b.length; j++) {
35
+ if (a[i - 1] === b[j - 1]) {
36
+ matrix[i][j] = matrix[i - 1][j - 1];
37
+ }
38
+ else {
39
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
40
+ matrix[i][j - 1] + 1, // insertion
41
+ matrix[i - 1][j] + 1 // deletion
42
+ );
43
+ }
44
+ }
45
+ }
46
+ return matrix[a.length][b.length];
47
+ };
48
+ /**
49
+ * Find similar attribute names using Levenshtein distance
50
+ */
51
+ const findSimilarAttributes = (target, candidates, maxResults) => {
52
+ const scored = candidates.map((c) => ({
53
+ name: c,
54
+ distance: levenshteinDistance(target.toLowerCase(), c.toLowerCase()),
55
+ }));
56
+ return scored
57
+ .filter((s) => s.distance <= 3) // Max 3 edits
58
+ .sort((a, b) => a.distance - b.distance)
59
+ .slice(0, maxResults)
60
+ .map((s) => s.name);
61
+ };
62
+ /**
63
+ * Enhance error messages for attribute-not-found errors
64
+ * Detects "Cannot find attribute with slug/ID" errors and provides suggestions
65
+ */
66
+ const enhanceAttributeNotFoundError = async (error, resourceType) => {
67
+ const msg = error instanceof Error ? error.message : String(error);
68
+ // Pattern: "Cannot find attribute with slug/ID "X"."
69
+ const attrMatch = msg.match(/Cannot find attribute with slug\/ID "(.+?)"/);
70
+ if (!attrMatch)
71
+ return null;
72
+ const invalidAttr = attrMatch[1];
73
+ try {
74
+ // Fetch valid attributes and find similar ones
75
+ const { handleUniversalDiscoverAttributes } = await import('../../shared-handlers.js');
76
+ const schema = await handleUniversalDiscoverAttributes(resourceType);
77
+ const allAttrs = (schema.all || []);
78
+ const attrNames = allAttrs
79
+ .flatMap((a) => [a.name, a.title, a.api_slug])
80
+ .filter(Boolean);
81
+ // Find similar attribute names using Levenshtein distance
82
+ const suggestions = findSimilarAttributes(invalidAttr, attrNames, 3);
83
+ let message = `Attribute "${invalidAttr}" does not exist on ${resourceType}.\n\n`;
84
+ if (suggestions.length > 0) {
85
+ message += `Did you mean: ${suggestions.map((s) => `"${s}"`).join(', ')}?\n\n`;
86
+ }
87
+ message += `Next step: Call records_discover_attributes with\n`;
88
+ message += ` resource_type: "${resourceType}"\n`;
89
+ message += `to see all valid attributes.`;
90
+ return message;
91
+ }
92
+ catch (err) {
93
+ sanitizedLog(logger, 'debug', 'Failed to discover attributes for suggestions', {
94
+ enhancerName: 'attribute-not-found',
95
+ resourceType,
96
+ invalidAttribute: invalidAttr,
97
+ error: err instanceof Error ? err.message : String(err),
98
+ });
99
+ return (`Attribute "${invalidAttr}" does not exist on ${resourceType}.\n\n` +
100
+ `Next step: Use records_discover_attributes to see valid attributes.`);
101
+ }
102
+ };
103
+ /**
104
+ * Attribute Not Found Enhancer
105
+ * Uses Levenshtein distance to suggest similar attribute names
106
+ */
107
+ export const attributeNotFoundEnhancer = {
108
+ name: 'attribute-not-found',
109
+ errorName: 'attribute_not_found',
110
+ matches: (error, _context) => {
111
+ const msg = error instanceof Error ? error.message : String(error);
112
+ return msg.includes('Cannot find attribute with slug/ID');
113
+ },
114
+ enhance: async (error, context) => {
115
+ return enhanceAttributeNotFoundError(error, context.resourceType);
116
+ },
117
+ };
118
+ //# sourceMappingURL=attribute-enhancer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-enhancer.js","sourceRoot":"","sources":["../../../../../../src/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Complex Type Error Enhancer
3
+ * Issue #1001 - Strategy Pattern for CRUD error handling
4
+ *
5
+ * Enhances errors for complex type fields: location, phone-number, personal-name
6
+ * Provides example structures and usage tips.
7
+ */
8
+ import type { ErrorEnhancer } from './types.js';
9
+ /**
10
+ * Complex Type Enhancer
11
+ * Handles location, phone-number, and personal-name field errors
12
+ */
13
+ export declare const complexTypeEnhancer: ErrorEnhancer;
14
+ //# sourceMappingURL=complex-type-enhancer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complex-type-enhancer.d.ts","sourceRoot":"","sources":["../../../../../../src/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AAqFlE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAoBjC,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Complex Type Error Enhancer
3
+ * Issue #1001 - Strategy Pattern for CRUD error handling
4
+ *
5
+ * Enhances errors for complex type fields: location, phone-number, personal-name
6
+ * Provides example structures and usage tips.
7
+ */
8
+ import { getErrorMessage, isAxiosError } from './types.js';
9
+ /**
10
+ * Enhance complex type errors (location, personal-name, phone-number)
11
+ */
12
+ const enhanceComplexTypeError = (error, recordData) => {
13
+ const locationExample = '{\n' +
14
+ ' "line_1": "123 Main St",\n' +
15
+ ' "locality": "City",\n' +
16
+ ' "region": "State",\n' +
17
+ ' "postcode": "12345",\n' +
18
+ ' "country_code": "US",\n' +
19
+ ' "latitude": null,\n' +
20
+ ' "longitude": null,\n' +
21
+ ' "line_2": null,\n' +
22
+ ' "line_3": null,\n' +
23
+ ' "line_4": null\n' +
24
+ '}';
25
+ const phoneExample = '{ "phone_number": "+15551234567", "country_code": "US" }';
26
+ const nameExample = '{ "first_name": "Jane", "last_name": "Doe" }';
27
+ const msg = getErrorMessage(error);
28
+ const validationErrors = isAxiosError(error)
29
+ ? error.response?.data?.validation_errors
30
+ : null;
31
+ const recordFields = recordData ? Object.keys(recordData) : [];
32
+ const containsLocation = /location/i.test(msg) ||
33
+ recordFields.some((f) => /location/i.test(f)) ||
34
+ (validationErrors &&
35
+ validationErrors.some((ve) => /location/i.test(String(ve?.field || ve?.path || ve?.message || ''))));
36
+ if (containsLocation) {
37
+ return (`Invalid location value. Expected an object with all required fields.\n\n` +
38
+ `Expected structure:\n${locationExample}\n\n` +
39
+ `Tip: Missing fields are auto-filled with null; pass an object, not a string.`);
40
+ }
41
+ const containsPhone = /phone/.test(msg) ||
42
+ (validationErrors &&
43
+ validationErrors.some((ve) => /phone/.test(String(ve?.field || ve?.path || ve?.message || ''))));
44
+ if (containsPhone) {
45
+ return (`Invalid phone-number value. Provide phone_number or original_phone_number strings.\n\n` +
46
+ `Example: ${phoneExample}\n\n` +
47
+ `Tip: Strings are normalized to E.164; keep label/type fields if needed.`);
48
+ }
49
+ const containsPersonalName = /personal-name/.test(msg) ||
50
+ (validationErrors &&
51
+ validationErrors.some((ve) => /name/.test(String(ve?.field || ve?.path || ve?.message || ''))));
52
+ if (containsPersonalName) {
53
+ return (`Invalid personal-name value. Provide first_name/last_name or full_name.\n\n` +
54
+ `Example: ${nameExample}\n\n` +
55
+ `Tip: Strings are parsed automatically; empty strings are rejected.`);
56
+ }
57
+ return null;
58
+ };
59
+ /**
60
+ * Complex Type Enhancer
61
+ * Handles location, phone-number, and personal-name field errors
62
+ */
63
+ export const complexTypeEnhancer = {
64
+ name: 'complex-type',
65
+ errorName: 'validation_error',
66
+ matches: (error, _context) => {
67
+ const msg = getErrorMessage(error);
68
+ return (/location/i.test(msg) ||
69
+ /phone/.test(msg) ||
70
+ /personal-name/.test(msg) ||
71
+ msg.includes('Invalid value'));
72
+ },
73
+ enhance: async (error, context) => {
74
+ return enhanceComplexTypeError(error, context.recordData);
75
+ },
76
+ };
77
+ //# sourceMappingURL=complex-type-enhancer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complex-type-enhancer.js","sourceRoot":"","sources":["../../../../../../src/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAC9B,KAAc,EACd,UAAoC,EACrB,EAAE;IACjB,MAAM,eAAe,GACnB,KAAK;QACL,8BAA8B;QAC9B,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,2BAA2B;QAC3B,uBAAuB;QACvB,wBAAwB;QACxB,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB;QACpB,GAAG,CAAC;IAEN,MAAM,YAAY,GAChB,0DAA0D,CAAC;IAC7D,MAAM,WAAW,GAAG,8CAA8C,CAAC;IAEnE,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;QAC1C,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB;QACzC,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,MAAM,gBAAgB,GACpB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QACrB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,gBAAgB;YACf,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CACrE,CAAC,CAAC;IAEP,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CACL,0EAA0E;YAC1E,wBAAwB,eAAe,MAAM;YAC7C,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC,gBAAgB;YACf,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CACjE,CAAC,CAAC;IAEP,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CACL,wFAAwF;YACxF,YAAY,YAAY,MAAM;YAC9B,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,GACxB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,CAAC,gBAAgB;YACf,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAChE,CAAC,CAAC;IAEP,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,CACL,6EAA6E;YAC7E,YAAY,WAAW,MAAM;YAC7B,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,kBAAkB;IAE7B,OAAO,EAAE,CAAC,KAAc,EAAE,QAA0B,EAAW,EAAE;QAC/D,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACjB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EACZ,KAAc,EACd,OAAyB,EACD,EAAE;QAC1B,OAAO,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;CACF,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Error Enhancers - Centralized Exports & Pipelines
3
+ * Issue #1001 - Strategy Pattern for CRUD error handling
4
+ */
5
+ import { requiredFieldsEnhancer } from './required-fields-enhancer.js';
6
+ import { uniquenessEnhancer } from './uniqueness-enhancer.js';
7
+ import { attributeNotFoundEnhancer } from './attribute-enhancer.js';
8
+ import { selectStatusEnhancer } from './select-status-enhancer.js';
9
+ import { complexTypeEnhancer } from './complex-type-enhancer.js';
10
+ import { recordReferenceEnhancer } from './record-reference-enhancer.js';
11
+ /**
12
+ * Enhancer pipeline for CREATE operations
13
+ * Order matters: more specific errors before generic ones
14
+ */
15
+ export declare const CREATE_ERROR_ENHANCERS: readonly [import("./types.js").ErrorEnhancer, import("./types.js").ErrorEnhancer, import("./types.js").ErrorEnhancer, import("./types.js").ErrorEnhancer, import("./types.js").ErrorEnhancer, import("./types.js").ErrorEnhancer];
16
+ /**
17
+ * Enhancer pipeline for UPDATE operations
18
+ * Note: Required fields and uniqueness checks not needed for updates
19
+ */
20
+ export declare const UPDATE_ERROR_ENHANCERS: readonly [import("./types.js").ErrorEnhancer, import("./types.js").ErrorEnhancer, import("./types.js").ErrorEnhancer, import("./types.js").ErrorEnhancer];
21
+ export { requiredFieldsEnhancer, uniquenessEnhancer, attributeNotFoundEnhancer, selectStatusEnhancer, complexTypeEnhancer, recordReferenceEnhancer, };
22
+ export type { CrudErrorContext, ErrorEnhancer, ValidationMetadata, AxiosError, AxiosErrorResponse, } from './types.js';
23
+ export { isAxiosError } from './types.js';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/handlers/tool-configs/universal/core/error-enhancers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,mOAOzB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2JAKzB,CAAC;AAEX,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,CAAC;AAEF,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Error Enhancers - Centralized Exports & Pipelines
3
+ * Issue #1001 - Strategy Pattern for CRUD error handling
4
+ */
5
+ import { requiredFieldsEnhancer } from './required-fields-enhancer.js';
6
+ import { uniquenessEnhancer } from './uniqueness-enhancer.js';
7
+ import { attributeNotFoundEnhancer } from './attribute-enhancer.js';
8
+ import { selectStatusEnhancer } from './select-status-enhancer.js';
9
+ import { complexTypeEnhancer } from './complex-type-enhancer.js';
10
+ import { recordReferenceEnhancer } from './record-reference-enhancer.js';
11
+ /**
12
+ * Enhancer pipeline for CREATE operations
13
+ * Order matters: more specific errors before generic ones
14
+ */
15
+ export const CREATE_ERROR_ENHANCERS = [
16
+ requiredFieldsEnhancer,
17
+ uniquenessEnhancer,
18
+ attributeNotFoundEnhancer,
19
+ complexTypeEnhancer,
20
+ selectStatusEnhancer,
21
+ recordReferenceEnhancer,
22
+ ];
23
+ /**
24
+ * Enhancer pipeline for UPDATE operations
25
+ * Note: Required fields and uniqueness checks not needed for updates
26
+ */
27
+ export const UPDATE_ERROR_ENHANCERS = [
28
+ attributeNotFoundEnhancer,
29
+ complexTypeEnhancer,
30
+ selectStatusEnhancer,
31
+ recordReferenceEnhancer,
32
+ ];
33
+ export { requiredFieldsEnhancer, uniquenessEnhancer, attributeNotFoundEnhancer, selectStatusEnhancer, complexTypeEnhancer, recordReferenceEnhancer, };
34
+ export { isAxiosError } from './types.js';
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/handlers/tool-configs/universal/core/error-enhancers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,sBAAsB;IACtB,kBAAkB;IAClB,yBAAyB;IACzB,mBAAmB;IACnB,oBAAoB;IACpB,uBAAuB;CACf,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,yBAAyB;IACzB,mBAAmB;IACnB,oBAAoB;IACpB,uBAAuB;CACf,CAAC;AAEX,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,CAAC;AAUF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Record Reference Error Enhancer
3
+ * Issue #1001 - Strategy Pattern for CRUD error handling
4
+ * Issue #997 - Enhanced record-reference attribute error handling
5
+ *
6
+ * Detects "Missing target_object on record reference value" and similar errors
7
+ * Provides format guidance for record-reference fields.
8
+ */
9
+ import type { ErrorEnhancer } from './types.js';
10
+ /**
11
+ * Record Reference Enhancer
12
+ * Handles record-reference field format errors (Issue #997)
13
+ */
14
+ export declare const recordReferenceEnhancer: ErrorEnhancer;
15
+ //# sourceMappingURL=record-reference-enhancer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-reference-enhancer.d.ts","sourceRoot":"","sources":["../../../../../../src/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AA8ElE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAyCrC,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Record Reference Error Enhancer
3
+ * Issue #1001 - Strategy Pattern for CRUD error handling
4
+ * Issue #997 - Enhanced record-reference attribute error handling
5
+ *
6
+ * Detects "Missing target_object on record reference value" and similar errors
7
+ * Provides format guidance for record-reference fields.
8
+ */
9
+ import { getErrorMessage, isAxiosError } from './types.js';
10
+ /**
11
+ * Enhance error messages for record-reference attribute errors
12
+ */
13
+ const enhanceRecordReferenceError = (error, recordData) => {
14
+ const msg = getErrorMessage(error);
15
+ // Also check for validation_errors in axios response
16
+ let fullErrorText = msg;
17
+ if (isAxiosError(error)) {
18
+ const data = error.response?.data;
19
+ if (data?.message) {
20
+ fullErrorText += ' ' + data.message;
21
+ }
22
+ if (data?.validation_errors) {
23
+ fullErrorText +=
24
+ ' ' +
25
+ data.validation_errors.map((e) => String(e.message || e)).join(' ');
26
+ }
27
+ }
28
+ // Pattern detection for record-reference errors
29
+ const isRecordRefError = fullErrorText.includes('Missing target_object') ||
30
+ fullErrorText.includes('record reference') ||
31
+ fullErrorText.includes('target_record_id') ||
32
+ (fullErrorText.includes('Invalid value was passed to attribute') &&
33
+ (fullErrorText.includes('company') ||
34
+ fullErrorText.includes('associated_people') ||
35
+ fullErrorText.includes('associated_company') ||
36
+ fullErrorText.includes('main_contact')));
37
+ if (!isRecordRefError)
38
+ return null;
39
+ // Try to identify which field might be the issue
40
+ const potentialRefFields = [
41
+ 'company',
42
+ 'associated_company',
43
+ 'associated_people',
44
+ 'main_contact',
45
+ 'person',
46
+ 'people',
47
+ ];
48
+ let affectedField = null;
49
+ if (recordData) {
50
+ for (const field of potentialRefFields) {
51
+ if (field in recordData) {
52
+ affectedField = field;
53
+ break;
54
+ }
55
+ }
56
+ }
57
+ let message = `Record reference format error`;
58
+ if (affectedField) {
59
+ message += ` on field "${affectedField}"`;
60
+ }
61
+ message += `.\n\n`;
62
+ message += `The Attio API expects record-reference fields in this format:\n`;
63
+ message += ` [{ "target_object": "object_type", "target_record_id": "uuid" }]\n\n`;
64
+ message += `Simplified formats (auto-transformed by this server):\n`;
65
+ message += ` • String: "company": "record-uuid"\n`;
66
+ message += ` • Legacy object: "company": {"record_id": "uuid"}\n\n`;
67
+ message += `If you're seeing this error, the auto-transformation may have failed.\n`;
68
+ message += `Ensure the record ID is valid and the field name is correct.`;
69
+ return message;
70
+ };
71
+ /**
72
+ * Record Reference Enhancer
73
+ * Handles record-reference field format errors (Issue #997)
74
+ */
75
+ export const recordReferenceEnhancer = {
76
+ name: 'record-reference',
77
+ errorName: 'record_reference_error',
78
+ matches: (error, _context) => {
79
+ const msg = getErrorMessage(error);
80
+ // Check for axios validation errors
81
+ let fullText = msg;
82
+ if (isAxiosError(error)) {
83
+ const data = error.response?.data;
84
+ if (data?.message) {
85
+ fullText += ' ' + data.message;
86
+ }
87
+ // CRITICAL: Also check validation_errors array for record-reference patterns
88
+ if (data?.validation_errors) {
89
+ fullText +=
90
+ ' ' +
91
+ data.validation_errors.map((e) => String(e.message || e)).join(' ');
92
+ }
93
+ }
94
+ return (fullText.includes('Missing target_object') ||
95
+ fullText.includes('record reference') ||
96
+ fullText.includes('target_record_id') ||
97
+ // CRITICAL: Match "Invalid value was passed to attribute" pattern (from enhanceRecordReferenceError)
98
+ (fullText.includes('Invalid value was passed to attribute') &&
99
+ (fullText.includes('company') ||
100
+ fullText.includes('associated_people') ||
101
+ fullText.includes('associated_company') ||
102
+ fullText.includes('main_contact'))));
103
+ },
104
+ enhance: async (error, context) => {
105
+ return enhanceRecordReferenceError(error, context.recordData);
106
+ },
107
+ };
108
+ //# sourceMappingURL=record-reference-enhancer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-reference-enhancer.js","sourceRoot":"","sources":["../../../../../../src/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.ts"],"names":[],"mappings":"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"}