attio-mcp 0.1.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 (644) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/LICENSE +236 -0
  3. package/README.md +105 -0
  4. package/dist/api/attio-client.d.ts +25 -0
  5. package/dist/api/attio-client.d.ts.map +1 -0
  6. package/dist/api/attio-client.js +64 -0
  7. package/dist/api/attio-client.js.map +1 -0
  8. package/dist/api/attribute-types.d.ts +119 -0
  9. package/dist/api/attribute-types.d.ts.map +1 -0
  10. package/dist/api/attribute-types.js +320 -0
  11. package/dist/api/attribute-types.js.map +1 -0
  12. package/dist/api/client.d.ts +3 -0
  13. package/dist/api/client.d.ts.map +1 -0
  14. package/dist/api/client.js +61 -0
  15. package/dist/api/client.js.map +1 -0
  16. package/dist/api/operations/batch.d.ts +55 -0
  17. package/dist/api/operations/batch.d.ts.map +1 -0
  18. package/dist/api/operations/batch.js +176 -0
  19. package/dist/api/operations/batch.js.map +1 -0
  20. package/dist/api/operations/crud.d.ts +61 -0
  21. package/dist/api/operations/crud.d.ts.map +1 -0
  22. package/dist/api/operations/crud.js +192 -0
  23. package/dist/api/operations/crud.js.map +1 -0
  24. package/dist/api/operations/index.d.ts +14 -0
  25. package/dist/api/operations/index.d.ts.map +1 -0
  26. package/dist/api/operations/index.js +18 -0
  27. package/dist/api/operations/index.js.map +1 -0
  28. package/dist/api/operations/lists.d.ts +66 -0
  29. package/dist/api/operations/lists.d.ts.map +1 -0
  30. package/dist/api/operations/lists.js +300 -0
  31. package/dist/api/operations/lists.js.map +1 -0
  32. package/dist/api/operations/notes.d.ts +29 -0
  33. package/dist/api/operations/notes.d.ts.map +1 -0
  34. package/dist/api/operations/notes.js +63 -0
  35. package/dist/api/operations/notes.js.map +1 -0
  36. package/dist/api/operations/retry.d.ts +48 -0
  37. package/dist/api/operations/retry.d.ts.map +1 -0
  38. package/dist/api/operations/retry.js +98 -0
  39. package/dist/api/operations/retry.js.map +1 -0
  40. package/dist/api/operations/search.d.ts +37 -0
  41. package/dist/api/operations/search.d.ts.map +1 -0
  42. package/dist/api/operations/search.js +186 -0
  43. package/dist/api/operations/search.js.map +1 -0
  44. package/dist/api/operations/tasks.d.ts +20 -0
  45. package/dist/api/operations/tasks.d.ts.map +1 -0
  46. package/dist/api/operations/tasks.js +87 -0
  47. package/dist/api/operations/tasks.js.map +1 -0
  48. package/dist/api/operations/types.d.ts +61 -0
  49. package/dist/api/operations/types.d.ts.map +1 -0
  50. package/dist/api/operations/types.js +10 -0
  51. package/dist/api/operations/types.js.map +1 -0
  52. package/dist/cli/commands/attributes.d.ts +34 -0
  53. package/dist/cli/commands/attributes.d.ts.map +1 -0
  54. package/dist/cli/commands/attributes.js +171 -0
  55. package/dist/cli/commands/attributes.js.map +1 -0
  56. package/dist/cli/discover.d.ts +3 -0
  57. package/dist/cli/discover.d.ts.map +1 -0
  58. package/dist/cli/discover.js +72 -0
  59. package/dist/cli/discover.js.map +1 -0
  60. package/dist/errors/api-errors.d.ts +191 -0
  61. package/dist/errors/api-errors.d.ts.map +1 -0
  62. package/dist/errors/api-errors.js +305 -0
  63. package/dist/errors/api-errors.js.map +1 -0
  64. package/dist/errors/company-errors.d.ts +40 -0
  65. package/dist/errors/company-errors.d.ts.map +1 -0
  66. package/dist/errors/company-errors.js +62 -0
  67. package/dist/errors/company-errors.js.map +1 -0
  68. package/dist/errors/value-match-error.d.ts +15 -0
  69. package/dist/errors/value-match-error.d.ts.map +1 -0
  70. package/dist/errors/value-match-error.js +40 -0
  71. package/dist/errors/value-match-error.js.map +1 -0
  72. package/dist/handlers/error-interceptor.d.ts +6 -0
  73. package/dist/handlers/error-interceptor.d.ts.map +1 -0
  74. package/dist/handlers/error-interceptor.js +17 -0
  75. package/dist/handlers/error-interceptor.js.map +1 -0
  76. package/dist/handlers/rate-limited-handler.d.ts +17 -0
  77. package/dist/handlers/rate-limited-handler.d.ts.map +1 -0
  78. package/dist/handlers/rate-limited-handler.js +126 -0
  79. package/dist/handlers/rate-limited-handler.js.map +1 -0
  80. package/dist/handlers/resources.d.ts +11 -0
  81. package/dist/handlers/resources.d.ts.map +1 -0
  82. package/dist/handlers/resources.js +109 -0
  83. package/dist/handlers/resources.js.map +1 -0
  84. package/dist/handlers/tool-configs/companies/attributes.d.ts +85 -0
  85. package/dist/handlers/tool-configs/companies/attributes.d.ts.map +1 -0
  86. package/dist/handlers/tool-configs/companies/attributes.js +203 -0
  87. package/dist/handlers/tool-configs/companies/attributes.js.map +1 -0
  88. package/dist/handlers/tool-configs/companies/batch.d.ts +145 -0
  89. package/dist/handlers/tool-configs/companies/batch.d.ts.map +1 -0
  90. package/dist/handlers/tool-configs/companies/batch.js +249 -0
  91. package/dist/handlers/tool-configs/companies/batch.js.map +1 -0
  92. package/dist/handlers/tool-configs/companies/crud.d.ts +103 -0
  93. package/dist/handlers/tool-configs/companies/crud.d.ts.map +1 -0
  94. package/dist/handlers/tool-configs/companies/crud.js +157 -0
  95. package/dist/handlers/tool-configs/companies/crud.js.map +1 -0
  96. package/dist/handlers/tool-configs/companies/definitions.d.ts +5 -0
  97. package/dist/handlers/tool-configs/companies/definitions.d.ts.map +1 -0
  98. package/dist/handlers/tool-configs/companies/definitions.js +9 -0
  99. package/dist/handlers/tool-configs/companies/definitions.js.map +1 -0
  100. package/dist/handlers/tool-configs/companies/formatters.d.ts +42 -0
  101. package/dist/handlers/tool-configs/companies/formatters.d.ts.map +1 -0
  102. package/dist/handlers/tool-configs/companies/formatters.js +324 -0
  103. package/dist/handlers/tool-configs/companies/formatters.js.map +1 -0
  104. package/dist/handlers/tool-configs/companies/index.d.ts +642 -0
  105. package/dist/handlers/tool-configs/companies/index.d.ts.map +1 -0
  106. package/dist/handlers/tool-configs/companies/index.js +86 -0
  107. package/dist/handlers/tool-configs/companies/index.js.map +1 -0
  108. package/dist/handlers/tool-configs/companies/notes.d.ts +61 -0
  109. package/dist/handlers/tool-configs/companies/notes.d.ts.map +1 -0
  110. package/dist/handlers/tool-configs/companies/notes.js +109 -0
  111. package/dist/handlers/tool-configs/companies/notes.js.map +1 -0
  112. package/dist/handlers/tool-configs/companies/relationships.d.ts +137 -0
  113. package/dist/handlers/tool-configs/companies/relationships.d.ts.map +1 -0
  114. package/dist/handlers/tool-configs/companies/relationships.js +163 -0
  115. package/dist/handlers/tool-configs/companies/relationships.js.map +1 -0
  116. package/dist/handlers/tool-configs/companies/search.d.ts +101 -0
  117. package/dist/handlers/tool-configs/companies/search.d.ts.map +1 -0
  118. package/dist/handlers/tool-configs/companies/search.js +163 -0
  119. package/dist/handlers/tool-configs/companies/search.js.map +1 -0
  120. package/dist/handlers/tool-configs/companies/types.d.ts +6 -0
  121. package/dist/handlers/tool-configs/companies/types.d.ts.map +1 -0
  122. package/dist/handlers/tool-configs/companies/types.js +2 -0
  123. package/dist/handlers/tool-configs/companies/types.js.map +1 -0
  124. package/dist/handlers/tool-configs/index.d.ts +12 -0
  125. package/dist/handlers/tool-configs/index.d.ts.map +1 -0
  126. package/dist/handlers/tool-configs/index.js +12 -0
  127. package/dist/handlers/tool-configs/index.js.map +1 -0
  128. package/dist/handlers/tool-configs/lists.d.ts +459 -0
  129. package/dist/handlers/tool-configs/lists.d.ts.map +1 -0
  130. package/dist/handlers/tool-configs/lists.js +597 -0
  131. package/dist/handlers/tool-configs/lists.js.map +1 -0
  132. package/dist/handlers/tool-configs/paginated-people.d.ts +197 -0
  133. package/dist/handlers/tool-configs/paginated-people.d.ts.map +1 -0
  134. package/dist/handlers/tool-configs/paginated-people.js +256 -0
  135. package/dist/handlers/tool-configs/paginated-people.js.map +1 -0
  136. package/dist/handlers/tool-configs/people/activity-search.d.ts +98 -0
  137. package/dist/handlers/tool-configs/people/activity-search.d.ts.map +1 -0
  138. package/dist/handlers/tool-configs/people/activity-search.js +113 -0
  139. package/dist/handlers/tool-configs/people/activity-search.js.map +1 -0
  140. package/dist/handlers/tool-configs/people/advanced-search.d.ts +62 -0
  141. package/dist/handlers/tool-configs/people/advanced-search.d.ts.map +1 -0
  142. package/dist/handlers/tool-configs/people/advanced-search.js +74 -0
  143. package/dist/handlers/tool-configs/people/advanced-search.js.map +1 -0
  144. package/dist/handlers/tool-configs/people/crud.d.ts +63 -0
  145. package/dist/handlers/tool-configs/people/crud.d.ts.map +1 -0
  146. package/dist/handlers/tool-configs/people/crud.js +71 -0
  147. package/dist/handlers/tool-configs/people/crud.js.map +1 -0
  148. package/dist/handlers/tool-configs/people/date-search.d.ts +42 -0
  149. package/dist/handlers/tool-configs/people/date-search.d.ts.map +1 -0
  150. package/dist/handlers/tool-configs/people/date-search.js +93 -0
  151. package/dist/handlers/tool-configs/people/date-search.js.map +1 -0
  152. package/dist/handlers/tool-configs/people/formatters.d.ts +19 -0
  153. package/dist/handlers/tool-configs/people/formatters.d.ts.map +1 -0
  154. package/dist/handlers/tool-configs/people/formatters.js +98 -0
  155. package/dist/handlers/tool-configs/people/formatters.js.map +1 -0
  156. package/dist/handlers/tool-configs/people/index.d.ts +407 -0
  157. package/dist/handlers/tool-configs/people/index.d.ts.map +1 -0
  158. package/dist/handlers/tool-configs/people/index.js +30 -0
  159. package/dist/handlers/tool-configs/people/index.js.map +1 -0
  160. package/dist/handlers/tool-configs/people/notes.d.ts +38 -0
  161. package/dist/handlers/tool-configs/people/notes.d.ts.map +1 -0
  162. package/dist/handlers/tool-configs/people/notes.js +57 -0
  163. package/dist/handlers/tool-configs/people/notes.js.map +1 -0
  164. package/dist/handlers/tool-configs/people/relationships.d.ts +112 -0
  165. package/dist/handlers/tool-configs/people/relationships.d.ts.map +1 -0
  166. package/dist/handlers/tool-configs/people/relationships.js +173 -0
  167. package/dist/handlers/tool-configs/people/relationships.js.map +1 -0
  168. package/dist/handlers/tool-configs/people/search.d.ts +53 -0
  169. package/dist/handlers/tool-configs/people/search.d.ts.map +1 -0
  170. package/dist/handlers/tool-configs/people/search.js +61 -0
  171. package/dist/handlers/tool-configs/people/search.js.map +1 -0
  172. package/dist/handlers/tool-configs/people-fix-complete.d.ts +6 -0
  173. package/dist/handlers/tool-configs/people-fix-complete.d.ts.map +1 -0
  174. package/dist/handlers/tool-configs/people-fix-complete.js +76 -0
  175. package/dist/handlers/tool-configs/people-fix-complete.js.map +1 -0
  176. package/dist/handlers/tool-configs/people-fixed.d.ts +12 -0
  177. package/dist/handlers/tool-configs/people-fixed.d.ts.map +1 -0
  178. package/dist/handlers/tool-configs/people-fixed.js +58 -0
  179. package/dist/handlers/tool-configs/people-fixed.js.map +1 -0
  180. package/dist/handlers/tool-configs/people-types.d.ts +32 -0
  181. package/dist/handlers/tool-configs/people-types.d.ts.map +1 -0
  182. package/dist/handlers/tool-configs/people-types.js +5 -0
  183. package/dist/handlers/tool-configs/people-types.js.map +1 -0
  184. package/dist/handlers/tool-configs/people.d.ts +599 -0
  185. package/dist/handlers/tool-configs/people.d.ts.map +1 -0
  186. package/dist/handlers/tool-configs/people.js +817 -0
  187. package/dist/handlers/tool-configs/people.js.map +1 -0
  188. package/dist/handlers/tool-configs/prompts.d.ts +69 -0
  189. package/dist/handlers/tool-configs/prompts.d.ts.map +1 -0
  190. package/dist/handlers/tool-configs/prompts.js +90 -0
  191. package/dist/handlers/tool-configs/prompts.js.map +1 -0
  192. package/dist/handlers/tool-configs/rate-limited-people.d.ts +203 -0
  193. package/dist/handlers/tool-configs/rate-limited-people.d.ts.map +1 -0
  194. package/dist/handlers/tool-configs/rate-limited-people.js +44 -0
  195. package/dist/handlers/tool-configs/rate-limited-people.js.map +1 -0
  196. package/dist/handlers/tool-configs/records/index.d.ts +282 -0
  197. package/dist/handlers/tool-configs/records/index.d.ts.map +1 -0
  198. package/dist/handlers/tool-configs/records/index.js +277 -0
  199. package/dist/handlers/tool-configs/records/index.js.map +1 -0
  200. package/dist/handlers/tool-configs/records.d.ts +282 -0
  201. package/dist/handlers/tool-configs/records.d.ts.map +1 -0
  202. package/dist/handlers/tool-configs/records.js +277 -0
  203. package/dist/handlers/tool-configs/records.js.map +1 -0
  204. package/dist/handlers/tool-configs/resource-specific-tools.d.ts +15 -0
  205. package/dist/handlers/tool-configs/resource-specific-tools.d.ts.map +1 -0
  206. package/dist/handlers/tool-configs/resource-specific-tools.js +33 -0
  207. package/dist/handlers/tool-configs/resource-specific-tools.js.map +1 -0
  208. package/dist/handlers/tool-configs/tasks.d.ts +127 -0
  209. package/dist/handlers/tool-configs/tasks.d.ts.map +1 -0
  210. package/dist/handlers/tool-configs/tasks.js +95 -0
  211. package/dist/handlers/tool-configs/tasks.js.map +1 -0
  212. package/dist/handlers/tool-types.d.ts +47 -0
  213. package/dist/handlers/tool-types.d.ts.map +1 -0
  214. package/dist/handlers/tool-types.js +2 -0
  215. package/dist/handlers/tool-types.js.map +1 -0
  216. package/dist/handlers/tools/config-verifier.d.ts +27 -0
  217. package/dist/handlers/tools/config-verifier.d.ts.map +1 -0
  218. package/dist/handlers/tools/config-verifier.js +108 -0
  219. package/dist/handlers/tools/config-verifier.js.map +1 -0
  220. package/dist/handlers/tools/dispatcher/core.d.ts +12 -0
  221. package/dist/handlers/tools/dispatcher/core.d.ts.map +1 -0
  222. package/dist/handlers/tools/dispatcher/core.js +276 -0
  223. package/dist/handlers/tools/dispatcher/core.js.map +1 -0
  224. package/dist/handlers/tools/dispatcher/formatting.d.ts +17 -0
  225. package/dist/handlers/tools/dispatcher/formatting.d.ts.map +1 -0
  226. package/dist/handlers/tools/dispatcher/formatting.js +25 -0
  227. package/dist/handlers/tools/dispatcher/formatting.js.map +1 -0
  228. package/dist/handlers/tools/dispatcher/logging.d.ts +63 -0
  229. package/dist/handlers/tools/dispatcher/logging.d.ts.map +1 -0
  230. package/dist/handlers/tools/dispatcher/logging.js +108 -0
  231. package/dist/handlers/tools/dispatcher/logging.js.map +1 -0
  232. package/dist/handlers/tools/dispatcher/operations/batch.d.ts +29 -0
  233. package/dist/handlers/tools/dispatcher/operations/batch.d.ts.map +1 -0
  234. package/dist/handlers/tools/dispatcher/operations/batch.js +137 -0
  235. package/dist/handlers/tools/dispatcher/operations/batch.js.map +1 -0
  236. package/dist/handlers/tools/dispatcher/operations/crud.d.ts +25 -0
  237. package/dist/handlers/tools/dispatcher/operations/crud.d.ts.map +1 -0
  238. package/dist/handlers/tools/dispatcher/operations/crud.js +110 -0
  239. package/dist/handlers/tools/dispatcher/operations/crud.js.map +1 -0
  240. package/dist/handlers/tools/dispatcher/operations/details.d.ts +13 -0
  241. package/dist/handlers/tools/dispatcher/operations/details.d.ts.map +1 -0
  242. package/dist/handlers/tools/dispatcher/operations/details.js +52 -0
  243. package/dist/handlers/tools/dispatcher/operations/details.js.map +1 -0
  244. package/dist/handlers/tools/dispatcher/operations/info.d.ts +25 -0
  245. package/dist/handlers/tools/dispatcher/operations/info.d.ts.map +1 -0
  246. package/dist/handlers/tools/dispatcher/operations/info.js +82 -0
  247. package/dist/handlers/tools/dispatcher/operations/info.js.map +1 -0
  248. package/dist/handlers/tools/dispatcher/operations/lists.d.ts +62 -0
  249. package/dist/handlers/tools/dispatcher/operations/lists.d.ts.map +1 -0
  250. package/dist/handlers/tools/dispatcher/operations/lists.js +283 -0
  251. package/dist/handlers/tools/dispatcher/operations/lists.js.map +1 -0
  252. package/dist/handlers/tools/dispatcher/operations/notes.d.ts +17 -0
  253. package/dist/handlers/tools/dispatcher/operations/notes.d.ts.map +1 -0
  254. package/dist/handlers/tools/dispatcher/operations/notes.js +102 -0
  255. package/dist/handlers/tools/dispatcher/operations/notes.js.map +1 -0
  256. package/dist/handlers/tools/dispatcher/operations/search.d.ts +43 -0
  257. package/dist/handlers/tools/dispatcher/operations/search.d.ts.map +1 -0
  258. package/dist/handlers/tools/dispatcher/operations/search.js +190 -0
  259. package/dist/handlers/tools/dispatcher/operations/search.js.map +1 -0
  260. package/dist/handlers/tools/dispatcher/validation.d.ts +27 -0
  261. package/dist/handlers/tools/dispatcher/validation.d.ts.map +1 -0
  262. package/dist/handlers/tools/dispatcher/validation.js +47 -0
  263. package/dist/handlers/tools/dispatcher/validation.js.map +1 -0
  264. package/dist/handlers/tools/dispatcher.d.ts +11 -0
  265. package/dist/handlers/tools/dispatcher.d.ts.map +1 -0
  266. package/dist/handlers/tools/dispatcher.js +15 -0
  267. package/dist/handlers/tools/dispatcher.js.map +1 -0
  268. package/dist/handlers/tools/error-types.d.ts +33 -0
  269. package/dist/handlers/tools/error-types.d.ts.map +1 -0
  270. package/dist/handlers/tools/error-types.js +21 -0
  271. package/dist/handlers/tools/error-types.js.map +1 -0
  272. package/dist/handlers/tools/formatters.d.ts +43 -0
  273. package/dist/handlers/tools/formatters.d.ts.map +1 -0
  274. package/dist/handlers/tools/formatters.js +170 -0
  275. package/dist/handlers/tools/formatters.js.map +1 -0
  276. package/dist/handlers/tools/index.d.ts +15 -0
  277. package/dist/handlers/tools/index.d.ts.map +1 -0
  278. package/dist/handlers/tools/index.js +34 -0
  279. package/dist/handlers/tools/index.js.map +1 -0
  280. package/dist/handlers/tools/registry.d.ts +1874 -0
  281. package/dist/handlers/tools/registry.d.ts.map +1 -0
  282. package/dist/handlers/tools/registry.js +103 -0
  283. package/dist/handlers/tools/registry.js.map +1 -0
  284. package/dist/health/http-server.d.ts +24 -0
  285. package/dist/health/http-server.d.ts.map +1 -0
  286. package/dist/health/http-server.js +106 -0
  287. package/dist/health/http-server.js.map +1 -0
  288. package/dist/index.d.ts +3 -0
  289. package/dist/index.d.ts.map +1 -0
  290. package/dist/index.js +238 -0
  291. package/dist/index.js.map +1 -0
  292. package/dist/objects/base-operations.d.ts +41 -0
  293. package/dist/objects/base-operations.d.ts.map +1 -0
  294. package/dist/objects/base-operations.js +116 -0
  295. package/dist/objects/base-operations.js.map +1 -0
  296. package/dist/objects/batch-companies.d.ts +112 -0
  297. package/dist/objects/batch-companies.d.ts.map +1 -0
  298. package/dist/objects/batch-companies.js +347 -0
  299. package/dist/objects/batch-companies.js.map +1 -0
  300. package/dist/objects/companies/attributes.d.ts +83 -0
  301. package/dist/objects/companies/attributes.d.ts.map +1 -0
  302. package/dist/objects/companies/attributes.js +426 -0
  303. package/dist/objects/companies/attributes.js.map +1 -0
  304. package/dist/objects/companies/basic.d.ts +117 -0
  305. package/dist/objects/companies/basic.d.ts.map +1 -0
  306. package/dist/objects/companies/basic.js +367 -0
  307. package/dist/objects/companies/basic.js.map +1 -0
  308. package/dist/objects/companies/batch.d.ts +6 -0
  309. package/dist/objects/companies/batch.d.ts.map +1 -0
  310. package/dist/objects/companies/batch.js +6 -0
  311. package/dist/objects/companies/batch.js.map +1 -0
  312. package/dist/objects/companies/index.d.ts +13 -0
  313. package/dist/objects/companies/index.d.ts.map +1 -0
  314. package/dist/objects/companies/index.js +17 -0
  315. package/dist/objects/companies/index.js.map +1 -0
  316. package/dist/objects/companies/notes.d.ts +26 -0
  317. package/dist/objects/companies/notes.d.ts.map +1 -0
  318. package/dist/objects/companies/notes.js +199 -0
  319. package/dist/objects/companies/notes.js.map +1 -0
  320. package/dist/objects/companies/relationships.d.ts +41 -0
  321. package/dist/objects/companies/relationships.d.ts.map +1 -0
  322. package/dist/objects/companies/relationships.js +142 -0
  323. package/dist/objects/companies/relationships.js.map +1 -0
  324. package/dist/objects/companies/search.d.ts +158 -0
  325. package/dist/objects/companies/search.d.ts.map +1 -0
  326. package/dist/objects/companies/search.js +463 -0
  327. package/dist/objects/companies/search.js.map +1 -0
  328. package/dist/objects/companies/types.d.ts +27 -0
  329. package/dist/objects/companies/types.d.ts.map +1 -0
  330. package/dist/objects/companies/types.js +3 -0
  331. package/dist/objects/companies/types.js.map +1 -0
  332. package/dist/objects/lists.d.ts +148 -0
  333. package/dist/objects/lists.d.ts.map +1 -0
  334. package/dist/objects/lists.js +586 -0
  335. package/dist/objects/lists.js.map +1 -0
  336. package/dist/objects/paginated-people.d.ts +50 -0
  337. package/dist/objects/paginated-people.d.ts.map +1 -0
  338. package/dist/objects/paginated-people.js +171 -0
  339. package/dist/objects/paginated-people.js.map +1 -0
  340. package/dist/objects/people/basic.d.ts +90 -0
  341. package/dist/objects/people/basic.d.ts.map +1 -0
  342. package/dist/objects/people/basic.js +157 -0
  343. package/dist/objects/people/basic.js.map +1 -0
  344. package/dist/objects/people/batch.d.ts +24 -0
  345. package/dist/objects/people/batch.d.ts.map +1 -0
  346. package/dist/objects/people/batch.js +145 -0
  347. package/dist/objects/people/batch.js.map +1 -0
  348. package/dist/objects/people/index.d.ts +11 -0
  349. package/dist/objects/people/index.d.ts.map +1 -0
  350. package/dist/objects/people/index.js +17 -0
  351. package/dist/objects/people/index.js.map +1 -0
  352. package/dist/objects/people/notes.d.ts +20 -0
  353. package/dist/objects/people/notes.d.ts.map +1 -0
  354. package/dist/objects/people/notes.js +60 -0
  355. package/dist/objects/people/notes.js.map +1 -0
  356. package/dist/objects/people/relationships.d.ts +23 -0
  357. package/dist/objects/people/relationships.d.ts.map +1 -0
  358. package/dist/objects/people/relationships.js +116 -0
  359. package/dist/objects/people/relationships.js.map +1 -0
  360. package/dist/objects/people/search.d.ts +83 -0
  361. package/dist/objects/people/search.d.ts.map +1 -0
  362. package/dist/objects/people/search.js +286 -0
  363. package/dist/objects/people/search.js.map +1 -0
  364. package/dist/objects/people/types.d.ts +37 -0
  365. package/dist/objects/people/types.d.ts.map +1 -0
  366. package/dist/objects/people/types.js +71 -0
  367. package/dist/objects/people/types.js.map +1 -0
  368. package/dist/objects/people-write.d.ts +71 -0
  369. package/dist/objects/people-write.d.ts.map +1 -0
  370. package/dist/objects/people-write.js +261 -0
  371. package/dist/objects/people-write.js.map +1 -0
  372. package/dist/objects/records/formatters.d.ts +20 -0
  373. package/dist/objects/records/formatters.d.ts.map +1 -0
  374. package/dist/objects/records/formatters.js +47 -0
  375. package/dist/objects/records/formatters.js.map +1 -0
  376. package/dist/objects/records/index.d.ts +74 -0
  377. package/dist/objects/records/index.d.ts.map +1 -0
  378. package/dist/objects/records/index.js +374 -0
  379. package/dist/objects/records/index.js.map +1 -0
  380. package/dist/objects/records.d.ts +88 -0
  381. package/dist/objects/records.d.ts.map +1 -0
  382. package/dist/objects/records.js +432 -0
  383. package/dist/objects/records.js.map +1 -0
  384. package/dist/objects/tasks.d.ts +19 -0
  385. package/dist/objects/tasks.d.ts.map +1 -0
  386. package/dist/objects/tasks.js +23 -0
  387. package/dist/objects/tasks.js.map +1 -0
  388. package/dist/prompts/error-handler.d.ts +28 -0
  389. package/dist/prompts/error-handler.d.ts.map +1 -0
  390. package/dist/prompts/error-handler.js +47 -0
  391. package/dist/prompts/error-handler.js.map +1 -0
  392. package/dist/prompts/handlers.d.ts +49 -0
  393. package/dist/prompts/handlers.d.ts.map +1 -0
  394. package/dist/prompts/handlers.js +353 -0
  395. package/dist/prompts/handlers.js.map +1 -0
  396. package/dist/prompts/index.d.ts +11 -0
  397. package/dist/prompts/index.d.ts.map +1 -0
  398. package/dist/prompts/index.js +15 -0
  399. package/dist/prompts/index.js.map +1 -0
  400. package/dist/prompts/templates/companies.d.ts +10 -0
  401. package/dist/prompts/templates/companies.d.ts.map +1 -0
  402. package/dist/prompts/templates/companies.js +128 -0
  403. package/dist/prompts/templates/companies.js.map +1 -0
  404. package/dist/prompts/templates/index.d.ts +42 -0
  405. package/dist/prompts/templates/index.d.ts.map +1 -0
  406. package/dist/prompts/templates/index.js +58 -0
  407. package/dist/prompts/templates/index.js.map +1 -0
  408. package/dist/prompts/templates/lists.d.ts +10 -0
  409. package/dist/prompts/templates/lists.d.ts.map +1 -0
  410. package/dist/prompts/templates/lists.js +127 -0
  411. package/dist/prompts/templates/lists.js.map +1 -0
  412. package/dist/prompts/templates/notes.d.ts +10 -0
  413. package/dist/prompts/templates/notes.d.ts.map +1 -0
  414. package/dist/prompts/templates/notes.js +119 -0
  415. package/dist/prompts/templates/notes.js.map +1 -0
  416. package/dist/prompts/templates/people.d.ts +10 -0
  417. package/dist/prompts/templates/people.d.ts.map +1 -0
  418. package/dist/prompts/templates/people.js +127 -0
  419. package/dist/prompts/templates/people.js.map +1 -0
  420. package/dist/prompts/types.d.ts +52 -0
  421. package/dist/prompts/types.d.ts.map +1 -0
  422. package/dist/prompts/types.js +5 -0
  423. package/dist/prompts/types.js.map +1 -0
  424. package/dist/types/attio.d.ts +424 -0
  425. package/dist/types/attio.d.ts.map +1 -0
  426. package/dist/types/attio.js +116 -0
  427. package/dist/types/attio.js.map +1 -0
  428. package/dist/types/company-types.d.ts +52 -0
  429. package/dist/types/company-types.d.ts.map +1 -0
  430. package/dist/types/company-types.js +5 -0
  431. package/dist/types/company-types.js.map +1 -0
  432. package/dist/types/tool-types.d.ts +262 -0
  433. package/dist/types/tool-types.d.ts.map +1 -0
  434. package/dist/types/tool-types.js +6 -0
  435. package/dist/types/tool-types.js.map +1 -0
  436. package/dist/utils/api-fallback.d.ts +39 -0
  437. package/dist/utils/api-fallback.d.ts.map +1 -0
  438. package/dist/utils/api-fallback.js +94 -0
  439. package/dist/utils/api-fallback.js.map +1 -0
  440. package/dist/utils/attribute-mapping/attribute-mappers.d.ts +39 -0
  441. package/dist/utils/attribute-mapping/attribute-mappers.d.ts.map +1 -0
  442. package/dist/utils/attribute-mapping/attribute-mappers.js +394 -0
  443. package/dist/utils/attribute-mapping/attribute-mappers.js.map +1 -0
  444. package/dist/utils/attribute-mapping/filter-translator.d.ts +9 -0
  445. package/dist/utils/attribute-mapping/filter-translator.d.ts.map +1 -0
  446. package/dist/utils/attribute-mapping/filter-translator.js +104 -0
  447. package/dist/utils/attribute-mapping/filter-translator.js.map +1 -0
  448. package/dist/utils/attribute-mapping/index.d.ts +10 -0
  449. package/dist/utils/attribute-mapping/index.d.ts.map +1 -0
  450. package/dist/utils/attribute-mapping/index.js +12 -0
  451. package/dist/utils/attribute-mapping/index.js.map +1 -0
  452. package/dist/utils/attribute-mapping/legacy-maps.d.ts +11 -0
  453. package/dist/utils/attribute-mapping/legacy-maps.d.ts.map +1 -0
  454. package/dist/utils/attribute-mapping/legacy-maps.js +54 -0
  455. package/dist/utils/attribute-mapping/legacy-maps.js.map +1 -0
  456. package/dist/utils/attribute-mapping/mapping-utils.d.ts +90 -0
  457. package/dist/utils/attribute-mapping/mapping-utils.d.ts.map +1 -0
  458. package/dist/utils/attribute-mapping/mapping-utils.js +145 -0
  459. package/dist/utils/attribute-mapping/mapping-utils.js.map +1 -0
  460. package/dist/utils/auto-discovery.d.ts +22 -0
  461. package/dist/utils/auto-discovery.d.ts.map +1 -0
  462. package/dist/utils/auto-discovery.js +143 -0
  463. package/dist/utils/auto-discovery.js.map +1 -0
  464. package/dist/utils/cli-colors.d.ts +36 -0
  465. package/dist/utils/cli-colors.d.ts.map +1 -0
  466. package/dist/utils/cli-colors.js +35 -0
  467. package/dist/utils/cli-colors.js.map +1 -0
  468. package/dist/utils/config-loader.d.ts +41 -0
  469. package/dist/utils/config-loader.d.ts.map +1 -0
  470. package/dist/utils/config-loader.js +167 -0
  471. package/dist/utils/config-loader.js.map +1 -0
  472. package/dist/utils/config-migration.d.ts +140 -0
  473. package/dist/utils/config-migration.d.ts.map +1 -0
  474. package/dist/utils/config-migration.js +310 -0
  475. package/dist/utils/config-migration.js.map +1 -0
  476. package/dist/utils/date-utils.d.ts +63 -0
  477. package/dist/utils/date-utils.d.ts.map +1 -0
  478. package/dist/utils/date-utils.js +329 -0
  479. package/dist/utils/date-utils.js.map +1 -0
  480. package/dist/utils/debug-b2b-segment.d.ts +2 -0
  481. package/dist/utils/debug-b2b-segment.d.ts.map +1 -0
  482. package/dist/utils/debug-b2b-segment.js +67 -0
  483. package/dist/utils/debug-b2b-segment.js.map +1 -0
  484. package/dist/utils/domain-utils.d.ts +46 -0
  485. package/dist/utils/domain-utils.d.ts.map +1 -0
  486. package/dist/utils/domain-utils.js +143 -0
  487. package/dist/utils/domain-utils.js.map +1 -0
  488. package/dist/utils/dynamic-import.d.ts +33 -0
  489. package/dist/utils/dynamic-import.d.ts.map +1 -0
  490. package/dist/utils/dynamic-import.js +41 -0
  491. package/dist/utils/dynamic-import.js.map +1 -0
  492. package/dist/utils/error-enhancer.d.ts +23 -0
  493. package/dist/utils/error-enhancer.d.ts.map +1 -0
  494. package/dist/utils/error-enhancer.js +188 -0
  495. package/dist/utils/error-enhancer.js.map +1 -0
  496. package/dist/utils/error-handler.d.ts +89 -0
  497. package/dist/utils/error-handler.d.ts.map +1 -0
  498. package/dist/utils/error-handler.js +336 -0
  499. package/dist/utils/error-handler.js.map +1 -0
  500. package/dist/utils/filters/builders/activity.d.ts +13 -0
  501. package/dist/utils/filters/builders/activity.d.ts.map +1 -0
  502. package/dist/utils/filters/builders/activity.js +65 -0
  503. package/dist/utils/filters/builders/activity.js.map +1 -0
  504. package/dist/utils/filters/builders/basic.d.ts +13 -0
  505. package/dist/utils/filters/builders/basic.d.ts.map +1 -0
  506. package/dist/utils/filters/builders/basic.js +36 -0
  507. package/dist/utils/filters/builders/basic.js.map +1 -0
  508. package/dist/utils/filters/builders/complex.d.ts +31 -0
  509. package/dist/utils/filters/builders/complex.d.ts.map +1 -0
  510. package/dist/utils/filters/builders/complex.js +92 -0
  511. package/dist/utils/filters/builders/complex.js.map +1 -0
  512. package/dist/utils/filters/builders/date.d.ts +17 -0
  513. package/dist/utils/filters/builders/date.d.ts.map +1 -0
  514. package/dist/utils/filters/builders/date.js +51 -0
  515. package/dist/utils/filters/builders/date.js.map +1 -0
  516. package/dist/utils/filters/builders/index.d.ts +8 -0
  517. package/dist/utils/filters/builders/index.d.ts.map +1 -0
  518. package/dist/utils/filters/builders/index.js +8 -0
  519. package/dist/utils/filters/builders/index.js.map +1 -0
  520. package/dist/utils/filters/builders/numeric.d.ts +17 -0
  521. package/dist/utils/filters/builders/numeric.d.ts.map +1 -0
  522. package/dist/utils/filters/builders/numeric.js +61 -0
  523. package/dist/utils/filters/builders/numeric.js.map +1 -0
  524. package/dist/utils/filters/builders/text.d.ts +17 -0
  525. package/dist/utils/filters/builders/text.d.ts.map +1 -0
  526. package/dist/utils/filters/builders/text.js +47 -0
  527. package/dist/utils/filters/builders/text.js.map +1 -0
  528. package/dist/utils/filters/builders/types.d.ts +2 -0
  529. package/dist/utils/filters/builders/types.d.ts.map +1 -0
  530. package/dist/utils/filters/builders/types.js +2 -0
  531. package/dist/utils/filters/builders/types.js.map +1 -0
  532. package/dist/utils/filters/builders.d.ts +2 -0
  533. package/dist/utils/filters/builders.d.ts.map +1 -0
  534. package/dist/utils/filters/builders.js +2 -0
  535. package/dist/utils/filters/builders.js.map +1 -0
  536. package/dist/utils/filters/cache.d.ts +80 -0
  537. package/dist/utils/filters/cache.d.ts.map +1 -0
  538. package/dist/utils/filters/cache.js +212 -0
  539. package/dist/utils/filters/cache.js.map +1 -0
  540. package/dist/utils/filters/index.d.ts +51 -0
  541. package/dist/utils/filters/index.d.ts.map +1 -0
  542. package/dist/utils/filters/index.js +67 -0
  543. package/dist/utils/filters/index.js.map +1 -0
  544. package/dist/utils/filters/operators.d.ts +65 -0
  545. package/dist/utils/filters/operators.d.ts.map +1 -0
  546. package/dist/utils/filters/operators.js +214 -0
  547. package/dist/utils/filters/operators.js.map +1 -0
  548. package/dist/utils/filters/relationship.d.ts +81 -0
  549. package/dist/utils/filters/relationship.d.ts.map +1 -0
  550. package/dist/utils/filters/relationship.js +393 -0
  551. package/dist/utils/filters/relationship.js.map +1 -0
  552. package/dist/utils/filters/translators.d.ts +120 -0
  553. package/dist/utils/filters/translators.d.ts.map +1 -0
  554. package/dist/utils/filters/translators.js +397 -0
  555. package/dist/utils/filters/translators.js.map +1 -0
  556. package/dist/utils/filters/types.d.ts +77 -0
  557. package/dist/utils/filters/types.d.ts.map +1 -0
  558. package/dist/utils/filters/types.js +85 -0
  559. package/dist/utils/filters/types.js.map +1 -0
  560. package/dist/utils/filters/utils.d.ts +86 -0
  561. package/dist/utils/filters/utils.d.ts.map +1 -0
  562. package/dist/utils/filters/utils.js +142 -0
  563. package/dist/utils/filters/utils.js.map +1 -0
  564. package/dist/utils/filters/validation-utils.d.ts +123 -0
  565. package/dist/utils/filters/validation-utils.d.ts.map +1 -0
  566. package/dist/utils/filters/validation-utils.js +282 -0
  567. package/dist/utils/filters/validation-utils.js.map +1 -0
  568. package/dist/utils/filters/validators.d.ts +73 -0
  569. package/dist/utils/filters/validators.d.ts.map +1 -0
  570. package/dist/utils/filters/validators.js +311 -0
  571. package/dist/utils/filters/validators.js.map +1 -0
  572. package/dist/utils/json-serializer.d.ts +68 -0
  573. package/dist/utils/json-serializer.d.ts.map +1 -0
  574. package/dist/utils/json-serializer.js +235 -0
  575. package/dist/utils/json-serializer.js.map +1 -0
  576. package/dist/utils/logger.d.ts +226 -0
  577. package/dist/utils/logger.d.ts.map +1 -0
  578. package/dist/utils/logger.js +323 -0
  579. package/dist/utils/logger.js.map +1 -0
  580. package/dist/utils/numeric-utils.d.ts +27 -0
  581. package/dist/utils/numeric-utils.d.ts.map +1 -0
  582. package/dist/utils/numeric-utils.js +83 -0
  583. package/dist/utils/numeric-utils.js.map +1 -0
  584. package/dist/utils/pagination.d.ts +85 -0
  585. package/dist/utils/pagination.d.ts.map +1 -0
  586. package/dist/utils/pagination.js +169 -0
  587. package/dist/utils/pagination.js.map +1 -0
  588. package/dist/utils/person-lookup.d.ts +35 -0
  589. package/dist/utils/person-lookup.d.ts.map +1 -0
  590. package/dist/utils/person-lookup.js +67 -0
  591. package/dist/utils/person-lookup.js.map +1 -0
  592. package/dist/utils/rate-limiter.d.ts +82 -0
  593. package/dist/utils/rate-limiter.d.ts.map +1 -0
  594. package/dist/utils/rate-limiter.js +159 -0
  595. package/dist/utils/rate-limiter.js.map +1 -0
  596. package/dist/utils/record-utils.d.ts +74 -0
  597. package/dist/utils/record-utils.d.ts.map +1 -0
  598. package/dist/utils/record-utils.js +312 -0
  599. package/dist/utils/record-utils.js.map +1 -0
  600. package/dist/utils/relationship-utils.d.ts +61 -0
  601. package/dist/utils/relationship-utils.d.ts.map +1 -0
  602. package/dist/utils/relationship-utils.js +242 -0
  603. package/dist/utils/relationship-utils.js.map +1 -0
  604. package/dist/utils/response-formatter.d.ts +121 -0
  605. package/dist/utils/response-formatter.d.ts.map +1 -0
  606. package/dist/utils/response-formatter.js +188 -0
  607. package/dist/utils/response-formatter.js.map +1 -0
  608. package/dist/utils/uri-parser.d.ts +18 -0
  609. package/dist/utils/uri-parser.d.ts.map +1 -0
  610. package/dist/utils/uri-parser.js +31 -0
  611. package/dist/utils/uri-parser.js.map +1 -0
  612. package/dist/utils/validation.d.ts +59 -0
  613. package/dist/utils/validation.d.ts.map +1 -0
  614. package/dist/utils/validation.js +264 -0
  615. package/dist/utils/validation.js.map +1 -0
  616. package/dist/utils/value-matcher.d.ts +58 -0
  617. package/dist/utils/value-matcher.d.ts.map +1 -0
  618. package/dist/utils/value-matcher.js +131 -0
  619. package/dist/utils/value-matcher.js.map +1 -0
  620. package/dist/validators/attribute-validator.d.ts +59 -0
  621. package/dist/validators/attribute-validator.d.ts.map +1 -0
  622. package/dist/validators/attribute-validator.js +531 -0
  623. package/dist/validators/attribute-validator.js.map +1 -0
  624. package/dist/validators/company/field_detector.d.ts +5 -0
  625. package/dist/validators/company/field_detector.d.ts.map +1 -0
  626. package/dist/validators/company/field_detector.js +95 -0
  627. package/dist/validators/company/field_detector.js.map +1 -0
  628. package/dist/validators/company/index.d.ts +26 -0
  629. package/dist/validators/company/index.d.ts.map +1 -0
  630. package/dist/validators/company/index.js +433 -0
  631. package/dist/validators/company/index.js.map +1 -0
  632. package/dist/validators/company/type_cache.d.ts +14 -0
  633. package/dist/validators/company/type_cache.d.ts.map +1 -0
  634. package/dist/validators/company/type_cache.js +28 -0
  635. package/dist/validators/company/type_cache.js.map +1 -0
  636. package/dist/validators/company/types.d.ts +8 -0
  637. package/dist/validators/company/types.d.ts.map +1 -0
  638. package/dist/validators/company/types.js +2 -0
  639. package/dist/validators/company/types.js.map +1 -0
  640. package/dist/validators/company-validator.d.ts +2 -0
  641. package/dist/validators/company-validator.d.ts.map +1 -0
  642. package/dist/validators/company-validator.js +2 -0
  643. package/dist/validators/company-validator.js.map +1 -0
  644. package/package.json +167 -0
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Note operations for companies
3
+ */
4
+ import { getAttioClient } from '../../api/attio-client.js';
5
+ import { getObjectNotes, createObjectNote, } from '../../api/operations/index.js';
6
+ import { ResourceType } from '../../types/attio.js';
7
+ /**
8
+ * Gets notes for a specific company
9
+ *
10
+ * @param companyIdOrUri - The ID of the company or its URI (attio://companies/{id})
11
+ * @param limit - Maximum number of notes to fetch (default: 10)
12
+ * @param offset - Number of notes to skip (default: 0)
13
+ * @returns Array of notes
14
+ */
15
+ export async function getCompanyNotes(companyIdOrUri, limit = 10, offset = 0) {
16
+ let companyId;
17
+ try {
18
+ // Determine if the input is a URI or a direct ID
19
+ const isUri = companyIdOrUri.startsWith('attio://');
20
+ if (isUri) {
21
+ try {
22
+ // Try to parse the URI formally
23
+ const [resourceType, id] = companyIdOrUri.match(/^attio:\/\/([^\/]+)\/(.+)$/)?.slice(1) || [];
24
+ if (resourceType !== ResourceType.COMPANIES) {
25
+ throw new Error(`Invalid resource type in URI: Expected 'companies', got '${resourceType}'`);
26
+ }
27
+ companyId = id;
28
+ }
29
+ catch (parseError) {
30
+ // Fallback to simple string splitting if formal parsing fails
31
+ const parts = companyIdOrUri.split('/');
32
+ companyId = parts[parts.length - 1];
33
+ }
34
+ if (process.env.NODE_ENV === 'development') {
35
+ console.log(`[getCompanyNotes] Extracted company ID ${companyId} from URI ${companyIdOrUri}`);
36
+ }
37
+ }
38
+ else {
39
+ // Direct ID was provided
40
+ companyId = companyIdOrUri;
41
+ if (process.env.NODE_ENV === 'development') {
42
+ console.log(`[getCompanyNotes] Using direct company ID: ${companyId}`);
43
+ }
44
+ }
45
+ // Validate that we have a non-empty ID
46
+ if (!companyId || companyId.trim() === '') {
47
+ throw new Error(`Invalid company ID: ${companyIdOrUri}`);
48
+ }
49
+ // Use the unified operation if available, with fallback to direct implementation
50
+ try {
51
+ return await getObjectNotes(ResourceType.COMPANIES, companyId, limit, offset);
52
+ }
53
+ catch (error) {
54
+ if (process.env.NODE_ENV === 'development') {
55
+ console.log(`[getCompanyNotes] Unified operation failed: ${error.message || 'Unknown error'}`, {
56
+ method: 'getObjectNotes',
57
+ companyId,
58
+ limit,
59
+ offset,
60
+ });
61
+ }
62
+ // Fallback implementation with better error handling
63
+ try {
64
+ const api = getAttioClient();
65
+ const path = `/notes?limit=${limit}&offset=${offset}&parent_object=companies&parent_record_id=${companyId}`;
66
+ if (process.env.NODE_ENV === 'development') {
67
+ console.log(`[getCompanyNotes] Trying direct API call: ${path}`);
68
+ }
69
+ const response = await api.get(path);
70
+ return response.data.data || [];
71
+ }
72
+ catch (directError) {
73
+ if (process.env.NODE_ENV === 'development') {
74
+ console.error(`[getCompanyNotes] All attempts failed:`, {
75
+ companyId,
76
+ originalUri: companyIdOrUri,
77
+ errors: {
78
+ unified: error.message || 'Unknown error',
79
+ direct: directError.message || 'Unknown error',
80
+ },
81
+ });
82
+ }
83
+ // Return empty array instead of throwing error when no notes are found
84
+ if (directError.response?.status === 404) {
85
+ return [];
86
+ }
87
+ throw new Error(`Could not retrieve notes for company ${companyIdOrUri}: ${directError.message || 'Unknown error'}`);
88
+ }
89
+ }
90
+ }
91
+ catch (error) {
92
+ // Catch any errors in the URI parsing logic
93
+ if (error instanceof Error && error.message.includes('match')) {
94
+ throw new Error(`Cannot parse company identifier: ${companyIdOrUri}. Use either a direct ID or URI format 'attio://companies/{id}'`);
95
+ }
96
+ throw error;
97
+ }
98
+ }
99
+ /**
100
+ * Creates a note for a specific company
101
+ *
102
+ * @param companyIdOrUri - The ID of the company or its URI (attio://companies/{id})
103
+ * @param title - The title of the note (will be prefixed with "[AI]")
104
+ * @param content - The text content of the note
105
+ * @returns The created note object
106
+ * @throws Error if company ID cannot be parsed or note creation fails
107
+ * @example
108
+ * ```typescript
109
+ * const note = await createCompanyNote("comp_123", "Meeting Notes",
110
+ * "Discussed Q4 strategy with the team...");
111
+ * ```
112
+ */
113
+ export async function createCompanyNote(companyIdOrUri, title, content) {
114
+ let companyId;
115
+ try {
116
+ // Determine if the input is a URI or a direct ID
117
+ const isUri = companyIdOrUri.startsWith('attio://');
118
+ if (isUri) {
119
+ try {
120
+ // Try to parse the URI formally
121
+ const [resourceType, id] = companyIdOrUri.match(/^attio:\/\/([^\/]+)\/(.+)$/)?.slice(1) || [];
122
+ if (resourceType !== ResourceType.COMPANIES) {
123
+ throw new Error(`Invalid resource type in URI: Expected 'companies', got '${resourceType}'`);
124
+ }
125
+ companyId = id;
126
+ }
127
+ catch (parseError) {
128
+ // Fallback to simple string splitting if formal parsing fails
129
+ const parts = companyIdOrUri.split('/');
130
+ companyId = parts[parts.length - 1];
131
+ }
132
+ if (process.env.NODE_ENV === 'development') {
133
+ console.log(`[createCompanyNote] Extracted company ID ${companyId} from URI ${companyIdOrUri}`);
134
+ }
135
+ }
136
+ else {
137
+ // Direct ID was provided
138
+ companyId = companyIdOrUri;
139
+ if (process.env.NODE_ENV === 'development') {
140
+ console.log(`[createCompanyNote] Using direct company ID: ${companyId}`);
141
+ }
142
+ }
143
+ // Validate that we have a non-empty ID
144
+ if (!companyId || companyId.trim() === '') {
145
+ throw new Error(`Invalid company ID: ${companyIdOrUri}`);
146
+ }
147
+ // Use the unified operation if available, with fallback to direct implementation
148
+ try {
149
+ return await createObjectNote(ResourceType.COMPANIES, companyId, title, content);
150
+ }
151
+ catch (error) {
152
+ if (process.env.NODE_ENV === 'development') {
153
+ console.log(`[createCompanyNote] Unified operation failed: ${error.message || 'Unknown error'}`, {
154
+ method: 'createObjectNote',
155
+ companyId,
156
+ });
157
+ }
158
+ // Fallback implementation with better error handling
159
+ try {
160
+ const api = getAttioClient();
161
+ const path = 'notes';
162
+ if (process.env.NODE_ENV === 'development') {
163
+ console.log(`[createCompanyNote] Trying direct API call: ${path}`);
164
+ }
165
+ const response = await api.post(path, {
166
+ data: {
167
+ format: 'plaintext',
168
+ parent_object: 'companies',
169
+ parent_record_id: companyId,
170
+ title: `[AI] ${title}`,
171
+ content,
172
+ },
173
+ });
174
+ return response.data;
175
+ }
176
+ catch (directError) {
177
+ if (process.env.NODE_ENV === 'development') {
178
+ console.error(`[createCompanyNote] All attempts failed:`, {
179
+ companyId,
180
+ originalUri: companyIdOrUri,
181
+ errors: {
182
+ unified: error.message || 'Unknown error',
183
+ direct: directError.message || 'Unknown error',
184
+ },
185
+ });
186
+ }
187
+ throw new Error(`Could not create note for company ${companyIdOrUri}: ${directError.message || 'Unknown error'}`);
188
+ }
189
+ }
190
+ }
191
+ catch (error) {
192
+ // Catch any errors in the URI parsing logic
193
+ if (error instanceof Error && error.message.includes('match')) {
194
+ throw new Error(`Cannot parse company identifier: ${companyIdOrUri}. Use either a direct ID or URI format 'attio://companies/{id}'`);
195
+ }
196
+ throw error;
197
+ }
198
+ }
199
+ //# sourceMappingURL=notes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../src/objects/companies/notes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Relationship-based queries for companies
3
+ */
4
+ import { Company, AttioList } from '../../types/attio.js';
5
+ import { ListEntryFilters } from '../../api/operations/index.js';
6
+ /**
7
+ * Search for companies based on attributes of their associated people
8
+ *
9
+ * @param peopleFilter - Filter to apply to people
10
+ * @param limit - Maximum number of results to return (default: 20)
11
+ * @param offset - Number of results to skip (default: 0)
12
+ * @returns Array of matching companies
13
+ */
14
+ export declare function searchCompaniesByPeople(peopleFilter: ListEntryFilters | string | any, limit?: number | string, offset?: number | string): Promise<Company[]>;
15
+ /**
16
+ * Search for companies that have employees in a specific list
17
+ *
18
+ * @param listId - ID of the list containing people
19
+ * @param limit - Maximum number of results to return (default: 20)
20
+ * @param offset - Number of results to skip (default: 0)
21
+ * @returns Array of matching companies
22
+ */
23
+ export declare function searchCompaniesByPeopleList(listId: string, limit?: number | string, offset?: number | string): Promise<Company[]>;
24
+ /**
25
+ * Search for companies that have notes containing specific text
26
+ *
27
+ * @param searchText - Text to search for in notes
28
+ * @param limit - Maximum number of results to return (default: 20)
29
+ * @param offset - Number of results to skip (default: 0)
30
+ * @returns Array of matching companies
31
+ */
32
+ export declare function searchCompaniesByNotes(searchText: string, limit?: number | string, offset?: number | string): Promise<Company[]>;
33
+ /**
34
+ * Gets lists that a company belongs to
35
+ *
36
+ * @param companyId - ID of the company
37
+ * @param limit - Maximum number of list entries to check (default: 50)
38
+ * @returns Array of unique lists containing the company
39
+ */
40
+ export declare function getCompanyLists(companyId: string, limit?: number): Promise<AttioList[]>;
41
+ //# sourceMappingURL=relationships.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../../src/objects/companies/relationships.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAEL,OAAO,EACP,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAYjE;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,gBAAgB,GAAG,MAAM,GAAG,GAAG,EAC7C,KAAK,GAAE,MAAM,GAAG,MAAW,EAC3B,MAAM,GAAE,MAAM,GAAG,MAAU,GAC1B,OAAO,CAAC,OAAO,EAAE,CAAC,CAoCpB;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAM,GAAG,MAAW,EAC3B,MAAM,GAAE,MAAM,GAAG,MAAU,GAC1B,OAAO,CAAC,OAAO,EAAE,CAAC,CA8BpB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAM,GAAG,MAAW,EAC3B,MAAM,GAAE,MAAM,GAAG,MAAU,GAC1B,OAAO,CAAC,OAAO,EAAE,CAAC,CAqCpB;AACD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAkCtB"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Relationship-based queries for companies
3
+ */
4
+ import { ResourceType, } from '../../types/attio.js';
5
+ import { FilterValidationError } from '../../errors/api-errors.js';
6
+ import { validateNumericParam } from '../../utils/filters/index.js';
7
+ import { getAttioClient } from '../../api/attio-client.js';
8
+ import { getListDetails } from '../lists.js';
9
+ import { createCompaniesByPeopleFilter, createCompaniesByPeopleListFilter, createRecordsByNotesFilter, } from '../../utils/relationship-utils.js';
10
+ import { advancedSearchCompanies } from './search.js';
11
+ /**
12
+ * Search for companies based on attributes of their associated people
13
+ *
14
+ * @param peopleFilter - Filter to apply to people
15
+ * @param limit - Maximum number of results to return (default: 20)
16
+ * @param offset - Number of results to skip (default: 0)
17
+ * @returns Array of matching companies
18
+ */
19
+ export async function searchCompaniesByPeople(peopleFilter, limit = 20, offset = 0) {
20
+ try {
21
+ // Ensure peopleFilter is a properly structured filter object
22
+ if (typeof peopleFilter !== 'object' ||
23
+ !peopleFilter ||
24
+ !peopleFilter.filters) {
25
+ throw new FilterValidationError('People filter must be a valid ListEntryFilters object with at least one filter');
26
+ }
27
+ // Validate and normalize limit and offset parameters
28
+ const validatedLimit = validateNumericParam(limit, 'limit', 20);
29
+ const validatedOffset = validateNumericParam(offset, 'offset', 0);
30
+ // Create the relationship-based filter and perform the search
31
+ const filters = createCompaniesByPeopleFilter(peopleFilter);
32
+ const results = await advancedSearchCompanies(filters, validatedLimit, validatedOffset);
33
+ return Array.isArray(results) ? results : [];
34
+ }
35
+ catch (error) {
36
+ // Convert all errors to FilterValidationErrors for consistent handling
37
+ if (error instanceof FilterValidationError) {
38
+ throw error;
39
+ }
40
+ throw new FilterValidationError(`Failed to search companies by people: ${error instanceof Error ? error.message : String(error)}`);
41
+ }
42
+ }
43
+ /**
44
+ * Search for companies that have employees in a specific list
45
+ *
46
+ * @param listId - ID of the list containing people
47
+ * @param limit - Maximum number of results to return (default: 20)
48
+ * @param offset - Number of results to skip (default: 0)
49
+ * @returns Array of matching companies
50
+ */
51
+ export async function searchCompaniesByPeopleList(listId, limit = 20, offset = 0) {
52
+ try {
53
+ // Validate listId
54
+ if (!listId || typeof listId !== 'string' || listId.trim() === '') {
55
+ throw new FilterValidationError('List ID must be a non-empty string');
56
+ }
57
+ // Validate and normalize limit and offset parameters
58
+ const validatedLimit = validateNumericParam(limit, 'limit', 20);
59
+ const validatedOffset = validateNumericParam(offset, 'offset', 0);
60
+ // Create the relationship-based filter and perform the search
61
+ const filters = createCompaniesByPeopleListFilter(listId);
62
+ const results = await advancedSearchCompanies(filters, validatedLimit, validatedOffset);
63
+ return Array.isArray(results) ? results : [];
64
+ }
65
+ catch (error) {
66
+ // Convert all errors to FilterValidationErrors for consistent handling
67
+ if (error instanceof FilterValidationError) {
68
+ throw error;
69
+ }
70
+ throw new FilterValidationError(`Failed to search companies by people list: ${error instanceof Error ? error.message : String(error)}`);
71
+ }
72
+ }
73
+ /**
74
+ * Search for companies that have notes containing specific text
75
+ *
76
+ * @param searchText - Text to search for in notes
77
+ * @param limit - Maximum number of results to return (default: 20)
78
+ * @param offset - Number of results to skip (default: 0)
79
+ * @returns Array of matching companies
80
+ */
81
+ export async function searchCompaniesByNotes(searchText, limit = 20, offset = 0) {
82
+ try {
83
+ // Validate searchText
84
+ if (!searchText ||
85
+ typeof searchText !== 'string' ||
86
+ searchText.trim() === '') {
87
+ throw new FilterValidationError('Search text must be a non-empty string');
88
+ }
89
+ // Validate and normalize limit and offset parameters
90
+ const validatedLimit = validateNumericParam(limit, 'limit', 20);
91
+ const validatedOffset = validateNumericParam(offset, 'offset', 0);
92
+ // Create the relationship-based filter and perform the search
93
+ const filters = createRecordsByNotesFilter(ResourceType.COMPANIES, searchText);
94
+ const results = await advancedSearchCompanies(filters, validatedLimit, validatedOffset);
95
+ return Array.isArray(results) ? results : [];
96
+ }
97
+ catch (error) {
98
+ // Convert all errors to FilterValidationErrors for consistent handling
99
+ if (error instanceof FilterValidationError) {
100
+ throw error;
101
+ }
102
+ throw new FilterValidationError(`Failed to search companies by notes: ${error instanceof Error ? error.message : String(error)}`);
103
+ }
104
+ }
105
+ /**
106
+ * Gets lists that a company belongs to
107
+ *
108
+ * @param companyId - ID of the company
109
+ * @param limit - Maximum number of list entries to check (default: 50)
110
+ * @returns Array of unique lists containing the company
111
+ */
112
+ export async function getCompanyLists(companyId, limit = 50) {
113
+ const api = getAttioClient();
114
+ const response = await api.post('/lists-entries/query', {
115
+ filter: { record_id: { $equals: companyId } },
116
+ expand: ['list'],
117
+ limit,
118
+ });
119
+ const entries = response.data.data || [];
120
+ const lists = [];
121
+ const seen = new Set();
122
+ for (const entry of entries) {
123
+ const listId = entry.list?.id?.list_id || entry.list_id;
124
+ if (!listId || seen.has(listId))
125
+ continue;
126
+ seen.add(listId);
127
+ if (entry.list) {
128
+ lists.push(entry.list);
129
+ }
130
+ else {
131
+ try {
132
+ const detail = await getListDetails(listId);
133
+ lists.push(detail);
134
+ }
135
+ catch {
136
+ // ignore retrieval errors
137
+ }
138
+ }
139
+ }
140
+ return lists;
141
+ }
142
+ //# sourceMappingURL=relationships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../../src/objects/companies/relationships.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ import { ListEntryFilters } from '../../api/operations/index.js';
2
+ import { Company, FilterConditionType } from '../../types/attio.js';
3
+ /**
4
+ * Cache management functions for testing and administration
5
+ */
6
+ export declare const companyCache: {
7
+ clear: () => void;
8
+ size: () => number;
9
+ };
10
+ /**
11
+ * Configuration options for company search
12
+ */
13
+ export interface CompanySearchOptions {
14
+ /** Whether to prioritize domain matches over name matches (default: true) */
15
+ prioritizeDomains?: boolean;
16
+ /** Maximum number of results to return */
17
+ maxResults?: number;
18
+ /** Whether to include debug logging */
19
+ debug?: boolean;
20
+ }
21
+ /**
22
+ * Searches for companies with domain prioritization when available
23
+ *
24
+ * @param query - Search query string to match against company names or domains
25
+ * @param options - Optional search configuration
26
+ * @returns Array of matching company objects, prioritized by domain matches
27
+ * @example
28
+ * ```typescript
29
+ * const companies = await searchCompanies("acme.com");
30
+ * // Returns companies with domain "acme.com" first, then name matches
31
+ *
32
+ * const companies = await searchCompanies("acme");
33
+ * // Returns companies with names containing "acme"
34
+ *
35
+ * const companies = await searchCompanies("acme.com", { prioritizeDomains: false });
36
+ * // Disables domain prioritization, uses name-based search only
37
+ * ```
38
+ */
39
+ export declare function searchCompanies(query: string, options?: CompanySearchOptions): Promise<Company[]>;
40
+ /**
41
+ * Searches for companies by domain/website
42
+ *
43
+ * @param domain - Domain to search for
44
+ * @returns Array of matching company objects
45
+ */
46
+ export declare function searchCompaniesByDomain(domain: string): Promise<Company[]>;
47
+ /**
48
+ * Searches for companies by name only
49
+ *
50
+ * @param query - Search query string to match against company names
51
+ * @returns Array of matching company objects
52
+ */
53
+ export declare function searchCompaniesByName(query: string): Promise<Company[]>;
54
+ /**
55
+ * Performs advanced search with custom filters
56
+ *
57
+ * @param filters - List of filters to apply
58
+ * @param limit - Maximum number of results to return (default: 20)
59
+ * @param offset - Number of results to skip (default: 0)
60
+ * @returns Array of company results
61
+ * @throws Error if the search encounters any issues
62
+ * @example
63
+ * ```typescript
64
+ * // Search for companies with names containing "Tech"
65
+ * const filters = {
66
+ * filters: [
67
+ * {
68
+ * attribute: { slug: 'name' },
69
+ * condition: 'contains',
70
+ * value: 'Tech'
71
+ * }
72
+ * ]
73
+ * };
74
+ * const companies = await advancedSearchCompanies(filters);
75
+ *
76
+ * // Search with multiple conditions using OR logic
77
+ * const orFilters = {
78
+ * filters: [
79
+ * {
80
+ * attribute: { slug: 'name' },
81
+ * condition: 'contains',
82
+ * value: 'Tech'
83
+ * },
84
+ * {
85
+ * attribute: { slug: 'industry' },
86
+ * condition: 'equals',
87
+ * value: 'Software'
88
+ * }
89
+ * ],
90
+ * matchAny: true // Use OR logic between conditions
91
+ * };
92
+ *
93
+ * // Complex search with nested conditions
94
+ * const complexFilters = {
95
+ * filters: [
96
+ * // Company name condition
97
+ * {
98
+ * attribute: { slug: 'name' },
99
+ * condition: 'contains',
100
+ * value: 'Tech'
101
+ * },
102
+ * // Revenue condition - find companies with annual revenue > $10M
103
+ * {
104
+ * attribute: { slug: 'annual_revenue' },
105
+ * condition: 'greater_than',
106
+ * value: 10000000
107
+ * },
108
+ * // Industry condition
109
+ * {
110
+ * attribute: { slug: 'industry' },
111
+ * condition: 'equals',
112
+ * value: 'Software'
113
+ * }
114
+ * ]
115
+ * };
116
+ * ```
117
+ */
118
+ export declare function advancedSearchCompanies(filters: ListEntryFilters, limit?: number, offset?: number): Promise<Company[]>;
119
+ /**
120
+ * Helper function to create filters for searching companies by name
121
+ *
122
+ * @param name - Name to search for
123
+ * @param condition - Condition type (default: CONTAINS)
124
+ * @returns ListEntryFilters object configured for name search
125
+ */
126
+ export declare function createNameFilter(name: string, condition?: FilterConditionType): ListEntryFilters;
127
+ /**
128
+ * Helper function to create filters for searching companies by website
129
+ *
130
+ * @param website - Website to search for
131
+ * @param condition - Condition type (default: CONTAINS)
132
+ * @returns ListEntryFilters object configured for website search
133
+ */
134
+ export declare function createWebsiteFilter(website: string, condition?: FilterConditionType): ListEntryFilters;
135
+ /**
136
+ * Helper function to create filters for searching companies by industry
137
+ *
138
+ * @param industry - Industry to search for
139
+ * @param condition - Condition type (default: CONTAINS)
140
+ * @returns ListEntryFilters object configured for industry search
141
+ */
142
+ export declare function createIndustryFilter(industry: string, condition?: FilterConditionType): ListEntryFilters;
143
+ /**
144
+ * Helper function to create filters for searching companies by domain
145
+ *
146
+ * @param domain - Domain to search for
147
+ * @param condition - Condition type (default: CONTAINS)
148
+ * @returns ListEntryFilters object configured for domain search
149
+ */
150
+ export declare function createDomainFilter(domain: string, condition?: FilterConditionType): ListEntryFilters;
151
+ /**
152
+ * Smart search that automatically determines search strategy based on query content
153
+ *
154
+ * @param query - Search query that may contain domain, email, URL, or company name
155
+ * @returns Array of matching company objects with domain matches prioritized
156
+ */
157
+ export declare function smartSearchCompanies(query: string): Promise<Company[]>;
158
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/objects/companies/search.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,OAAO,EACP,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAkF9B;;GAEG;AACH,eAAO,MAAM,YAAY;;;CAGxB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,OAAO,EAAE,CAAC,CA6EpB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,EAAE,CAAC,CAwCpB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAoD7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,gBAAgB,EACzB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,EAAE,CAAC,CA+CpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,mBAAkD,GAC5D,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,mBAAkD,GAC5D,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,mBAAkD,GAC5D,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,mBAAkD,GAC5D,gBAAgB,CAWlB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAyD5E"}