attio-mcp 1.3.6 → 1.4.1

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 (440) hide show
  1. package/CHANGELOG.md +284 -3
  2. package/README.md +143 -334
  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/api/operations/batch.d.ts +3 -3
  14. package/dist/api/operations/batch.d.ts.map +1 -1
  15. package/dist/api/operations/batch.js.map +1 -1
  16. package/dist/api/operations/crud.d.ts.map +1 -1
  17. package/dist/api/operations/crud.js.map +1 -1
  18. package/dist/api/operations/search.d.ts.map +1 -1
  19. package/dist/api/operations/search.js.map +1 -1
  20. package/dist/cli/commands/generate-skill.d.ts +28 -0
  21. package/dist/cli/commands/generate-skill.d.ts.map +1 -0
  22. package/dist/cli/commands/generate-skill.js +101 -0
  23. package/dist/cli/commands/generate-skill.js.map +1 -0
  24. package/dist/cli/discover.js +65 -0
  25. package/dist/cli/discover.js.map +1 -1
  26. package/dist/cli.js.map +1 -1
  27. package/dist/config/deal-defaults.d.ts +2 -2
  28. package/dist/config/deal-defaults.d.ts.map +1 -1
  29. package/dist/config/deal-defaults.js +15 -6
  30. package/dist/config/deal-defaults.js.map +1 -1
  31. package/dist/config/tool-aliases.d.ts +12 -0
  32. package/dist/config/tool-aliases.d.ts.map +1 -1
  33. package/dist/config/tool-aliases.js +213 -69
  34. package/dist/config/tool-aliases.js.map +1 -1
  35. package/dist/constants/tool-names.d.ts +84 -0
  36. package/dist/constants/tool-names.d.ts.map +1 -0
  37. package/dist/constants/tool-names.js +81 -0
  38. package/dist/constants/tool-names.js.map +1 -0
  39. package/dist/constants/universal.constants.d.ts +24 -0
  40. package/dist/constants/universal.constants.d.ts.map +1 -1
  41. package/dist/constants/universal.constants.js +81 -9
  42. package/dist/constants/universal.constants.js.map +1 -1
  43. package/dist/errors/value-match-error.js +1 -1
  44. package/dist/handlers/tool-configs/lists.d.ts +142 -19
  45. package/dist/handlers/tool-configs/lists.d.ts.map +1 -1
  46. package/dist/handlers/tool-configs/lists.js +319 -25
  47. package/dist/handlers/tool-configs/lists.js.map +1 -1
  48. package/dist/handlers/tool-configs/universal/batch-search.d.ts +1 -1
  49. package/dist/handlers/tool-configs/universal/batch-search.d.ts.map +1 -1
  50. package/dist/handlers/tool-configs/universal/batch-search.js +17 -13
  51. package/dist/handlers/tool-configs/universal/batch-search.js.map +1 -1
  52. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.d.ts +26 -4
  53. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.d.ts.map +1 -1
  54. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js +181 -21
  55. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js.map +1 -1
  56. package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts +4 -4
  57. package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts.map +1 -1
  58. package/dist/handlers/tool-configs/universal/core/crud-operations.js +37 -24
  59. package/dist/handlers/tool-configs/universal/core/crud-operations.js.map +1 -1
  60. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js +3 -3
  61. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js.map +1 -1
  62. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.d.ts +17 -0
  63. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.d.ts.map +1 -0
  64. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.js +118 -0
  65. package/dist/handlers/tool-configs/universal/core/error-enhancers/attribute-enhancer.js.map +1 -0
  66. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.d.ts +14 -0
  67. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.d.ts.map +1 -0
  68. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.js +77 -0
  69. package/dist/handlers/tool-configs/universal/core/error-enhancers/complex-type-enhancer.js.map +1 -0
  70. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.d.ts +24 -0
  71. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.d.ts.map +1 -0
  72. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.js +35 -0
  73. package/dist/handlers/tool-configs/universal/core/error-enhancers/index.js.map +1 -0
  74. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.d.ts +15 -0
  75. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.d.ts.map +1 -0
  76. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.js +108 -0
  77. package/dist/handlers/tool-configs/universal/core/error-enhancers/record-reference-enhancer.js.map +1 -0
  78. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.d.ts +14 -0
  79. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.d.ts.map +1 -0
  80. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.js +91 -0
  81. package/dist/handlers/tool-configs/universal/core/error-enhancers/required-fields-enhancer.js.map +1 -0
  82. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.d.ts +14 -0
  83. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.d.ts.map +1 -0
  84. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.js +118 -0
  85. package/dist/handlers/tool-configs/universal/core/error-enhancers/select-status-enhancer.js.map +1 -0
  86. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.d.ts +77 -0
  87. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.d.ts.map +1 -0
  88. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.js +42 -0
  89. package/dist/handlers/tool-configs/universal/core/error-enhancers/types.js.map +1 -0
  90. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.d.ts +15 -0
  91. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.d.ts.map +1 -0
  92. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.js +109 -0
  93. package/dist/handlers/tool-configs/universal/core/error-enhancers/uniqueness-enhancer.js.map +1 -0
  94. package/dist/handlers/tool-configs/universal/core/index.d.ts +63 -22
  95. package/dist/handlers/tool-configs/universal/core/index.d.ts.map +1 -1
  96. package/dist/handlers/tool-configs/universal/core/index.js +24 -22
  97. package/dist/handlers/tool-configs/universal/core/index.js.map +1 -1
  98. package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts +43 -1
  99. package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts.map +1 -1
  100. package/dist/handlers/tool-configs/universal/core/metadata-operations.js +117 -11
  101. package/dist/handlers/tool-configs/universal/core/metadata-operations.js.map +1 -1
  102. package/dist/handlers/tool-configs/universal/core/notes-operations.js +12 -12
  103. package/dist/handlers/tool-configs/universal/core/notes-operations.js.map +1 -1
  104. package/dist/handlers/tool-configs/universal/core/record-details-operations.d.ts +6 -3
  105. package/dist/handlers/tool-configs/universal/core/record-details-operations.d.ts.map +1 -1
  106. package/dist/handlers/tool-configs/universal/core/record-details-operations.js +35 -10
  107. package/dist/handlers/tool-configs/universal/core/record-details-operations.js.map +1 -1
  108. package/dist/handlers/tool-configs/universal/core/search-operations.d.ts +4 -3
  109. package/dist/handlers/tool-configs/universal/core/search-operations.d.ts.map +1 -1
  110. package/dist/handlers/tool-configs/universal/core/search-operations.js +31 -12
  111. package/dist/handlers/tool-configs/universal/core/search-operations.js.map +1 -1
  112. package/dist/handlers/tool-configs/universal/core/utils.d.ts +1 -0
  113. package/dist/handlers/tool-configs/universal/core/utils.d.ts.map +1 -1
  114. package/dist/handlers/tool-configs/universal/core/utils.js +3 -0
  115. package/dist/handlers/tool-configs/universal/core/utils.js.map +1 -1
  116. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.d.ts.map +1 -1
  117. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.js +32 -9
  118. package/dist/handlers/tool-configs/universal/field-mapper/constants/companies.js.map +1 -1
  119. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.d.ts.map +1 -1
  120. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.js +45 -6
  121. package/dist/handlers/tool-configs/universal/field-mapper/constants/deals.js.map +1 -1
  122. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.d.ts.map +1 -1
  123. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.js +36 -5
  124. package/dist/handlers/tool-configs/universal/field-mapper/constants/people.js.map +1 -1
  125. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.d.ts +1 -1
  126. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.d.ts.map +1 -1
  127. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.js +17 -1
  128. package/dist/handlers/tool-configs/universal/field-mapper/transformers/value-transformer.js.map +1 -1
  129. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.d.ts.map +1 -1
  130. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.js +3 -1
  131. package/dist/handlers/tool-configs/universal/field-mapper/validators/field-validator.js.map +1 -1
  132. package/dist/handlers/tool-configs/universal/index.d.ts +75 -34
  133. package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
  134. package/dist/handlers/tool-configs/universal/index.js +58 -58
  135. package/dist/handlers/tool-configs/universal/index.js.map +1 -1
  136. package/dist/handlers/tool-configs/universal/operations/advanced-search.d.ts +3 -3
  137. package/dist/handlers/tool-configs/universal/operations/advanced-search.d.ts.map +1 -1
  138. package/dist/handlers/tool-configs/universal/operations/advanced-search.js +17 -10
  139. package/dist/handlers/tool-configs/universal/operations/advanced-search.js.map +1 -1
  140. package/dist/handlers/tool-configs/universal/operations/batch-format.d.ts +1 -1
  141. package/dist/handlers/tool-configs/universal/operations/batch-format.d.ts.map +1 -1
  142. package/dist/handlers/tool-configs/universal/operations/batch-format.js +31 -10
  143. package/dist/handlers/tool-configs/universal/operations/batch-format.js.map +1 -1
  144. package/dist/handlers/tool-configs/universal/operations/batch-operations.js +3 -3
  145. package/dist/handlers/tool-configs/universal/operations/content-search.d.ts +3 -3
  146. package/dist/handlers/tool-configs/universal/operations/content-search.d.ts.map +1 -1
  147. package/dist/handlers/tool-configs/universal/operations/content-search.js +15 -9
  148. package/dist/handlers/tool-configs/universal/operations/content-search.js.map +1 -1
  149. package/dist/handlers/tool-configs/universal/operations/index.d.ts +10 -10
  150. package/dist/handlers/tool-configs/universal/operations/index.js +15 -15
  151. package/dist/handlers/tool-configs/universal/operations/relationship-search.d.ts +3 -3
  152. package/dist/handlers/tool-configs/universal/operations/relationship-search.d.ts.map +1 -1
  153. package/dist/handlers/tool-configs/universal/operations/relationship-search.js +11 -8
  154. package/dist/handlers/tool-configs/universal/operations/relationship-search.js.map +1 -1
  155. package/dist/handlers/tool-configs/universal/operations/timeframe-search.d.ts +3 -3
  156. package/dist/handlers/tool-configs/universal/operations/timeframe-search.d.ts.map +1 -1
  157. package/dist/handlers/tool-configs/universal/operations/timeframe-search.js +16 -10
  158. package/dist/handlers/tool-configs/universal/operations/timeframe-search.js.map +1 -1
  159. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.d.ts.map +1 -1
  160. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js +5 -2
  161. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js.map +1 -1
  162. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts +29 -0
  163. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts.map +1 -1
  164. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js +28 -0
  165. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js.map +1 -1
  166. package/dist/handlers/tool-configs/universal/schemas.d.ts +1 -1
  167. package/dist/handlers/tool-configs/universal/schemas.d.ts.map +1 -1
  168. package/dist/handlers/tool-configs/universal/schemas.js +1 -1
  169. package/dist/handlers/tool-configs/universal/schemas.js.map +1 -1
  170. package/dist/handlers/tool-configs/universal/shared-handlers.d.ts +27 -7
  171. package/dist/handlers/tool-configs/universal/shared-handlers.d.ts.map +1 -1
  172. package/dist/handlers/tool-configs/universal/shared-handlers.js +221 -25
  173. package/dist/handlers/tool-configs/universal/shared-handlers.js.map +1 -1
  174. package/dist/handlers/tool-configs/universal/smithery-diagnostics.js +2 -2
  175. package/dist/handlers/tool-configs/universal/smithery-diagnostics.js.map +1 -1
  176. package/dist/handlers/tool-configs/universal/types.d.ts +17 -7
  177. package/dist/handlers/tool-configs/universal/types.d.ts.map +1 -1
  178. package/dist/handlers/tool-configs/universal/validators/schema-validator.d.ts +11 -0
  179. package/dist/handlers/tool-configs/universal/validators/schema-validator.d.ts.map +1 -1
  180. package/dist/handlers/tool-configs/universal/validators/schema-validator.js +80 -17
  181. package/dist/handlers/tool-configs/universal/validators/schema-validator.js.map +1 -1
  182. package/dist/handlers/tools/dispatcher/core.d.ts.map +1 -1
  183. package/dist/handlers/tools/dispatcher/core.js +9 -2
  184. package/dist/handlers/tools/dispatcher/core.js.map +1 -1
  185. package/dist/handlers/tools/dispatcher/operations/lists.d.ts +20 -1
  186. package/dist/handlers/tools/dispatcher/operations/lists.d.ts.map +1 -1
  187. package/dist/handlers/tools/dispatcher/operations/lists.js +366 -17
  188. package/dist/handlers/tools/dispatcher/operations/lists.js.map +1 -1
  189. package/dist/handlers/tools/formatters.d.ts +8 -1
  190. package/dist/handlers/tools/formatters.d.ts.map +1 -1
  191. package/dist/handlers/tools/formatters.js +30 -14
  192. package/dist/handlers/tools/formatters.js.map +1 -1
  193. package/dist/handlers/tools/registry.d.ts +409 -122
  194. package/dist/handlers/tools/registry.d.ts.map +1 -1
  195. package/dist/handlers/tools/registry.js +14 -9
  196. package/dist/handlers/tools/registry.js.map +1 -1
  197. package/dist/handlers/tools/standards/index.d.ts.map +1 -1
  198. package/dist/handlers/tools/standards/index.js +19 -11
  199. package/dist/handlers/tools/standards/index.js.map +1 -1
  200. package/dist/objects/companies/attributes.d.ts +5 -0
  201. package/dist/objects/companies/attributes.d.ts.map +1 -1
  202. package/dist/objects/companies/attributes.js +45 -31
  203. package/dist/objects/companies/attributes.js.map +1 -1
  204. package/dist/objects/companies/basic.d.ts.map +1 -1
  205. package/dist/objects/companies/basic.js.map +1 -1
  206. package/dist/objects/lists/base.d.ts.map +1 -1
  207. package/dist/objects/lists/base.js +6 -2
  208. package/dist/objects/lists/base.js.map +1 -1
  209. package/dist/objects/lists/shared.d.ts.map +1 -1
  210. package/dist/objects/lists/shared.js +12 -1
  211. package/dist/objects/lists/shared.js.map +1 -1
  212. package/dist/objects/records/index.d.ts.map +1 -1
  213. package/dist/objects/records/index.js.map +1 -1
  214. package/dist/server/createServer.d.ts.map +1 -1
  215. package/dist/server/createServer.js +4 -3
  216. package/dist/server/createServer.js.map +1 -1
  217. package/dist/services/ErrorService.js +3 -3
  218. package/dist/services/ErrorService.js.map +1 -1
  219. package/dist/services/OpenAiCompatibilityService.d.ts.map +1 -1
  220. package/dist/services/OpenAiCompatibilityService.js +12 -8
  221. package/dist/services/OpenAiCompatibilityService.js.map +1 -1
  222. package/dist/services/UniversalCreateService.d.ts +3 -3
  223. package/dist/services/UniversalCreateService.d.ts.map +1 -1
  224. package/dist/services/UniversalCreateService.js +162 -38
  225. package/dist/services/UniversalCreateService.js.map +1 -1
  226. package/dist/services/UniversalMetadataService.d.ts +8 -0
  227. package/dist/services/UniversalMetadataService.d.ts.map +1 -1
  228. package/dist/services/UniversalMetadataService.js +21 -0
  229. package/dist/services/UniversalMetadataService.js.map +1 -1
  230. package/dist/services/UniversalRetrievalService.d.ts +7 -5
  231. package/dist/services/UniversalRetrievalService.d.ts.map +1 -1
  232. package/dist/services/UniversalRetrievalService.js +31 -29
  233. package/dist/services/UniversalRetrievalService.js.map +1 -1
  234. package/dist/services/UniversalSearchService.d.ts +8 -27
  235. package/dist/services/UniversalSearchService.d.ts.map +1 -1
  236. package/dist/services/UniversalSearchService.js +19 -327
  237. package/dist/services/UniversalSearchService.js.map +1 -1
  238. package/dist/services/UniversalUpdateService.d.ts +25 -7
  239. package/dist/services/UniversalUpdateService.d.ts.map +1 -1
  240. package/dist/services/UniversalUpdateService.js +132 -157
  241. package/dist/services/UniversalUpdateService.js.map +1 -1
  242. package/dist/services/UniversalUtilityService.d.ts +9 -1
  243. package/dist/services/UniversalUtilityService.d.ts.map +1 -1
  244. package/dist/services/UniversalUtilityService.js +13 -0
  245. package/dist/services/UniversalUtilityService.js.map +1 -1
  246. package/dist/services/ValidationService.js +4 -4
  247. package/dist/services/ValidationService.js.map +1 -1
  248. package/dist/services/create/attio-create.service.d.ts.map +1 -1
  249. package/dist/services/create/attio-create.service.js +2 -1
  250. package/dist/services/create/attio-create.service.js.map +1 -1
  251. package/dist/services/create/creators/company-creator.js.map +1 -1
  252. package/dist/services/create/creators/note-creator.d.ts.map +1 -1
  253. package/dist/services/create/creators/note-creator.js +4 -2
  254. package/dist/services/create/creators/note-creator.js.map +1 -1
  255. package/dist/services/create/factory.d.ts.map +1 -1
  256. package/dist/services/create/factory.js +2 -1
  257. package/dist/services/create/factory.js.map +1 -1
  258. package/dist/services/create/mock-create.service.d.ts.map +1 -1
  259. package/dist/services/create/mock-create.service.js.map +1 -1
  260. package/dist/services/create/strategies/BaseCreateStrategy.d.ts +2 -2
  261. package/dist/services/create/strategies/BaseCreateStrategy.d.ts.map +1 -1
  262. package/dist/services/create/strategies/ListCreateStrategy.d.ts +3 -3
  263. package/dist/services/create/strategies/ListCreateStrategy.d.ts.map +1 -1
  264. package/dist/services/create/strategies/ListCreateStrategy.js +2 -16
  265. package/dist/services/create/strategies/ListCreateStrategy.js.map +1 -1
  266. package/dist/services/create/strategies/TaskCreateStrategy.d.ts.map +1 -1
  267. package/dist/services/create/strategies/TaskCreateStrategy.js.map +1 -1
  268. package/dist/services/metadata/AttributeOptionsService.d.ts +38 -0
  269. package/dist/services/metadata/AttributeOptionsService.d.ts.map +1 -0
  270. package/dist/services/metadata/AttributeOptionsService.js +92 -0
  271. package/dist/services/metadata/AttributeOptionsService.js.map +1 -0
  272. package/dist/services/metadata/MetadataDiscoveryService.d.ts.map +1 -1
  273. package/dist/services/metadata/MetadataDiscoveryService.js.map +1 -1
  274. package/dist/services/metadata/MetadataTransformService.d.ts.map +1 -1
  275. package/dist/services/metadata/MetadataTransformService.js.map +1 -1
  276. package/dist/services/metadata/index.d.ts +1 -0
  277. package/dist/services/metadata/index.d.ts.map +1 -1
  278. package/dist/services/metadata/index.js +1 -0
  279. package/dist/services/metadata/index.js.map +1 -1
  280. package/dist/services/search/QueryApiService.d.ts +27 -0
  281. package/dist/services/search/QueryApiService.d.ts.map +1 -0
  282. package/dist/services/search/QueryApiService.js +144 -0
  283. package/dist/services/search/QueryApiService.js.map +1 -0
  284. package/dist/services/search/RecordsSearchService.d.ts +27 -0
  285. package/dist/services/search/RecordsSearchService.d.ts.map +1 -0
  286. package/dist/services/search/RecordsSearchService.js +122 -0
  287. package/dist/services/search/RecordsSearchService.js.map +1 -0
  288. package/dist/services/search/SearchCoordinator.d.ts +41 -0
  289. package/dist/services/search/SearchCoordinator.d.ts.map +1 -0
  290. package/dist/services/search/SearchCoordinator.js +83 -0
  291. package/dist/services/search/SearchCoordinator.js.map +1 -0
  292. package/dist/services/search/StrategyFactory.d.ts +31 -0
  293. package/dist/services/search/StrategyFactory.d.ts.map +1 -0
  294. package/dist/services/search/StrategyFactory.js +100 -0
  295. package/dist/services/search/StrategyFactory.js.map +1 -0
  296. package/dist/services/search-strategies/BaseSearchStrategy.d.ts +5 -5
  297. package/dist/services/search-strategies/BaseSearchStrategy.d.ts.map +1 -1
  298. package/dist/services/search-strategies/BaseSearchStrategy.js.map +1 -1
  299. package/dist/services/search-strategies/CompanySearchStrategy.d.ts +4 -4
  300. package/dist/services/search-strategies/CompanySearchStrategy.d.ts.map +1 -1
  301. package/dist/services/search-strategies/CompanySearchStrategy.js +1 -1
  302. package/dist/services/search-strategies/CompanySearchStrategy.js.map +1 -1
  303. package/dist/services/search-strategies/DealSearchStrategy.d.ts +4 -4
  304. package/dist/services/search-strategies/DealSearchStrategy.d.ts.map +1 -1
  305. package/dist/services/search-strategies/DealSearchStrategy.js +1 -1
  306. package/dist/services/search-strategies/DealSearchStrategy.js.map +1 -1
  307. package/dist/services/search-strategies/ListSearchStrategy.d.ts +34 -7
  308. package/dist/services/search-strategies/ListSearchStrategy.d.ts.map +1 -1
  309. package/dist/services/search-strategies/ListSearchStrategy.js +65 -24
  310. package/dist/services/search-strategies/ListSearchStrategy.js.map +1 -1
  311. package/dist/services/search-strategies/NoteSearchStrategy.d.ts +4 -4
  312. package/dist/services/search-strategies/NoteSearchStrategy.d.ts.map +1 -1
  313. package/dist/services/search-strategies/NoteSearchStrategy.js +6 -7
  314. package/dist/services/search-strategies/NoteSearchStrategy.js.map +1 -1
  315. package/dist/services/search-strategies/PeopleSearchStrategy.d.ts +4 -4
  316. package/dist/services/search-strategies/PeopleSearchStrategy.d.ts.map +1 -1
  317. package/dist/services/search-strategies/PeopleSearchStrategy.js +1 -1
  318. package/dist/services/search-strategies/PeopleSearchStrategy.js.map +1 -1
  319. package/dist/services/search-strategies/TaskSearchStrategy.d.ts +4 -4
  320. package/dist/services/search-strategies/TaskSearchStrategy.d.ts.map +1 -1
  321. package/dist/services/search-strategies/TaskSearchStrategy.js +7 -8
  322. package/dist/services/search-strategies/TaskSearchStrategy.js.map +1 -1
  323. package/dist/services/search-strategies/interfaces.d.ts +7 -6
  324. package/dist/services/search-strategies/interfaces.d.ts.map +1 -1
  325. package/dist/services/search-utilities/SearchUtilities.d.ts +22 -7
  326. package/dist/services/search-utilities/SearchUtilities.d.ts.map +1 -1
  327. package/dist/services/search-utilities/SearchUtilities.js +52 -4
  328. package/dist/services/search-utilities/SearchUtilities.js.map +1 -1
  329. package/dist/services/skill-generator/OutputWriterService.d.ts +41 -0
  330. package/dist/services/skill-generator/OutputWriterService.d.ts.map +1 -0
  331. package/dist/services/skill-generator/OutputWriterService.js +100 -0
  332. package/dist/services/skill-generator/OutputWriterService.js.map +1 -0
  333. package/dist/services/skill-generator/SchemaFormatterService.d.ts +61 -0
  334. package/dist/services/skill-generator/SchemaFormatterService.d.ts.map +1 -0
  335. package/dist/services/skill-generator/SchemaFormatterService.js +168 -0
  336. package/dist/services/skill-generator/SchemaFormatterService.js.map +1 -0
  337. package/dist/services/skill-generator/WorkspaceSchemaService.d.ts +84 -0
  338. package/dist/services/skill-generator/WorkspaceSchemaService.d.ts.map +1 -0
  339. package/dist/services/skill-generator/WorkspaceSchemaService.js +292 -0
  340. package/dist/services/skill-generator/WorkspaceSchemaService.js.map +1 -0
  341. package/dist/services/skill-generator/index.d.ts +12 -0
  342. package/dist/services/skill-generator/index.d.ts.map +1 -0
  343. package/dist/services/skill-generator/index.js +11 -0
  344. package/dist/services/skill-generator/index.js.map +1 -0
  345. package/dist/services/skill-generator/types.d.ts +137 -0
  346. package/dist/services/skill-generator/types.d.ts.map +1 -0
  347. package/dist/services/skill-generator/types.js +10 -0
  348. package/dist/services/skill-generator/types.js.map +1 -0
  349. package/dist/services/update/FieldPersistenceHandler.d.ts +101 -0
  350. package/dist/services/update/FieldPersistenceHandler.d.ts.map +1 -0
  351. package/dist/services/update/FieldPersistenceHandler.js +207 -0
  352. package/dist/services/update/FieldPersistenceHandler.js.map +1 -0
  353. package/dist/services/update/FieldValidationHandler.d.ts +77 -0
  354. package/dist/services/update/FieldValidationHandler.d.ts.map +1 -0
  355. package/dist/services/update/FieldValidationHandler.js +157 -0
  356. package/dist/services/update/FieldValidationHandler.js.map +1 -0
  357. package/dist/services/update/MetadataResolver.d.ts +50 -0
  358. package/dist/services/update/MetadataResolver.d.ts.map +1 -0
  359. package/dist/services/update/MetadataResolver.js +110 -0
  360. package/dist/services/update/MetadataResolver.js.map +1 -0
  361. package/dist/services/update/ResponseNormalizer.d.ts +4 -4
  362. package/dist/services/update/ResponseNormalizer.d.ts.map +1 -1
  363. package/dist/services/update/ResponseNormalizer.js +18 -9
  364. package/dist/services/update/ResponseNormalizer.js.map +1 -1
  365. package/dist/services/update/UpdateOrchestrator.d.ts +37 -0
  366. package/dist/services/update/UpdateOrchestrator.d.ts.map +1 -0
  367. package/dist/services/update/UpdateOrchestrator.js +58 -0
  368. package/dist/services/update/UpdateOrchestrator.js.map +1 -0
  369. package/dist/services/update/UpdateValidation.d.ts +7 -3
  370. package/dist/services/update/UpdateValidation.d.ts.map +1 -1
  371. package/dist/services/update/UpdateValidation.js +56 -32
  372. package/dist/services/update/UpdateValidation.js.map +1 -1
  373. package/dist/services/update/strategies/BaseUpdateStrategy.d.ts +2 -2
  374. package/dist/services/update/strategies/BaseUpdateStrategy.d.ts.map +1 -1
  375. package/dist/services/update/strategies/ListUpdateStrategy.d.ts +3 -3
  376. package/dist/services/update/strategies/ListUpdateStrategy.d.ts.map +1 -1
  377. package/dist/services/update/strategies/ListUpdateStrategy.js +4 -14
  378. package/dist/services/update/strategies/ListUpdateStrategy.js.map +1 -1
  379. package/dist/services/value-transformer/index.d.ts +57 -0
  380. package/dist/services/value-transformer/index.d.ts.map +1 -0
  381. package/dist/services/value-transformer/index.js +326 -0
  382. package/dist/services/value-transformer/index.js.map +1 -0
  383. package/dist/services/value-transformer/multi-select-transformer.d.ts +63 -0
  384. package/dist/services/value-transformer/multi-select-transformer.d.ts.map +1 -0
  385. package/dist/services/value-transformer/multi-select-transformer.js +144 -0
  386. package/dist/services/value-transformer/multi-select-transformer.js.map +1 -0
  387. package/dist/services/value-transformer/record-reference-transformer.d.ts +43 -0
  388. package/dist/services/value-transformer/record-reference-transformer.d.ts.map +1 -0
  389. package/dist/services/value-transformer/record-reference-transformer.js +245 -0
  390. package/dist/services/value-transformer/record-reference-transformer.js.map +1 -0
  391. package/dist/services/value-transformer/select-transformer.d.ts +48 -0
  392. package/dist/services/value-transformer/select-transformer.d.ts.map +1 -0
  393. package/dist/services/value-transformer/select-transformer.js +232 -0
  394. package/dist/services/value-transformer/select-transformer.js.map +1 -0
  395. package/dist/services/value-transformer/status-transformer.d.ts +32 -0
  396. package/dist/services/value-transformer/status-transformer.d.ts.map +1 -0
  397. package/dist/services/value-transformer/status-transformer.js +329 -0
  398. package/dist/services/value-transformer/status-transformer.js.map +1 -0
  399. package/dist/services/value-transformer/types.d.ts +100 -0
  400. package/dist/services/value-transformer/types.d.ts.map +1 -0
  401. package/dist/services/value-transformer/types.js +6 -0
  402. package/dist/services/value-transformer/types.js.map +1 -0
  403. package/dist/templates/skill/SKILL.template.md +78 -0
  404. package/dist/templates/skill/attribute-reference.template.md +126 -0
  405. package/dist/templates/skill/complex-types.template.md +255 -0
  406. package/dist/types/attio.d.ts +55 -0
  407. package/dist/types/attio.d.ts.map +1 -1
  408. package/dist/types/attio.js +36 -0
  409. package/dist/types/attio.js.map +1 -1
  410. package/dist/utils/client-resolver.d.ts.map +1 -1
  411. package/dist/utils/client-resolver.js +8 -16
  412. package/dist/utils/client-resolver.js.map +1 -1
  413. package/dist/utils/complex-type-validation.d.ts +16 -0
  414. package/dist/utils/complex-type-validation.d.ts.map +1 -0
  415. package/dist/utils/complex-type-validation.js +196 -0
  416. package/dist/utils/complex-type-validation.js.map +1 -0
  417. package/dist/utils/error-response-utils.js +3 -3
  418. package/dist/utils/error-response-utils.js.map +1 -1
  419. package/dist/utils/error-utilities.d.ts.map +1 -1
  420. package/dist/utils/error-utilities.js +16 -9
  421. package/dist/utils/error-utilities.js.map +1 -1
  422. package/dist/utils/location-normalizer.d.ts +26 -0
  423. package/dist/utils/location-normalizer.d.ts.map +1 -0
  424. package/dist/utils/location-normalizer.js +39 -0
  425. package/dist/utils/location-normalizer.js.map +1 -0
  426. package/dist/utils/metadata-utils.d.ts +27 -0
  427. package/dist/utils/metadata-utils.d.ts.map +1 -0
  428. package/dist/utils/metadata-utils.js +59 -0
  429. package/dist/utils/metadata-utils.js.map +1 -0
  430. package/dist/utils/normalization/record-data-normalization.d.ts +47 -0
  431. package/dist/utils/normalization/record-data-normalization.d.ts.map +1 -0
  432. package/dist/utils/normalization/record-data-normalization.js +103 -0
  433. package/dist/utils/normalization/record-data-normalization.js.map +1 -0
  434. package/dist/utils/personal-name-parser.d.ts.map +1 -1
  435. package/dist/utils/personal-name-parser.js +26 -17
  436. package/dist/utils/personal-name-parser.js.map +1 -1
  437. package/dist/validators/company/field_detector.d.ts.map +1 -1
  438. package/dist/validators/company/field_detector.js +5 -0
  439. package/dist/validators/company/field_detector.js.map +1 -1
  440. package/package.json +35 -33
@@ -1 +1 @@
1
- {"version":3,"file":"TaskSearchStrategy.js","sourceRoot":"","sources":["../../../src/services/search-strategies/TaskSearchStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskSearchStrategy.js","sourceRoot":"","sources":["../../../src/services/search-strategies/TaskSearchStrategy.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Search strategy interfaces for UniversalSearchService refactoring
3
3
  * Issue #574: Extract resource-specific search strategies
4
4
  */
5
- import { AttioRecord, AttioList, AttioTask } from '../../types/attio.js';
5
+ import type { AttioList, AttioTask, UniversalRecordResult } from '../../types/attio.js';
6
6
  import { SearchType, MatchType, SortType } from '../../handlers/tool-configs/universal/types.js';
7
7
  /**
8
8
  * Timeframe parameters for date-based filtering
@@ -33,8 +33,9 @@ export interface SearchStrategyParams {
33
33
  export interface ISearchStrategy {
34
34
  /**
35
35
  * Execute the search for this resource type
36
+ * Note: Return type will be updated to UniversalRecord[] in Issue #1073 PR 2
36
37
  */
37
- search(params: SearchStrategyParams): Promise<AttioRecord[]>;
38
+ search(params: SearchStrategyParams): Promise<UniversalRecordResult[]>;
38
39
  /**
39
40
  * Get the resource type this strategy handles
40
41
  */
@@ -52,12 +53,12 @@ export interface ISearchStrategy {
52
53
  * Dependencies that strategies may need
53
54
  */
54
55
  export interface StrategyDependencies {
55
- advancedSearchFunction?: ((filters: Record<string, unknown>, limit?: number, offset?: number) => Promise<AttioRecord[]>) | null;
56
+ advancedSearchFunction?: ((filters: Record<string, unknown>, limit?: number, offset?: number) => Promise<UniversalRecordResult[]>) | null;
56
57
  paginatedSearchFunction?: ((filters: Record<string, unknown>, pagination: {
57
58
  limit?: number;
58
59
  offset?: number;
59
60
  }) => Promise<{
60
- results: AttioRecord[];
61
+ results: UniversalRecordResult[];
61
62
  }>) | null;
62
63
  listFunction?: (query?: string, limit?: number, offset?: number) => Promise<AttioList[]>;
63
64
  taskFunction?: (status?: string, assigneeId?: string, page?: number, pageSize?: number) => Promise<AttioTask[]>;
@@ -69,7 +70,7 @@ export interface StrategyDependencies {
69
70
  }>;
70
71
  createDateFilter?: (params: TimeframeParams) => Record<string, unknown> | null;
71
72
  mergeFilters?: (existing: Record<string, unknown> | undefined, dateFilter: Record<string, unknown>) => Record<string, unknown>;
72
- rankByRelevance?: (results: AttioRecord[], query: string, searchFields: string[]) => AttioRecord[];
73
- getFieldValue?: (record: AttioRecord, field: string) => string;
73
+ rankByRelevance?: <T extends UniversalRecordResult>(results: T[], query: string, searchFields: string[]) => T[];
74
+ getFieldValue?: (record: UniversalRecordResult, field: string) => string;
74
75
  }
75
76
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/services/search-strategies/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/services/search-strategies/interfaces.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  * Search utilities extracted from UniversalSearchService
3
3
  * Issue #574: Extract shared utilities for reuse
4
4
  */
5
- import { AttioRecord } from '../../types/attio.js';
6
- import { TimeframeParams } from '../search-strategies/interfaces.js';
5
+ import type { UniversalRecordResult } from '../../types/attio.js';
6
+ import type { TimeframeParams } from '../../services/search-strategies/interfaces.js';
7
7
  /**
8
8
  * Utility functions for search operations
9
9
  */
@@ -12,12 +12,26 @@ export declare class SearchUtilities {
12
12
  * Rank search results by relevance based on query match frequency
13
13
  * This provides client-side relevance scoring since Attio API doesn't have native relevance ranking
14
14
  */
15
- static rankByRelevance(results: AttioRecord[], query: string, searchFields: string[]): AttioRecord[];
15
+ static rankByRelevance<T extends UniversalRecordResult>(results: T[], query: string, searchFields: string[]): T[];
16
+ /**
17
+ * Extract top-level field value with explicit null/undefined handling
18
+ *
19
+ * @param record - The record object to extract from
20
+ * @param field - The field name to extract
21
+ * @returns The string value if field exists at top level, null if not found
22
+ */
23
+ private static getTopLevelFieldValue;
16
24
  /**
17
25
  * Helper method to extract field value from a record
18
26
  * Issue #598: Simplified with better type safety and helper methods
27
+ * Issue #1068: Check top-level fields first (for lists), with explicit non-string handling
28
+ *
29
+ * Priority order:
30
+ * 1. Top-level string field (for lists and new format)
31
+ * 2. Top-level non-string field (convert to string, skip values wrapper)
32
+ * 3. Values wrapper field (for records in old format)
19
33
  */
20
- static getFieldValue(record: AttioRecord, field: string): string;
34
+ static getFieldValue(record: UniversalRecordResult, field: string): string;
21
35
  /**
22
36
  * Extract string value from various Attio field value structures
23
37
  */
@@ -32,17 +46,18 @@ export declare class SearchUtilities {
32
46
  private static isFieldValueObject;
33
47
  /**
34
48
  * Helper method to extract field value from a list record for content search
49
+ * Issue #1068: Lists now have fields at top level (not wrapped in values)
35
50
  */
36
- static getListFieldValue(list: AttioRecord, field: string): string;
51
+ static getListFieldValue(list: UniversalRecordResult, field: string): string;
37
52
  /**
38
53
  * Helper method to extract field value from a task record for content search
39
54
  */
40
- static getTaskFieldValue(task: AttioRecord, field: string): string;
55
+ static getTaskFieldValue(task: UniversalRecordResult, field: string): string;
41
56
  /**
42
57
  * Helper method to extract field value from a note record for content search
43
58
  * Issue #888: Support notes search by title and content
44
59
  */
45
- static getNoteFieldValue(note: AttioRecord, field: string): string;
60
+ static getNoteFieldValue(note: UniversalRecordResult, field: string): string;
46
61
  /**
47
62
  * Create date filter from timeframe parameters
48
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SearchUtilities.d.ts","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAkBrE;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,GACrB,WAAW,EAAE;IAwDhB;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAQhE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAkB1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlE;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,eAAe,EAAE,eAAe,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAuDjC;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA+B3B"}
1
+ {"version":3,"file":"SearchUtilities.d.ts","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAkBlF;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,qBAAqB,EACpD,OAAO,EAAE,CAAC,EAAE,EACZ,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,GACrB,CAAC,EAAE;IAwDN;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAmBpC;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoB1E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAkB1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAgC5E;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAsB5E;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAsB5E;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,eAAe,EAAE,eAAe,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAuDjC;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA+B3B"}
@@ -2,6 +2,7 @@
2
2
  * Search utilities extracted from UniversalSearchService
3
3
  * Issue #574: Extract shared utilities for reuse
4
4
  */
5
+ import { isAttioRecord } from '../../types/attio.js';
5
6
  /**
6
7
  * Utility functions for search operations
7
8
  */
@@ -60,12 +61,46 @@ export class SearchUtilities {
60
61
  });
61
62
  return scoredResults.map((item) => item.record);
62
63
  }
64
+ /**
65
+ * Extract top-level field value with explicit null/undefined handling
66
+ *
67
+ * @param record - The record object to extract from
68
+ * @param field - The field name to extract
69
+ * @returns The string value if field exists at top level, null if not found
70
+ */
71
+ static getTopLevelFieldValue(record, field) {
72
+ const topLevelValue = record[field];
73
+ // Explicitly handle non-string top-level values
74
+ if (topLevelValue !== undefined && topLevelValue !== null) {
75
+ if (typeof topLevelValue === 'string') {
76
+ return topLevelValue;
77
+ }
78
+ // Top-level exists but isn't a string - convert to string, skip values wrapper
79
+ // This prevents unintended fallback to values wrapper when top-level field exists
80
+ return String(topLevelValue);
81
+ }
82
+ return null; // Field not found at top level
83
+ }
63
84
  /**
64
85
  * Helper method to extract field value from a record
65
86
  * Issue #598: Simplified with better type safety and helper methods
87
+ * Issue #1068: Check top-level fields first (for lists), with explicit non-string handling
88
+ *
89
+ * Priority order:
90
+ * 1. Top-level string field (for lists and new format)
91
+ * 2. Top-level non-string field (convert to string, skip values wrapper)
92
+ * 3. Values wrapper field (for records in old format)
66
93
  */
67
94
  static getFieldValue(record, field) {
68
- const values = record.values;
95
+ // Try top-level fields first (for lists and new format)
96
+ const topLevelValue = this.getTopLevelFieldValue(record, field);
97
+ if (topLevelValue !== null) {
98
+ return topLevelValue;
99
+ }
100
+ // No top-level field - check in values wrapper (for other record types)
101
+ const values = isAttioRecord(record)
102
+ ? record.values
103
+ : undefined;
69
104
  if (!values)
70
105
  return '';
71
106
  const fieldValue = values[field];
@@ -112,9 +147,18 @@ export class SearchUtilities {
112
147
  }
113
148
  /**
114
149
  * Helper method to extract field value from a list record for content search
150
+ * Issue #1068: Lists now have fields at top level (not wrapped in values)
115
151
  */
116
152
  static getListFieldValue(list, field) {
117
- const values = list.values;
153
+ // Try top-level field first (new format) - uses shared helper for consistency
154
+ const topLevelValue = this.getTopLevelFieldValue(list, field);
155
+ if (topLevelValue !== null) {
156
+ return topLevelValue;
157
+ }
158
+ // Fall back to values wrapper for backwards compatibility (old format)
159
+ const values = isAttioRecord(list)
160
+ ? list.values
161
+ : undefined;
118
162
  if (!values)
119
163
  return '';
120
164
  const fieldValue = values[field];
@@ -133,7 +177,9 @@ export class SearchUtilities {
133
177
  * Helper method to extract field value from a task record for content search
134
178
  */
135
179
  static getTaskFieldValue(task, field) {
136
- const values = task.values;
180
+ const values = isAttioRecord(task)
181
+ ? task.values
182
+ : undefined;
137
183
  if (!values)
138
184
  return '';
139
185
  const fieldValue = values[field];
@@ -153,7 +199,9 @@ export class SearchUtilities {
153
199
  * Issue #888: Support notes search by title and content
154
200
  */
155
201
  static getNoteFieldValue(note, field) {
156
- const values = note.values;
202
+ const values = isAttioRecord(note)
203
+ ? note.values
204
+ : undefined;
157
205
  if (!values)
158
206
  return '';
159
207
  const fieldValue = values[field];
@@ -1 +1 @@
1
- {"version":3,"file":"SearchUtilities.js","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchUtilities.js","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchUtilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Service for writing formatted output to disk
3
+ *
4
+ * Handles file I/O operations including:
5
+ * - Creating directory structures
6
+ * - Writing files to disk
7
+ * - Creating ZIP archives
8
+ * - Path validation (security)
9
+ *
10
+ * @see Issue #983
11
+ */
12
+ import type { FormattedOutput, GenerateSkillConfig, SkillOutput } from './types.js';
13
+ /**
14
+ * Service for writing skill output to disk
15
+ */
16
+ export declare class OutputWriterService {
17
+ /**
18
+ * Writes formatted output to disk
19
+ *
20
+ * @param formatted - Formatted output from SchemaFormatterService
21
+ * @param config - Generation configuration
22
+ * @returns Information about written files
23
+ */
24
+ write(formatted: FormattedOutput, config: GenerateSkillConfig): Promise<SkillOutput>;
25
+ /**
26
+ * Creates ZIP archive of output files
27
+ *
28
+ * @param basePath - Base directory path
29
+ * @param files - Map of relative paths to file contents
30
+ */
31
+ private createZip;
32
+ /**
33
+ * Resolves and validates output path
34
+ *
35
+ * @param config - Generation configuration
36
+ * @returns Absolute output path
37
+ * @throws Error if path validation fails (directory traversal attempt)
38
+ */
39
+ private resolveOutputPath;
40
+ }
41
+ //# sourceMappingURL=OutputWriterService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputWriterService.d.ts","sourceRoot":"","sources":["../../../src/services/skill-generator/OutputWriterService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;OAMG;IACG,KAAK,CACT,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,WAAW,CAAC;IAiCvB;;;;;OAKG;YACW,SAAS;IAqBvB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;CA4B1B"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Service for writing formatted output to disk
3
+ *
4
+ * Handles file I/O operations including:
5
+ * - Creating directory structures
6
+ * - Writing files to disk
7
+ * - Creating ZIP archives
8
+ * - Path validation (security)
9
+ *
10
+ * @see Issue #983
11
+ */
12
+ import * as fs from 'fs/promises';
13
+ import * as path from 'path';
14
+ import { zipSync, strToU8 } from 'fflate';
15
+ /**
16
+ * Service for writing skill output to disk
17
+ */
18
+ export class OutputWriterService {
19
+ /**
20
+ * Writes formatted output to disk
21
+ *
22
+ * @param formatted - Formatted output from SchemaFormatterService
23
+ * @param config - Generation configuration
24
+ * @returns Information about written files
25
+ */
26
+ async write(formatted, config) {
27
+ const outputPath = this.resolveOutputPath(config);
28
+ // Create output directory
29
+ await fs.mkdir(outputPath, { recursive: true });
30
+ // Write all files
31
+ const writtenFiles = [];
32
+ for (const [relativePath, content] of Object.entries(formatted.files)) {
33
+ const fullPath = path.join(outputPath, relativePath);
34
+ const dir = path.dirname(fullPath);
35
+ // Ensure directory exists
36
+ await fs.mkdir(dir, { recursive: true });
37
+ // Write file
38
+ await fs.writeFile(fullPath, content, 'utf8');
39
+ writtenFiles.push(relativePath);
40
+ }
41
+ // Create ZIP if requested
42
+ if (config.zip) {
43
+ await this.createZip(outputPath, formatted.files);
44
+ writtenFiles.push(`${path.basename(outputPath)}.zip`);
45
+ }
46
+ return {
47
+ format: formatted.format,
48
+ path: outputPath,
49
+ files: writtenFiles,
50
+ };
51
+ }
52
+ /**
53
+ * Creates ZIP archive of output files
54
+ *
55
+ * @param basePath - Base directory path
56
+ * @param files - Map of relative paths to file contents
57
+ */
58
+ async createZip(basePath, files) {
59
+ // Convert files to fflate format (Uint8Array)
60
+ const fileMap = {};
61
+ for (const [relativePath, content] of Object.entries(files)) {
62
+ fileMap[relativePath] = strToU8(content);
63
+ }
64
+ // Create ZIP
65
+ const zipped = zipSync(fileMap, {
66
+ level: 6, // Compression level (0-9, 6 is default)
67
+ });
68
+ // Write ZIP file
69
+ const zipPath = `${basePath}.zip`;
70
+ await fs.writeFile(zipPath, zipped);
71
+ }
72
+ /**
73
+ * Resolves and validates output path
74
+ *
75
+ * @param config - Generation configuration
76
+ * @returns Absolute output path
77
+ * @throws Error if path validation fails (directory traversal attempt)
78
+ */
79
+ resolveOutputPath(config) {
80
+ // Determine base name based on format
81
+ const baseName = config.format === 'skill'
82
+ ? 'attio-workspace-skill'
83
+ : `attio-workspace-schema-${config.format}`;
84
+ // Resolve absolute paths
85
+ const outputDirResolved = path.resolve(config.outputDir);
86
+ const currentWorkingDir = process.cwd();
87
+ // Security: Prevent directory traversal attacks
88
+ // Check if outputDir attempts to escape the current working directory
89
+ const normalized = path.normalize(outputDirResolved);
90
+ // Only allow output within current working directory or subdirectories
91
+ if (!normalized.startsWith(currentWorkingDir)) {
92
+ throw new Error('Invalid output path: directory traversal detected. ' +
93
+ `Output directory must be within current working directory: ${currentWorkingDir}`);
94
+ }
95
+ // Construct final output path
96
+ const outputPath = path.join(outputDirResolved, baseName);
97
+ return outputPath;
98
+ }
99
+ }
100
+ //# sourceMappingURL=OutputWriterService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputWriterService.js","sourceRoot":"","sources":["../../../src/services/skill-generator/OutputWriterService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Service for formatting workspace schemas into various output formats
3
+ *
4
+ * Uses Handlebars templates to transform WorkspaceSchema objects into:
5
+ * - Claude Skills (SKILL.md + resources/)
6
+ * - Plain Markdown (single file)
7
+ * - JSON (machine-readable)
8
+ *
9
+ * @see Issue #983
10
+ */
11
+ import type { WorkspaceSchema, FormattedOutput } from './types.js';
12
+ /**
13
+ * Service for formatting workspace schemas into various output formats
14
+ */
15
+ export declare class SchemaFormatterService {
16
+ private templates;
17
+ private helpersRegistered;
18
+ constructor();
19
+ /**
20
+ * Formats schema to specified output format
21
+ *
22
+ * @param schema - Complete workspace schema
23
+ * @param format - Output format (skill, markdown, json)
24
+ * @returns Formatted output ready for writing
25
+ */
26
+ format(schema: WorkspaceSchema, format: 'skill' | 'markdown' | 'json'): Promise<FormattedOutput>;
27
+ /**
28
+ * Formats as Claude Skill with SKILL.md + resources/
29
+ *
30
+ * @param schema - Workspace schema
31
+ * @returns Skill files ready for writing
32
+ */
33
+ private formatAsSkill;
34
+ /**
35
+ * Formats as single markdown file (all-in-one)
36
+ *
37
+ * @param schema - Workspace schema
38
+ * @returns Single markdown file
39
+ */
40
+ private formatAsMarkdown;
41
+ /**
42
+ * Formats as JSON (machine-readable)
43
+ *
44
+ * @param schema - Workspace schema
45
+ * @returns JSON representation
46
+ */
47
+ private formatAsJSON;
48
+ /**
49
+ * Renders a template with the given data
50
+ *
51
+ * @param templateName - Template filename
52
+ * @param data - Data to pass to template
53
+ * @returns Rendered template string
54
+ */
55
+ private renderTemplate;
56
+ /**
57
+ * Registers custom Handlebars helpers
58
+ */
59
+ private registerHelpers;
60
+ }
61
+ //# sourceMappingURL=SchemaFormatterService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaFormatterService.d.ts","sourceRoot":"","sources":["../../../src/services/skill-generator/SchemaFormatterService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMnE;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,iBAAiB,CAAS;;IAMlC;;;;;;OAMG;IACG,MAAM,CACV,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GACpC,OAAO,CAAC,eAAe,CAAC;IAa3B;;;;;OAKG;YACW,aAAa;IAsD3B;;;;;OAKG;YACW,gBAAgB;IAyB9B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IASpB;;;;;;OAMG;YACW,cAAc;IA+B5B;;OAEG;IACH,OAAO,CAAC,eAAe;CAsBxB"}