attio-mcp 1.0.0 → 1.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 (359) hide show
  1. package/CHANGELOG.md +102 -3
  2. package/README.md +77 -1
  3. package/dist/api/attio-client.d.ts +25 -5
  4. package/dist/api/attio-client.d.ts.map +1 -1
  5. package/dist/api/attio-client.js +119 -125
  6. package/dist/api/attio-client.js.map +1 -1
  7. package/dist/api/client-cache.d.ts +43 -0
  8. package/dist/api/client-cache.d.ts.map +1 -0
  9. package/dist/api/client-cache.js +71 -0
  10. package/dist/api/client-cache.js.map +1 -0
  11. package/dist/api/client-config.d.ts +53 -0
  12. package/dist/api/client-config.d.ts.map +1 -0
  13. package/dist/api/client-config.js +101 -0
  14. package/dist/api/client-config.js.map +1 -0
  15. package/dist/api/client-context.js +1 -1
  16. package/dist/api/client-context.js.map +1 -1
  17. package/dist/api/client-strategies.d.ts +76 -0
  18. package/dist/api/client-strategies.d.ts.map +1 -0
  19. package/dist/api/client-strategies.js +218 -0
  20. package/dist/api/client-strategies.js.map +1 -0
  21. package/dist/api/lazy-client.d.ts +4 -3
  22. package/dist/api/lazy-client.d.ts.map +1 -1
  23. package/dist/api/lazy-client.js +20 -8
  24. package/dist/api/lazy-client.js.map +1 -1
  25. package/dist/api/operations/notes.d.ts +3 -2
  26. package/dist/api/operations/notes.d.ts.map +1 -1
  27. package/dist/api/operations/notes.js +4 -3
  28. package/dist/api/operations/notes.js.map +1 -1
  29. package/dist/api/operations/query-parser.d.ts +27 -0
  30. package/dist/api/operations/query-parser.d.ts.map +1 -0
  31. package/dist/api/operations/query-parser.js +123 -0
  32. package/dist/api/operations/query-parser.js.map +1 -0
  33. package/dist/api/operations/search.d.ts +2 -2
  34. package/dist/api/operations/search.d.ts.map +1 -1
  35. package/dist/api/operations/search.js +77 -22
  36. package/dist/api/operations/search.js.map +1 -1
  37. package/dist/api/operations/tasks.js +9 -15
  38. package/dist/api/operations/tasks.js.map +1 -1
  39. package/dist/api/operations/workspace-members.js +9 -15
  40. package/dist/api/operations/workspace-members.js.map +1 -1
  41. package/dist/cli.js +7 -1
  42. package/dist/cli.js.map +1 -1
  43. package/dist/config/tool-aliases.d.ts +21 -0
  44. package/dist/config/tool-aliases.d.ts.map +1 -0
  45. package/dist/config/tool-aliases.js +98 -0
  46. package/dist/config/tool-aliases.js.map +1 -0
  47. package/dist/config/tool-mode.d.ts.map +1 -1
  48. package/dist/config/tool-mode.js +1 -6
  49. package/dist/config/tool-mode.js.map +1 -1
  50. package/dist/errors/enhanced-api-errors.d.ts +21 -7
  51. package/dist/errors/enhanced-api-errors.d.ts.map +1 -1
  52. package/dist/errors/enhanced-api-errors.js +18 -1
  53. package/dist/errors/enhanced-api-errors.js.map +1 -1
  54. package/dist/handlers/tool-configs/lists.d.ts +48 -0
  55. package/dist/handlers/tool-configs/lists.d.ts.map +1 -1
  56. package/dist/handlers/tool-configs/lists.js +126 -22
  57. package/dist/handlers/tool-configs/lists.js.map +1 -1
  58. package/dist/handlers/tool-configs/openai/index.d.ts +1 -1
  59. package/dist/handlers/tool-configs/openai/index.d.ts.map +1 -1
  60. package/dist/handlers/tool-configs/openai/index.js +1 -1
  61. package/dist/handlers/tool-configs/openai/index.js.map +1 -1
  62. package/dist/handlers/tool-configs/people/crud.d.ts +5 -0
  63. package/dist/handlers/tool-configs/people/crud.d.ts.map +1 -1
  64. package/dist/handlers/tool-configs/people/crud.js +7 -2
  65. package/dist/handlers/tool-configs/people/crud.js.map +1 -1
  66. package/dist/handlers/tool-configs/people/index.d.ts +5 -0
  67. package/dist/handlers/tool-configs/people/index.d.ts.map +1 -1
  68. package/dist/handlers/tool-configs/universal/batch-search.d.ts +10 -0
  69. package/dist/handlers/tool-configs/universal/batch-search.d.ts.map +1 -1
  70. package/dist/handlers/tool-configs/universal/batch-search.js +18 -5
  71. package/dist/handlers/tool-configs/universal/batch-search.js.map +1 -1
  72. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.d.ts.map +1 -1
  73. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js +39 -1
  74. package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js.map +1 -1
  75. package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts +22 -0
  76. package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts.map +1 -1
  77. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.d.ts +4 -0
  78. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.d.ts.map +1 -1
  79. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js +10 -4
  80. package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js.map +1 -1
  81. package/dist/handlers/tool-configs/universal/core/index.d.ts +61 -11
  82. package/dist/handlers/tool-configs/universal/core/index.d.ts.map +1 -1
  83. package/dist/handlers/tool-configs/universal/core/index.js +10 -10
  84. package/dist/handlers/tool-configs/universal/core/index.js.map +1 -1
  85. package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts +8 -0
  86. package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts.map +1 -1
  87. package/dist/handlers/tool-configs/universal/core/metadata-operations.js +19 -8
  88. package/dist/handlers/tool-configs/universal/core/metadata-operations.js.map +1 -1
  89. package/dist/handlers/tool-configs/universal/core/notes-operations.d.ts +10 -4
  90. package/dist/handlers/tool-configs/universal/core/notes-operations.d.ts.map +1 -1
  91. package/dist/handlers/tool-configs/universal/core/notes-operations.js +69 -51
  92. package/dist/handlers/tool-configs/universal/core/notes-operations.js.map +1 -1
  93. package/dist/handlers/tool-configs/universal/core/record-details-operations.d.ts +5 -0
  94. package/dist/handlers/tool-configs/universal/core/record-details-operations.d.ts.map +1 -1
  95. package/dist/handlers/tool-configs/universal/core/record-details-operations.js +10 -4
  96. package/dist/handlers/tool-configs/universal/core/record-details-operations.js.map +1 -1
  97. package/dist/handlers/tool-configs/universal/core/search-operations.d.ts +5 -0
  98. package/dist/handlers/tool-configs/universal/core/search-operations.d.ts.map +1 -1
  99. package/dist/handlers/tool-configs/universal/core/search-operations.js +10 -4
  100. package/dist/handlers/tool-configs/universal/core/search-operations.js.map +1 -1
  101. package/dist/handlers/tool-configs/universal/core/utils/note-formatters.d.ts +14 -0
  102. package/dist/handlers/tool-configs/universal/core/utils/note-formatters.d.ts.map +1 -0
  103. package/dist/handlers/tool-configs/universal/core/utils/note-formatters.js +92 -0
  104. package/dist/handlers/tool-configs/universal/core/utils/note-formatters.js.map +1 -0
  105. package/dist/handlers/tool-configs/universal/index.d.ts +118 -98
  106. package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
  107. package/dist/handlers/tool-configs/universal/index.js +43 -73
  108. package/dist/handlers/tool-configs/universal/index.js.map +1 -1
  109. package/dist/handlers/tool-configs/universal/operations/advanced-search.d.ts.map +1 -1
  110. package/dist/handlers/tool-configs/universal/operations/advanced-search.js +3 -3
  111. package/dist/handlers/tool-configs/universal/operations/advanced-search.js.map +1 -1
  112. package/dist/handlers/tool-configs/universal/operations/batch-operations.js +3 -3
  113. package/dist/handlers/tool-configs/universal/operations/batch-operations.js.map +1 -1
  114. package/dist/handlers/tool-configs/universal/operations/content-search.js +3 -3
  115. package/dist/handlers/tool-configs/universal/operations/content-search.js.map +1 -1
  116. package/dist/handlers/tool-configs/universal/operations/index.d.ts +49 -10
  117. package/dist/handlers/tool-configs/universal/operations/index.d.ts.map +1 -1
  118. package/dist/handlers/tool-configs/universal/operations/index.js +47 -20
  119. package/dist/handlers/tool-configs/universal/operations/index.js.map +1 -1
  120. package/dist/handlers/tool-configs/universal/operations/operations-array.d.ts.map +1 -1
  121. package/dist/handlers/tool-configs/universal/operations/operations-array.js +3 -1
  122. package/dist/handlers/tool-configs/universal/operations/operations-array.js.map +1 -1
  123. package/dist/handlers/tool-configs/universal/operations/relationship-search.js +4 -4
  124. package/dist/handlers/tool-configs/universal/operations/relationship-search.js.map +1 -1
  125. package/dist/handlers/tool-configs/universal/operations/timeframe-search.js +3 -3
  126. package/dist/handlers/tool-configs/universal/operations/timeframe-search.js.map +1 -1
  127. package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.d.ts +43 -0
  128. package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.d.ts.map +1 -1
  129. package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.js +55 -0
  130. package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.js.map +1 -1
  131. package/dist/handlers/tool-configs/universal/schemas/core-schemas.d.ts +32 -0
  132. package/dist/handlers/tool-configs/universal/schemas/core-schemas.d.ts.map +1 -1
  133. package/dist/handlers/tool-configs/universal/schemas/core-schemas.js +40 -0
  134. package/dist/handlers/tool-configs/universal/schemas/core-schemas.js.map +1 -1
  135. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.d.ts +8 -2
  136. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.d.ts.map +1 -1
  137. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js +9 -2
  138. package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js.map +1 -1
  139. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts +8 -0
  140. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts.map +1 -1
  141. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js +12 -0
  142. package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js.map +1 -1
  143. package/dist/handlers/tool-configs/universal/validators/schema-validator.d.ts.map +1 -1
  144. package/dist/handlers/tool-configs/universal/validators/schema-validator.js +38 -3
  145. package/dist/handlers/tool-configs/universal/validators/schema-validator.js.map +1 -1
  146. package/dist/handlers/tool-configs/workspace-members.d.ts +25 -0
  147. package/dist/handlers/tool-configs/workspace-members.d.ts.map +1 -1
  148. package/dist/handlers/tool-configs/workspace-members.js +73 -40
  149. package/dist/handlers/tool-configs/workspace-members.js.map +1 -1
  150. package/dist/handlers/tools/dispatcher/core.d.ts.map +1 -1
  151. package/dist/handlers/tools/dispatcher/core.js +24 -31
  152. package/dist/handlers/tools/dispatcher/core.js.map +1 -1
  153. package/dist/handlers/tools/dispatcher/logging.d.ts +2 -10
  154. package/dist/handlers/tools/dispatcher/logging.d.ts.map +1 -1
  155. package/dist/handlers/tools/dispatcher/logging.js +3 -2
  156. package/dist/handlers/tools/dispatcher/logging.js.map +1 -1
  157. package/dist/handlers/tools/index.d.ts.map +1 -1
  158. package/dist/handlers/tools/index.js +35 -39
  159. package/dist/handlers/tools/index.js.map +1 -1
  160. package/dist/handlers/tools/registry.d.ts +269 -57
  161. package/dist/handlers/tools/registry.d.ts.map +1 -1
  162. package/dist/handlers/tools/registry.js +21 -13
  163. package/dist/handlers/tools/registry.js.map +1 -1
  164. package/dist/handlers/tools/standards/index.d.ts +17 -0
  165. package/dist/handlers/tools/standards/index.d.ts.map +1 -0
  166. package/dist/handlers/tools/standards/index.js +32 -0
  167. package/dist/handlers/tools/standards/index.js.map +1 -0
  168. package/dist/middleware/performance-enhanced.d.ts +4 -0
  169. package/dist/middleware/performance-enhanced.d.ts.map +1 -1
  170. package/dist/middleware/performance-enhanced.js +63 -3
  171. package/dist/middleware/performance-enhanced.js.map +1 -1
  172. package/dist/objects/batch-companies.d.ts.map +1 -1
  173. package/dist/objects/batch-companies.js +6 -2
  174. package/dist/objects/batch-companies.js.map +1 -1
  175. package/dist/objects/companies/search.d.ts.map +1 -1
  176. package/dist/objects/companies/search.js +6 -1
  177. package/dist/objects/companies/search.js.map +1 -1
  178. package/dist/objects/notes.d.ts.map +1 -1
  179. package/dist/objects/notes.js +21 -7
  180. package/dist/objects/notes.js.map +1 -1
  181. package/dist/prompts/error-handler.d.ts +8 -2
  182. package/dist/prompts/error-handler.d.ts.map +1 -1
  183. package/dist/prompts/error-handler.js +63 -4
  184. package/dist/prompts/error-handler.js.map +1 -1
  185. package/dist/prompts/handlers.d.ts +4 -1
  186. package/dist/prompts/handlers.d.ts.map +1 -1
  187. package/dist/prompts/handlers.js +146 -48
  188. package/dist/prompts/handlers.js.map +1 -1
  189. package/dist/prompts/v1/add-to-list.v1.d.ts +38 -0
  190. package/dist/prompts/v1/add-to-list.v1.d.ts.map +1 -0
  191. package/dist/prompts/v1/add-to-list.v1.js +91 -0
  192. package/dist/prompts/v1/add-to-list.v1.js.map +1 -0
  193. package/dist/prompts/v1/advance-deal.v1.d.ts +41 -0
  194. package/dist/prompts/v1/advance-deal.v1.d.ts.map +1 -0
  195. package/dist/prompts/v1/advance-deal.v1.js +100 -0
  196. package/dist/prompts/v1/advance-deal.v1.js.map +1 -0
  197. package/dist/prompts/v1/company-search.v1.d.ts +44 -0
  198. package/dist/prompts/v1/company-search.v1.d.ts.map +1 -0
  199. package/dist/prompts/v1/company-search.v1.js +114 -0
  200. package/dist/prompts/v1/company-search.v1.js.map +1 -0
  201. package/dist/prompts/v1/constants.d.ts +112 -0
  202. package/dist/prompts/v1/constants.d.ts.map +1 -0
  203. package/dist/prompts/v1/constants.js +119 -0
  204. package/dist/prompts/v1/constants.js.map +1 -0
  205. package/dist/prompts/v1/create-task.v1.d.ts +50 -0
  206. package/dist/prompts/v1/create-task.v1.d.ts.map +1 -0
  207. package/dist/prompts/v1/create-task.v1.js +136 -0
  208. package/dist/prompts/v1/create-task.v1.js.map +1 -0
  209. package/dist/prompts/v1/deal-search.v1.d.ts +44 -0
  210. package/dist/prompts/v1/deal-search.v1.d.ts.map +1 -0
  211. package/dist/prompts/v1/deal-search.v1.js +114 -0
  212. package/dist/prompts/v1/deal-search.v1.js.map +1 -0
  213. package/dist/prompts/v1/index.d.ts +56 -0
  214. package/dist/prompts/v1/index.d.ts.map +1 -0
  215. package/dist/prompts/v1/index.js +81 -0
  216. package/dist/prompts/v1/index.js.map +1 -0
  217. package/dist/prompts/v1/log-activity.v1.d.ts +48 -0
  218. package/dist/prompts/v1/log-activity.v1.d.ts.map +1 -0
  219. package/dist/prompts/v1/log-activity.v1.js +124 -0
  220. package/dist/prompts/v1/log-activity.v1.js.map +1 -0
  221. package/dist/prompts/v1/meeting-prep.v1.d.ts +42 -0
  222. package/dist/prompts/v1/meeting-prep.v1.d.ts.map +1 -0
  223. package/dist/prompts/v1/meeting-prep.v1.js +105 -0
  224. package/dist/prompts/v1/meeting-prep.v1.js.map +1 -0
  225. package/dist/prompts/v1/people-search.v1.d.ts +45 -0
  226. package/dist/prompts/v1/people-search.v1.d.ts.map +1 -0
  227. package/dist/prompts/v1/people-search.v1.js +115 -0
  228. package/dist/prompts/v1/people-search.v1.js.map +1 -0
  229. package/dist/prompts/v1/pipeline-health.v1.d.ts +48 -0
  230. package/dist/prompts/v1/pipeline-health.v1.d.ts.map +1 -0
  231. package/dist/prompts/v1/pipeline-health.v1.js +131 -0
  232. package/dist/prompts/v1/pipeline-health.v1.js.map +1 -0
  233. package/dist/prompts/v1/qualify-lead.v1.d.ts +51 -0
  234. package/dist/prompts/v1/qualify-lead.v1.d.ts.map +1 -0
  235. package/dist/prompts/v1/qualify-lead.v1.js +157 -0
  236. package/dist/prompts/v1/qualify-lead.v1.js.map +1 -0
  237. package/dist/prompts/v1/types.d.ts +134 -0
  238. package/dist/prompts/v1/types.d.ts.map +1 -0
  239. package/dist/prompts/v1/types.js +36 -0
  240. package/dist/prompts/v1/types.js.map +1 -0
  241. package/dist/prompts/v1/utils/telemetry.d.ts +64 -0
  242. package/dist/prompts/v1/utils/telemetry.d.ts.map +1 -0
  243. package/dist/prompts/v1/utils/telemetry.js +88 -0
  244. package/dist/prompts/v1/utils/telemetry.js.map +1 -0
  245. package/dist/prompts/v1/utils/token-metadata.d.ts +43 -0
  246. package/dist/prompts/v1/utils/token-metadata.d.ts.map +1 -0
  247. package/dist/prompts/v1/utils/token-metadata.js +90 -0
  248. package/dist/prompts/v1/utils/token-metadata.js.map +1 -0
  249. package/dist/prompts/v1/utils/validation.d.ts +69 -0
  250. package/dist/prompts/v1/utils/validation.d.ts.map +1 -0
  251. package/dist/prompts/v1/utils/validation.js +140 -0
  252. package/dist/prompts/v1/utils/validation.js.map +1 -0
  253. package/dist/server/createServer.d.ts +2 -2
  254. package/dist/server/createServer.d.ts.map +1 -1
  255. package/dist/server/createServer.js +2 -2
  256. package/dist/server/createServer.js.map +1 -1
  257. package/dist/services/ErrorService.d.ts +27 -0
  258. package/dist/services/ErrorService.d.ts.map +1 -1
  259. package/dist/services/ErrorService.js +92 -1
  260. package/dist/services/ErrorService.js.map +1 -1
  261. package/dist/services/UniversalUpdateService.d.ts.map +1 -1
  262. package/dist/services/UniversalUpdateService.js +32 -2
  263. package/dist/services/UniversalUpdateService.js.map +1 -1
  264. package/dist/services/create/data-normalizers.d.ts.map +1 -1
  265. package/dist/services/create/data-normalizers.js +18 -1
  266. package/dist/services/create/data-normalizers.js.map +1 -1
  267. package/dist/services/metadata/MetadataDiscoveryService.d.ts +4 -2
  268. package/dist/services/metadata/MetadataDiscoveryService.d.ts.map +1 -1
  269. package/dist/services/metadata/MetadataDiscoveryService.js +69 -157
  270. package/dist/services/metadata/MetadataDiscoveryService.js.map +1 -1
  271. package/dist/services/metadata/discovery-runner.d.ts +25 -0
  272. package/dist/services/metadata/discovery-runner.d.ts.map +1 -0
  273. package/dist/services/metadata/discovery-runner.js +66 -0
  274. package/dist/services/metadata/discovery-runner.js.map +1 -0
  275. package/dist/services/metadata/task-metadata.d.ts +13 -0
  276. package/dist/services/metadata/task-metadata.d.ts.map +1 -0
  277. package/dist/services/metadata/task-metadata.js +84 -0
  278. package/dist/services/metadata/task-metadata.js.map +1 -0
  279. package/dist/services/normalizers/AttributeAwareNormalizer.d.ts.map +1 -1
  280. package/dist/services/normalizers/AttributeAwareNormalizer.js +99 -5
  281. package/dist/services/normalizers/AttributeAwareNormalizer.js.map +1 -1
  282. package/dist/services/normalizers/PhoneNormalizer.d.ts +2 -2
  283. package/dist/services/normalizers/PhoneNormalizer.d.ts.map +1 -1
  284. package/dist/services/normalizers/PhoneNormalizer.js +1 -7
  285. package/dist/services/normalizers/PhoneNormalizer.js.map +1 -1
  286. package/dist/services/search-strategies/CompanySearchStrategy.d.ts.map +1 -1
  287. package/dist/services/search-strategies/CompanySearchStrategy.js +10 -4
  288. package/dist/services/search-strategies/CompanySearchStrategy.js.map +1 -1
  289. package/dist/services/search-strategies/PeopleSearchStrategy.d.ts.map +1 -1
  290. package/dist/services/search-strategies/PeopleSearchStrategy.js +21 -15
  291. package/dist/services/search-strategies/PeopleSearchStrategy.js.map +1 -1
  292. package/dist/services/search-strategies/query-filter-builder.d.ts +5 -0
  293. package/dist/services/search-strategies/query-filter-builder.d.ts.map +1 -0
  294. package/dist/services/search-strategies/query-filter-builder.js +129 -0
  295. package/dist/services/search-strategies/query-filter-builder.js.map +1 -0
  296. package/dist/services/utils/attribute-metadata.d.ts +7 -0
  297. package/dist/services/utils/attribute-metadata.d.ts.map +1 -0
  298. package/dist/services/utils/attribute-metadata.js +84 -0
  299. package/dist/services/utils/attribute-metadata.js.map +1 -0
  300. package/dist/smithery.d.ts +2 -2
  301. package/dist/smithery.d.ts.map +1 -1
  302. package/dist/smithery.js +4 -2
  303. package/dist/smithery.js.map +1 -1
  304. package/dist/types/attio.d.ts +32 -11
  305. package/dist/types/attio.d.ts.map +1 -1
  306. package/dist/types/attio.js.map +1 -1
  307. package/dist/types/list-types.d.ts +2 -0
  308. package/dist/types/list-types.d.ts.map +1 -1
  309. package/dist/types/list-types.js.map +1 -1
  310. package/dist/utils/attribute-format-helpers.d.ts.map +1 -1
  311. package/dist/utils/attribute-format-helpers.js +22 -0
  312. package/dist/utils/attribute-format-helpers.js.map +1 -1
  313. package/dist/utils/axios-error-mapper.d.ts +1 -0
  314. package/dist/utils/axios-error-mapper.d.ts.map +1 -1
  315. package/dist/utils/axios-error-mapper.js.map +1 -1
  316. package/dist/utils/client-resolver.d.ts +3 -3
  317. package/dist/utils/client-resolver.d.ts.map +1 -1
  318. package/dist/utils/client-resolver.js +28 -21
  319. package/dist/utils/client-resolver.js.map +1 -1
  320. package/dist/utils/error-handler.js +2 -2
  321. package/dist/utils/error-handler.js.map +1 -1
  322. package/dist/utils/error-sanitizer.d.ts.map +1 -1
  323. package/dist/utils/error-sanitizer.js +52 -3
  324. package/dist/utils/error-sanitizer.js.map +1 -1
  325. package/dist/utils/json-serializer.d.ts.map +1 -1
  326. package/dist/utils/json-serializer.js +55 -6
  327. package/dist/utils/json-serializer.js.map +1 -1
  328. package/dist/utils/log-sanitizer.d.ts +14 -0
  329. package/dist/utils/log-sanitizer.d.ts.map +1 -0
  330. package/dist/utils/log-sanitizer.js +248 -0
  331. package/dist/utils/log-sanitizer.js.map +1 -0
  332. package/dist/utils/logger.d.ts +15 -9
  333. package/dist/utils/logger.d.ts.map +1 -1
  334. package/dist/utils/logger.js +74 -42
  335. package/dist/utils/logger.js.map +1 -1
  336. package/dist/utils/mcp-discovery.d.ts +16 -0
  337. package/dist/utils/mcp-discovery.d.ts.map +1 -0
  338. package/dist/utils/mcp-discovery.js +36 -0
  339. package/dist/utils/mcp-discovery.js.map +1 -0
  340. package/dist/utils/secure-error-handler.d.ts +16 -1
  341. package/dist/utils/secure-error-handler.d.ts.map +1 -1
  342. package/dist/utils/secure-error-handler.js +91 -12
  343. package/dist/utils/secure-error-handler.js.map +1 -1
  344. package/dist/utils/token-count.d.ts +5 -0
  345. package/dist/utils/token-count.d.ts.map +1 -0
  346. package/dist/utils/token-count.js +57 -0
  347. package/dist/utils/token-count.js.map +1 -0
  348. package/dist/utils/token-footprint-analyzer.d.ts +46 -0
  349. package/dist/utils/token-footprint-analyzer.d.ts.map +1 -0
  350. package/dist/utils/token-footprint-analyzer.js +221 -0
  351. package/dist/utils/token-footprint-analyzer.js.map +1 -0
  352. package/dist/utils/validation/phone-validation.d.ts +25 -0
  353. package/dist/utils/validation/phone-validation.d.ts.map +1 -0
  354. package/dist/utils/validation/phone-validation.js +133 -0
  355. package/dist/utils/validation/phone-validation.js.map +1 -0
  356. package/dist/utils/validation/uuid-validation.d.ts.map +1 -1
  357. package/dist/utils/validation/uuid-validation.js +1 -0
  358. package/dist/utils/validation/uuid-validation.js.map +1 -1
  359. package/package.json +19 -1
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Log Activity v1 Prompt
3
+ *
4
+ * Append a call/meeting note/email summary to a Person, Company, or Deal
5
+ * by URL/ID or quick search.
6
+ */
7
+ import { z } from 'zod';
8
+ import { DryRunArg } from './types.js';
9
+ /**
10
+ * Argument schema for log_activity.v1
11
+ */
12
+ export const LogActivityArgs = z.object({
13
+ target: z
14
+ .string()
15
+ .min(3)
16
+ .describe('Attio URL, record ID, or "search:<query>"'),
17
+ type: z
18
+ .enum(['call', 'meeting', 'email', 'note'])
19
+ .describe('Type of activity to log'),
20
+ summary: z.string().min(5).describe('Plain-text synopsis of the activity'),
21
+ visibility: z
22
+ .enum(['internal', 'shared'])
23
+ .optional()
24
+ .default('internal')
25
+ .describe('Visibility setting'),
26
+ create_follow_up: z
27
+ .boolean()
28
+ .optional()
29
+ .default(false)
30
+ .describe('If true, prompt will suggest a follow-up task'),
31
+ dry_run: DryRunArg,
32
+ });
33
+ /**
34
+ * Argument definitions for registration
35
+ */
36
+ export const logActivityArguments = [
37
+ {
38
+ name: 'target',
39
+ description: 'Attio URL, ID, or "search:<query>"',
40
+ required: true,
41
+ schema: z.string().min(3),
42
+ },
43
+ {
44
+ name: 'type',
45
+ description: 'call | meeting | email | note',
46
+ required: true,
47
+ schema: z.enum(['call', 'meeting', 'email', 'note']),
48
+ },
49
+ {
50
+ name: 'summary',
51
+ description: 'Plain-text activity synopsis',
52
+ required: true,
53
+ schema: z.string().min(5),
54
+ },
55
+ {
56
+ name: 'visibility',
57
+ description: 'internal | shared (default internal)',
58
+ required: false,
59
+ schema: z.enum(['internal', 'shared']),
60
+ default: 'internal',
61
+ },
62
+ {
63
+ name: 'create_follow_up',
64
+ description: 'Suggest follow-up task (default false)',
65
+ required: false,
66
+ schema: z.boolean(),
67
+ default: false,
68
+ },
69
+ {
70
+ name: 'dry_run',
71
+ description: "Only propose, don't execute (default false)",
72
+ required: false,
73
+ schema: z.boolean(),
74
+ default: false,
75
+ },
76
+ ];
77
+ /**
78
+ * Build prompt messages for logging activity
79
+ */
80
+ export function buildLogActivityMessages(args) {
81
+ const validated = LogActivityArgs.parse(args);
82
+ const instructions = `You are a CRM assistant. Log a ${validated.type} activity to "${validated.target}".
83
+
84
+ Steps:
85
+ 1. Resolve target: If starts with "search:", call \`records_query\` to find one record (prefer exact domain/email or name match). If multiple matches, list up to 5 for disambiguation and STOP.
86
+
87
+ 2. Create activity note: Call \`notes.create\` (or appropriate write tool) with:
88
+ - Type: ${validated.type}
89
+ - Summary: "${validated.summary}"
90
+ - Visibility: ${validated.visibility}
91
+ - Link to resolved record
92
+
93
+ 3. ${validated.create_follow_up ? 'Suggest a concrete follow-up task and, only on approval, call `tasks.create`.' : 'No follow-up task needed.'}
94
+
95
+ ${validated.dry_run ? 'DRY RUN MODE: Output proposed tool calls as JSON only. Do NOT execute writes.' : 'Execute the writes after showing proposed actions.'}
96
+
97
+ Keep response concise. Confirm completion or show proposed changes.`;
98
+ return [
99
+ {
100
+ role: 'user',
101
+ content: {
102
+ type: 'text',
103
+ text: instructions,
104
+ },
105
+ },
106
+ ];
107
+ }
108
+ /**
109
+ * Complete prompt definition
110
+ */
111
+ export const logActivityPrompt = {
112
+ metadata: {
113
+ name: 'log_activity.v1',
114
+ title: 'Log a call or note',
115
+ description: 'Append a call/meeting note/email summary to a Person, Company, or Deal. Asks for confirmation before write.',
116
+ category: 'activity',
117
+ version: 'v1',
118
+ },
119
+ arguments: logActivityArguments,
120
+ buildMessages: buildLogActivityMessages,
121
+ tokenBudget: 300, // Per spec
122
+ };
123
+ export default logActivityPrompt;
124
+ //# sourceMappingURL=log-activity.v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-activity.v1.js","sourceRoot":"","sources":["../../../src/prompts/v1/log-activity.v1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Meeting Prep v1 Prompt
3
+ *
4
+ * Summarize last notes, open tasks, related deals, and suggested agenda
5
+ * for a contact/company (360° prep sheet).
6
+ */
7
+ import { z } from 'zod';
8
+ import { PromptV1Definition, PromptMessage, PromptArgument } from './types.js';
9
+ /**
10
+ * Argument schema for meeting_prep.v1
11
+ */
12
+ export declare const MeetingPrepArgs: z.ZodObject<{
13
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json", "ids"]>>>;
14
+ fields_preset: z.ZodDefault<z.ZodOptional<z.ZodEnum<["sales_short", "full"]>>>;
15
+ verbosity: z.ZodDefault<z.ZodOptional<z.ZodEnum<["brief", "normal"]>>>;
16
+ target: z.ZodString;
17
+ }, "strip", z.ZodTypeAny, {
18
+ format: "json" | "ids" | "table";
19
+ target: string;
20
+ fields_preset: "sales_short" | "full";
21
+ verbosity: "brief" | "normal";
22
+ }, {
23
+ target: string;
24
+ format?: "json" | "ids" | "table" | undefined;
25
+ fields_preset?: "sales_short" | "full" | undefined;
26
+ verbosity?: "brief" | "normal" | undefined;
27
+ }>;
28
+ export type MeetingPrepArgsType = z.infer<typeof MeetingPrepArgs>;
29
+ /**
30
+ * Argument definitions for registration
31
+ */
32
+ export declare const meetingPrepArguments: PromptArgument[];
33
+ /**
34
+ * Build prompt messages for meeting prep
35
+ */
36
+ export declare function buildMeetingPrepMessages(args: Record<string, unknown>): PromptMessage[];
37
+ /**
38
+ * Complete prompt definition
39
+ */
40
+ export declare const meetingPrepPrompt: PromptV1Definition;
41
+ export default meetingPrepPrompt;
42
+ //# sourceMappingURL=meeting-prep.v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-prep.v1.d.ts","sourceRoot":"","sources":["../../../src/prompts/v1/meeting-prep.v1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG/E;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAAc,EA4BhD,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,aAAa,EAAE,CAoCjB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAY/B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Meeting Prep v1 Prompt
3
+ *
4
+ * Summarize last notes, open tasks, related deals, and suggested agenda
5
+ * for a contact/company (360° prep sheet).
6
+ */
7
+ import { z } from 'zod';
8
+ import { UniversalReadArgs } from './types.js';
9
+ /**
10
+ * Argument schema for meeting_prep.v1
11
+ */
12
+ export const MeetingPrepArgs = z.object({
13
+ target: z
14
+ .string()
15
+ .min(3)
16
+ .describe('Attio URL, record ID, or "search:<query>" for contact/company'),
17
+ ...UniversalReadArgs,
18
+ });
19
+ /**
20
+ * Argument definitions for registration
21
+ */
22
+ export const meetingPrepArguments = [
23
+ {
24
+ name: 'target',
25
+ description: 'Attio URL, ID, or "search:<query>"',
26
+ required: true,
27
+ schema: z.string().min(3),
28
+ },
29
+ {
30
+ name: 'format',
31
+ description: 'table | json (default table)',
32
+ required: false,
33
+ schema: z.enum(['table', 'json']),
34
+ default: 'table',
35
+ },
36
+ {
37
+ name: 'fields_preset',
38
+ description: 'sales_short | full (default sales_short)',
39
+ required: false,
40
+ schema: z.enum(['sales_short', 'full']),
41
+ default: 'sales_short',
42
+ },
43
+ {
44
+ name: 'verbosity',
45
+ description: 'brief | normal (default brief)',
46
+ required: false,
47
+ schema: z.enum(['brief', 'normal']),
48
+ default: 'brief',
49
+ },
50
+ ];
51
+ /**
52
+ * Build prompt messages for meeting prep
53
+ */
54
+ export function buildMeetingPrepMessages(args) {
55
+ const validated = MeetingPrepArgs.parse(args);
56
+ const instructions = `Goal: Create a 360° meeting prep sheet for ${validated.target}.
57
+
58
+ Steps:
59
+ 1. Resolve target: If starts with "search:", call \`records_query\` to find one Person or Company record (prefer exact domain/email or name match). If multiple matches, list up to 5 for disambiguation and STOP.
60
+
61
+ 2. Gather context (call these in parallel):
62
+ - \`notes.list\` for the record (last 5 notes)
63
+ - \`tasks.list\` for the record (open tasks only)
64
+ - \`deals.list\` for related deals (active deals)
65
+
66
+ 3. Output format=${validated.format}:
67
+ - If table: Markdown sections: "Contact Info", "Recent Notes", "Open Tasks", "Active Deals", "Suggested Agenda"
68
+ - If json: Structured object with same sections
69
+
70
+ Fields preset=${validated.fields_preset}:
71
+ - sales_short: Key fields only (token-efficient)
72
+ - full: Include all available context
73
+
74
+ Verbosity=${validated.verbosity}:
75
+ - brief: Bullet points only
76
+ - normal: Brief narrative + bullets
77
+
78
+ Include "Suggested Agenda" with 3-5 discussion topics based on recent activity.`;
79
+ return [
80
+ {
81
+ role: 'user',
82
+ content: {
83
+ type: 'text',
84
+ text: instructions,
85
+ },
86
+ },
87
+ ];
88
+ }
89
+ /**
90
+ * Complete prompt definition
91
+ */
92
+ export const meetingPrepPrompt = {
93
+ metadata: {
94
+ name: 'meeting_prep.v1',
95
+ title: '360° prep sheet',
96
+ description: 'Summarize last notes, open tasks, related deals, and suggested agenda for a contact/company.',
97
+ category: 'workflow',
98
+ version: 'v1',
99
+ },
100
+ arguments: meetingPrepArguments,
101
+ buildMessages: buildMeetingPrepMessages,
102
+ tokenBudget: 600, // Per spec
103
+ };
104
+ export default meetingPrepPrompt;
105
+ //# sourceMappingURL=meeting-prep.v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-prep.v1.js","sourceRoot":"","sources":["../../../src/prompts/v1/meeting-prep.v1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,GAAG,iBAAiB;CACrB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAqB;IACpD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,EAAE,OAAO;KACjB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,EAAE,aAAa;KACvB;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gCAAgC;QAC7C,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,EAAE,OAAO;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAA6B;IAE7B,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,8CAA8C,SAAS,CAAC,MAAM;;;;;;;;;;mBAUlE,SAAS,CAAC,MAAM;;;;gBAInB,SAAS,CAAC,aAAa;;;;YAI3B,SAAS,CAAC,SAAS;;;;gFAIiD,CAAC;IAE/E,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;aACnB;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,8FAA8F;QAChG,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,IAAI;KACd;IACD,SAAS,EAAE,oBAAoB;IAC/B,aAAa,EAAE,wBAAwB;IACvC,WAAW,EAAE,GAAG,EAAE,WAAW;CAC9B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * People Search v1 Prompt
3
+ *
4
+ * Query people with filters (title, company, territory) and return tidy table
5
+ * + IDs for follow-up actions.
6
+ */
7
+ import { z } from 'zod';
8
+ import { PromptV1Definition, PromptMessage, PromptArgument } from './types.js';
9
+ /**
10
+ * Argument schema for people_search.v1
11
+ */
12
+ export declare const PeopleSearchArgs: z.ZodObject<{
13
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json", "ids"]>>>;
14
+ fields_preset: z.ZodDefault<z.ZodOptional<z.ZodEnum<["sales_short", "full"]>>>;
15
+ verbosity: z.ZodDefault<z.ZodOptional<z.ZodEnum<["brief", "normal"]>>>;
16
+ query: z.ZodString;
17
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ limit: number;
20
+ format: "json" | "ids" | "table";
21
+ query: string;
22
+ fields_preset: "sales_short" | "full";
23
+ verbosity: "brief" | "normal";
24
+ }, {
25
+ query: string;
26
+ limit?: number | undefined;
27
+ format?: "json" | "ids" | "table" | undefined;
28
+ fields_preset?: "sales_short" | "full" | undefined;
29
+ verbosity?: "brief" | "normal" | undefined;
30
+ }>;
31
+ export type PeopleSearchArgsType = z.infer<typeof PeopleSearchArgs>;
32
+ /**
33
+ * Argument definitions for registration
34
+ */
35
+ export declare const peopleSearchArguments: PromptArgument[];
36
+ /**
37
+ * Build prompt messages for people search
38
+ */
39
+ export declare function buildPeopleSearchMessages(args: Record<string, unknown>): PromptMessage[];
40
+ /**
41
+ * Complete prompt definition
42
+ */
43
+ export declare const peopleSearchPrompt: PromptV1Definition;
44
+ export default peopleSearchPrompt;
45
+ //# sourceMappingURL=people-search.v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"people-search.v1.d.ts","sourceRoot":"","sources":["../../../src/prompts/v1/people-search.v1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI/E;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;EAgB3B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,EAmCjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,aAAa,EAAE,CA8BjB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAYhC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * People Search v1 Prompt
3
+ *
4
+ * Query people with filters (title, company, territory) and return tidy table
5
+ * + IDs for follow-up actions.
6
+ */
7
+ import { z } from 'zod';
8
+ import { UniversalReadArgs } from './types.js';
9
+ import { SEARCH_DEFAULTS, PAGINATION } from './constants.js';
10
+ /**
11
+ * Argument schema for people_search.v1
12
+ */
13
+ export const PeopleSearchArgs = z.object({
14
+ query: z
15
+ .string()
16
+ .min(3)
17
+ .describe("Search query (e.g., 'AE in SF at fintech companies')"),
18
+ limit: z
19
+ .number()
20
+ .int()
21
+ .min(1)
22
+ .max(SEARCH_DEFAULTS.maxLimit)
23
+ .optional()
24
+ .default(SEARCH_DEFAULTS.limit)
25
+ .describe(`Maximum results to return (default ${SEARCH_DEFAULTS.limit}, max ${SEARCH_DEFAULTS.maxLimit})`),
26
+ ...UniversalReadArgs,
27
+ });
28
+ /**
29
+ * Argument definitions for registration
30
+ */
31
+ export const peopleSearchArguments = [
32
+ {
33
+ name: 'query',
34
+ description: "E.g., 'AE in SF at fintech companies'",
35
+ required: true,
36
+ schema: z.string().min(3),
37
+ },
38
+ {
39
+ name: 'limit',
40
+ description: `Default ${SEARCH_DEFAULTS.limit} (max ${SEARCH_DEFAULTS.maxLimit})`,
41
+ required: false,
42
+ schema: z.number().int().min(1).max(SEARCH_DEFAULTS.maxLimit),
43
+ default: SEARCH_DEFAULTS.limit,
44
+ },
45
+ {
46
+ name: 'format',
47
+ description: 'table | json | ids (default table)',
48
+ required: false,
49
+ schema: z.enum(['table', 'json', 'ids']),
50
+ default: 'table',
51
+ },
52
+ {
53
+ name: 'fields_preset',
54
+ description: 'sales_short | full (default sales_short)',
55
+ required: false,
56
+ schema: z.enum(['sales_short', 'full']),
57
+ default: 'sales_short',
58
+ },
59
+ {
60
+ name: 'verbosity',
61
+ description: 'brief | normal (default brief)',
62
+ required: false,
63
+ schema: z.enum(['brief', 'normal']),
64
+ default: 'brief',
65
+ },
66
+ ];
67
+ /**
68
+ * Build prompt messages for people search
69
+ */
70
+ export function buildPeopleSearchMessages(args) {
71
+ const validated = PeopleSearchArgs.parse(args);
72
+ const instructions = `Call \`records_query\` for object='people' with filters derived from "${validated.query}".
73
+
74
+ Output format=${validated.format}:
75
+ - If table: Markdown table with columns: id, name, title, company, email, owner (max ${validated.limit} rows)
76
+ - If json: Structured array with same fields
77
+ - If ids: Comma-separated list of record IDs only
78
+
79
+ Fields preset=${validated.fields_preset}:
80
+ - sales_short: Only id, name, title, company, email, owner (token-efficient)
81
+ - full: Include all available fields
82
+
83
+ Verbosity=${validated.verbosity}:
84
+ - brief: No preamble, just the data
85
+ - normal: Brief context + data
86
+
87
+ Include a "Next actions" section with inline tools for enrichment/outreach.
88
+ Append "${PAGINATION.moreAvailableText}" when results exceed ${validated.limit}.`;
89
+ return [
90
+ {
91
+ role: 'user',
92
+ content: {
93
+ type: 'text',
94
+ text: instructions,
95
+ },
96
+ },
97
+ ];
98
+ }
99
+ /**
100
+ * Complete prompt definition
101
+ */
102
+ export const peopleSearchPrompt = {
103
+ metadata: {
104
+ name: 'people_search.v1',
105
+ title: 'Find people',
106
+ description: 'Search people by title, company, territory, or free text. Return a compact table with id, name, title, company, email, and owner.',
107
+ category: 'search',
108
+ version: 'v1',
109
+ },
110
+ arguments: peopleSearchArguments,
111
+ buildMessages: buildPeopleSearchMessages,
112
+ tokenBudget: 500, // Per spec
113
+ };
114
+ export default peopleSearchPrompt;
115
+ //# sourceMappingURL=people-search.v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"people-search.v1.js","sourceRoot":"","sources":["../../../src/prompts/v1/people-search.v1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Pipeline Health v1 Prompt
3
+ *
4
+ * Weekly pipeline recap: owner/segment-scoped snapshot (created/won/slipped)
5
+ * with risk flags and recommended actions.
6
+ */
7
+ import { z } from 'zod';
8
+ import { PromptV1Definition, PromptMessage, PromptArgument } from './types.js';
9
+ /**
10
+ * Argument schema for pipeline_health.v1
11
+ */
12
+ export declare const PipelineHealthArgs: z.ZodObject<{
13
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json", "ids"]>>>;
14
+ fields_preset: z.ZodDefault<z.ZodOptional<z.ZodEnum<["sales_short", "full"]>>>;
15
+ verbosity: z.ZodDefault<z.ZodOptional<z.ZodEnum<["brief", "normal"]>>>;
16
+ owner: z.ZodDefault<z.ZodOptional<z.ZodString>>;
17
+ timeframe: z.ZodDefault<z.ZodOptional<z.ZodString>>;
18
+ segment: z.ZodOptional<z.ZodString>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ format: "json" | "ids" | "table";
21
+ timeframe: string;
22
+ owner: string;
23
+ fields_preset: "sales_short" | "full";
24
+ verbosity: "brief" | "normal";
25
+ segment?: string | undefined;
26
+ }, {
27
+ format?: "json" | "ids" | "table" | undefined;
28
+ segment?: string | undefined;
29
+ timeframe?: string | undefined;
30
+ owner?: string | undefined;
31
+ fields_preset?: "sales_short" | "full" | undefined;
32
+ verbosity?: "brief" | "normal" | undefined;
33
+ }>;
34
+ export type PipelineHealthArgsType = z.infer<typeof PipelineHealthArgs>;
35
+ /**
36
+ * Argument definitions for registration
37
+ */
38
+ export declare const pipelineHealthArguments: PromptArgument[];
39
+ /**
40
+ * Build prompt messages for pipeline health
41
+ */
42
+ export declare function buildPipelineHealthMessages(args: Record<string, unknown>): PromptMessage[];
43
+ /**
44
+ * Complete prompt definition
45
+ */
46
+ export declare const pipelineHealthPrompt: PromptV1Definition;
47
+ export default pipelineHealthPrompt;
48
+ //# sourceMappingURL=pipeline-health.v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-health.v1.d.ts","sourceRoot":"","sources":["../../../src/prompts/v1/pipeline-health.v1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI/E;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAAc,EA0CnD,CAAC;AAEF;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,aAAa,EAAE,CAyCjB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAYlC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Pipeline Health v1 Prompt
3
+ *
4
+ * Weekly pipeline recap: owner/segment-scoped snapshot (created/won/slipped)
5
+ * with risk flags and recommended actions.
6
+ */
7
+ import { z } from 'zod';
8
+ import { UniversalReadArgs } from './types.js';
9
+ import { SEARCH_DEFAULTS } from './constants.js';
10
+ /**
11
+ * Argument schema for pipeline_health.v1
12
+ */
13
+ export const PipelineHealthArgs = z.object({
14
+ owner: z
15
+ .string()
16
+ .optional()
17
+ .default(SEARCH_DEFAULTS.ownerDefault)
18
+ .describe('Owner filter (default @me)'),
19
+ timeframe: z
20
+ .string()
21
+ .optional()
22
+ .default(SEARCH_DEFAULTS.timeframeDefault)
23
+ .describe('Timeframe for analysis (default 30d)'),
24
+ segment: z.string().optional().describe('Optional segment/pipeline filter'),
25
+ ...UniversalReadArgs,
26
+ });
27
+ /**
28
+ * Argument definitions for registration
29
+ */
30
+ export const pipelineHealthArguments = [
31
+ {
32
+ name: 'owner',
33
+ description: 'Owner filter (default @me)',
34
+ required: false,
35
+ schema: z.string(),
36
+ default: SEARCH_DEFAULTS.ownerDefault,
37
+ },
38
+ {
39
+ name: 'timeframe',
40
+ description: 'Timeframe (default 30d)',
41
+ required: false,
42
+ schema: z.string(),
43
+ default: SEARCH_DEFAULTS.timeframeDefault,
44
+ },
45
+ {
46
+ name: 'segment',
47
+ description: 'Optional segment/pipeline filter',
48
+ required: false,
49
+ schema: z.string(),
50
+ },
51
+ {
52
+ name: 'format',
53
+ description: 'table | json (default table)',
54
+ required: false,
55
+ schema: z.enum(['table', 'json']),
56
+ default: 'table',
57
+ },
58
+ {
59
+ name: 'fields_preset',
60
+ description: 'sales_short | full (default sales_short)',
61
+ required: false,
62
+ schema: z.enum(['sales_short', 'full']),
63
+ default: 'sales_short',
64
+ },
65
+ {
66
+ name: 'verbosity',
67
+ description: 'brief | normal (default brief)',
68
+ required: false,
69
+ schema: z.enum(['brief', 'normal']),
70
+ default: 'brief',
71
+ },
72
+ ];
73
+ /**
74
+ * Build prompt messages for pipeline health
75
+ */
76
+ export function buildPipelineHealthMessages(args) {
77
+ const validated = PipelineHealthArgs.parse(args);
78
+ const segmentFilter = validated.segment
79
+ ? ` and segment="${validated.segment}"`
80
+ : '';
81
+ const instructions = `Goal: Create a pipeline health snapshot for owner="${validated.owner}" over the last ${validated.timeframe}${segmentFilter}.
82
+
83
+ Steps:
84
+ 1. Call \`deals.list\` or \`records_query\` for deals matching: owner="${validated.owner}", modified_date within ${validated.timeframe}${segmentFilter}
85
+
86
+ 2. Analyze and categorize deals:
87
+ - Created: New deals in timeframe
88
+ - Won: Deals moved to "Closed Won"
89
+ - Slipped: Deals past close_date still open
90
+ - At Risk: Deals with no activity in >14 days
91
+
92
+ 3. Output format=${validated.format}:
93
+ - If table: Markdown sections: "Summary Metrics", "Risk Flags", "Top Priorities", "Recommended Actions"
94
+ - If json: Structured object with same sections
95
+
96
+ Fields preset=${validated.fields_preset}:
97
+ - sales_short: Counts and key deals only (token-efficient)
98
+ - full: Include all deal details
99
+
100
+ Verbosity=${validated.verbosity}:
101
+ - brief: Metrics + bullet points
102
+ - normal: Narrative analysis + metrics
103
+
104
+ Include "Recommended Actions" with 3-5 specific next steps based on risk flags.`;
105
+ return [
106
+ {
107
+ role: 'user',
108
+ content: {
109
+ type: 'text',
110
+ text: instructions,
111
+ },
112
+ },
113
+ ];
114
+ }
115
+ /**
116
+ * Complete prompt definition
117
+ */
118
+ export const pipelineHealthPrompt = {
119
+ metadata: {
120
+ name: 'pipeline_health.v1',
121
+ title: 'Weekly pipeline recap',
122
+ description: 'Owner/segment-scoped snapshot (created/won/slipped; risk flags) with recommended actions.',
123
+ category: 'analysis',
124
+ version: 'v1',
125
+ },
126
+ arguments: pipelineHealthArguments,
127
+ buildMessages: buildPipelineHealthMessages,
128
+ tokenBudget: 700, // Per spec
129
+ };
130
+ export default pipelineHealthPrompt;
131
+ //# sourceMappingURL=pipeline-health.v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-health.v1.js","sourceRoot":"","sources":["../../../src/prompts/v1/pipeline-health.v1.ts"],"names":[],"mappings":"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"}