attio-mcp 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) 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 +6 -0
  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 +120 -114
  106. package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
  107. package/dist/handlers/tool-configs/universal/index.js +61 -77
  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 +270 -65
  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 +3 -0
  186. package/dist/prompts/handlers.d.ts.map +1 -1
  187. package/dist/prompts/handlers.js +144 -47
  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.js +1 -1
  254. package/dist/services/ErrorService.d.ts +27 -0
  255. package/dist/services/ErrorService.d.ts.map +1 -1
  256. package/dist/services/ErrorService.js +92 -1
  257. package/dist/services/ErrorService.js.map +1 -1
  258. package/dist/services/UniversalUpdateService.d.ts.map +1 -1
  259. package/dist/services/UniversalUpdateService.js +32 -2
  260. package/dist/services/UniversalUpdateService.js.map +1 -1
  261. package/dist/services/create/data-normalizers.d.ts.map +1 -1
  262. package/dist/services/create/data-normalizers.js +18 -1
  263. package/dist/services/create/data-normalizers.js.map +1 -1
  264. package/dist/services/metadata/MetadataDiscoveryService.d.ts +4 -2
  265. package/dist/services/metadata/MetadataDiscoveryService.d.ts.map +1 -1
  266. package/dist/services/metadata/MetadataDiscoveryService.js +69 -157
  267. package/dist/services/metadata/MetadataDiscoveryService.js.map +1 -1
  268. package/dist/services/metadata/discovery-runner.d.ts +25 -0
  269. package/dist/services/metadata/discovery-runner.d.ts.map +1 -0
  270. package/dist/services/metadata/discovery-runner.js +66 -0
  271. package/dist/services/metadata/discovery-runner.js.map +1 -0
  272. package/dist/services/metadata/task-metadata.d.ts +13 -0
  273. package/dist/services/metadata/task-metadata.d.ts.map +1 -0
  274. package/dist/services/metadata/task-metadata.js +84 -0
  275. package/dist/services/metadata/task-metadata.js.map +1 -0
  276. package/dist/services/normalizers/AttributeAwareNormalizer.d.ts.map +1 -1
  277. package/dist/services/normalizers/AttributeAwareNormalizer.js +99 -5
  278. package/dist/services/normalizers/AttributeAwareNormalizer.js.map +1 -1
  279. package/dist/services/normalizers/PhoneNormalizer.d.ts +2 -2
  280. package/dist/services/normalizers/PhoneNormalizer.d.ts.map +1 -1
  281. package/dist/services/normalizers/PhoneNormalizer.js +1 -7
  282. package/dist/services/normalizers/PhoneNormalizer.js.map +1 -1
  283. package/dist/services/search-strategies/CompanySearchStrategy.d.ts.map +1 -1
  284. package/dist/services/search-strategies/CompanySearchStrategy.js +10 -4
  285. package/dist/services/search-strategies/CompanySearchStrategy.js.map +1 -1
  286. package/dist/services/search-strategies/PeopleSearchStrategy.d.ts.map +1 -1
  287. package/dist/services/search-strategies/PeopleSearchStrategy.js +21 -15
  288. package/dist/services/search-strategies/PeopleSearchStrategy.js.map +1 -1
  289. package/dist/services/search-strategies/query-filter-builder.d.ts +5 -0
  290. package/dist/services/search-strategies/query-filter-builder.d.ts.map +1 -0
  291. package/dist/services/search-strategies/query-filter-builder.js +129 -0
  292. package/dist/services/search-strategies/query-filter-builder.js.map +1 -0
  293. package/dist/services/utils/attribute-metadata.d.ts +7 -0
  294. package/dist/services/utils/attribute-metadata.d.ts.map +1 -0
  295. package/dist/services/utils/attribute-metadata.js +84 -0
  296. package/dist/services/utils/attribute-metadata.js.map +1 -0
  297. package/dist/smithery.d.ts +3 -0
  298. package/dist/smithery.d.ts.map +1 -1
  299. package/dist/smithery.js +18 -0
  300. package/dist/smithery.js.map +1 -1
  301. package/dist/types/attio.d.ts +32 -11
  302. package/dist/types/attio.d.ts.map +1 -1
  303. package/dist/types/attio.js.map +1 -1
  304. package/dist/types/list-types.d.ts +2 -0
  305. package/dist/types/list-types.d.ts.map +1 -1
  306. package/dist/types/list-types.js.map +1 -1
  307. package/dist/utils/attribute-format-helpers.d.ts.map +1 -1
  308. package/dist/utils/attribute-format-helpers.js +22 -0
  309. package/dist/utils/attribute-format-helpers.js.map +1 -1
  310. package/dist/utils/axios-error-mapper.d.ts +1 -0
  311. package/dist/utils/axios-error-mapper.d.ts.map +1 -1
  312. package/dist/utils/axios-error-mapper.js.map +1 -1
  313. package/dist/utils/client-resolver.d.ts +3 -3
  314. package/dist/utils/client-resolver.d.ts.map +1 -1
  315. package/dist/utils/client-resolver.js +28 -21
  316. package/dist/utils/client-resolver.js.map +1 -1
  317. package/dist/utils/error-handler.js +2 -2
  318. package/dist/utils/error-handler.js.map +1 -1
  319. package/dist/utils/error-sanitizer.d.ts.map +1 -1
  320. package/dist/utils/error-sanitizer.js +52 -3
  321. package/dist/utils/error-sanitizer.js.map +1 -1
  322. package/dist/utils/json-serializer.d.ts.map +1 -1
  323. package/dist/utils/json-serializer.js +55 -6
  324. package/dist/utils/json-serializer.js.map +1 -1
  325. package/dist/utils/log-sanitizer.d.ts +14 -0
  326. package/dist/utils/log-sanitizer.d.ts.map +1 -0
  327. package/dist/utils/log-sanitizer.js +248 -0
  328. package/dist/utils/log-sanitizer.js.map +1 -0
  329. package/dist/utils/logger.d.ts +15 -9
  330. package/dist/utils/logger.d.ts.map +1 -1
  331. package/dist/utils/logger.js +74 -42
  332. package/dist/utils/logger.js.map +1 -1
  333. package/dist/utils/mcp-discovery.d.ts +16 -0
  334. package/dist/utils/mcp-discovery.d.ts.map +1 -0
  335. package/dist/utils/mcp-discovery.js +36 -0
  336. package/dist/utils/mcp-discovery.js.map +1 -0
  337. package/dist/utils/secure-error-handler.d.ts +16 -1
  338. package/dist/utils/secure-error-handler.d.ts.map +1 -1
  339. package/dist/utils/secure-error-handler.js +91 -12
  340. package/dist/utils/secure-error-handler.js.map +1 -1
  341. package/dist/utils/token-count.d.ts +5 -0
  342. package/dist/utils/token-count.d.ts.map +1 -0
  343. package/dist/utils/token-count.js +97 -0
  344. package/dist/utils/token-count.js.map +1 -0
  345. package/dist/utils/token-footprint-analyzer.d.ts +46 -0
  346. package/dist/utils/token-footprint-analyzer.d.ts.map +1 -0
  347. package/dist/utils/token-footprint-analyzer.js +221 -0
  348. package/dist/utils/token-footprint-analyzer.js.map +1 -0
  349. package/dist/utils/validation/phone-validation.d.ts +25 -0
  350. package/dist/utils/validation/phone-validation.d.ts.map +1 -0
  351. package/dist/utils/validation/phone-validation.js +132 -0
  352. package/dist/utils/validation/phone-validation.js.map +1 -0
  353. package/dist/utils/validation/uuid-validation.d.ts.map +1 -1
  354. package/dist/utils/validation/uuid-validation.js +1 -0
  355. package/dist/utils/validation/uuid-validation.js.map +1 -1
  356. package/package.json +20 -2
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Qualify Lead v1 Prompt
3
+ *
4
+ * Resolve lead, scan 2-3 web sources, return BANT/CHAMP summary with evidence,
5
+ * propose next actions.
6
+ */
7
+ import { z } from 'zod';
8
+ import { DryRunArg } from './types.js';
9
+ import { WEB_RESEARCH_LIMITS } from './constants.js';
10
+ /**
11
+ * Argument schema for qualify_lead.v1
12
+ */
13
+ export const QualifyLeadArgs = z.object({
14
+ target: z
15
+ .string()
16
+ .min(3)
17
+ .describe('Attio Person/Company/Deal URL or ID, or "search:<text>"'),
18
+ icp_preset: z
19
+ .string()
20
+ .optional()
21
+ .describe("Optional ICP preset (e.g., 'SaaS mid-market NA')"),
22
+ framework: z
23
+ .enum(['bant', 'champ'])
24
+ .optional()
25
+ .default('bant')
26
+ .describe('Qualification framework'),
27
+ format: z
28
+ .enum(['json', 'table'])
29
+ .optional()
30
+ .default('json')
31
+ .describe('Output format'),
32
+ verbosity: z
33
+ .enum(['brief', 'normal'])
34
+ .optional()
35
+ .default('brief')
36
+ .describe('Response detail level'),
37
+ dry_run: DryRunArg,
38
+ limit_web: z
39
+ .number()
40
+ .int()
41
+ .min(1)
42
+ .max(WEB_RESEARCH_LIMITS.maxLimitWeb)
43
+ .optional()
44
+ .default(WEB_RESEARCH_LIMITS.defaultLimitWeb)
45
+ .describe(`Max pages to fetch (default ${WEB_RESEARCH_LIMITS.defaultLimitWeb}, max ${WEB_RESEARCH_LIMITS.maxLimitWeb})`),
46
+ });
47
+ /**
48
+ * Argument definitions for registration
49
+ */
50
+ export const qualifyLeadArguments = [
51
+ {
52
+ name: 'target',
53
+ description: 'Attio URL, ID, or "search:<text>"',
54
+ required: true,
55
+ schema: z.string().min(3),
56
+ },
57
+ {
58
+ name: 'icp_preset',
59
+ description: "Optional ICP preset (e.g., 'SaaS mid-market NA')",
60
+ required: false,
61
+ schema: z.string(),
62
+ },
63
+ {
64
+ name: 'framework',
65
+ description: 'bant | champ (default bant)',
66
+ required: false,
67
+ schema: z.enum(['bant', 'champ']),
68
+ default: 'bant',
69
+ },
70
+ {
71
+ name: 'format',
72
+ description: 'json | table (default json)',
73
+ required: false,
74
+ schema: z.enum(['json', 'table']),
75
+ default: 'json',
76
+ },
77
+ {
78
+ name: 'verbosity',
79
+ description: 'brief | normal (default brief)',
80
+ required: false,
81
+ schema: z.enum(['brief', 'normal']),
82
+ default: 'brief',
83
+ },
84
+ {
85
+ name: 'dry_run',
86
+ description: "Only propose, don't execute (default false)",
87
+ required: false,
88
+ schema: z.boolean(),
89
+ default: false,
90
+ },
91
+ {
92
+ name: 'limit_web',
93
+ description: `Max pages (default ${WEB_RESEARCH_LIMITS.defaultLimitWeb}, max ${WEB_RESEARCH_LIMITS.maxLimitWeb})`,
94
+ required: false,
95
+ schema: z.number().int().min(1).max(WEB_RESEARCH_LIMITS.maxLimitWeb),
96
+ default: WEB_RESEARCH_LIMITS.defaultLimitWeb,
97
+ },
98
+ ];
99
+ /**
100
+ * Build prompt messages for qualifying lead
101
+ */
102
+ export function buildQualifyLeadMessages(args) {
103
+ const validated = QualifyLeadArgs.parse(args);
104
+ const icpContext = validated.icp_preset
105
+ ? `ICP context: "${validated.icp_preset}" affects scoring thresholds.`
106
+ : '';
107
+ const instructions = `Goal: produce a compact lead-qualification summary with evidence, then optionally update fields and create a next-action task.
108
+
109
+ ${icpContext}
110
+
111
+ Steps:
112
+ 1) Resolve \`target\`: If starts with \`search:\`, call \`records_query\` to find one Person/Company (prefer exact domain/email + title+company). If multiple, list up to 5 for disambiguation and STOP.
113
+
114
+ 2) Build a tiny web plan (token-light): At most ${validated.limit_web} pages total. Prioritize: company homepage (domain), LinkedIn company page, product/pricing page. Call \`web.search\` only if domain is unknown; otherwise skip search. Call \`web.fetch\` and extract readable text only (strip nav/boilerplate). Truncate each page to the first ~${WEB_RESEARCH_LIMITS.maxWordsPerPage} words.
115
+
116
+ 3) Extract key facts for ${validated.framework.toUpperCase()}:
117
+ - Firmographic: industry, employee bucket, region; ICP match
118
+ - Problem fit: product category/keywords
119
+ - Budget: pricing tier mentions
120
+ - Authority: likely buyer role(s)
121
+ - Timing/Priority: hiring/funding/news in last 12 months
122
+
123
+ 4) Output (${validated.format}):
124
+ - If json: return ONLY a JSON object with fields: lead, framework, fit, score, summary (≤80w), evidence (≤${WEB_RESEARCH_LIMITS.maxEvidence}), fields_to_update, recommended_next_step (≤20w)
125
+ - If table: return a 2-column table
126
+ Verbosity=${validated.verbosity} → no preamble
127
+
128
+ 5) Propose actions: Suggest a single \`records.update\` and optionally \`tasks.create\`. ${validated.dry_run ? 'Output proposed tool call(s) as JSON only.' : 'Ask for approval before any write.'}
129
+
130
+ Constraints: Pages ≤ ${validated.limit_web}, each ≤ ~${WEB_RESEARCH_LIMITS.maxWordsPerPage} words; evidence max ${WEB_RESEARCH_LIMITS.maxEvidence}. Keep answers short and structured; no raw dumps; JSON under ~120 lines. MORE_AVAILABLE: true when results exceed limits.`;
131
+ return [
132
+ {
133
+ role: 'user',
134
+ content: {
135
+ type: 'text',
136
+ text: instructions,
137
+ },
138
+ },
139
+ ];
140
+ }
141
+ /**
142
+ * Complete prompt definition
143
+ */
144
+ export const qualifyLeadPrompt = {
145
+ metadata: {
146
+ name: 'qualify_lead.v1',
147
+ title: 'Qualify a lead (light web research)',
148
+ description: 'Resolve a lead, scan 2-3 web sources, return a BANT/CHAMP summary with evidence, and propose next actions.',
149
+ category: 'analysis',
150
+ version: 'v1',
151
+ },
152
+ arguments: qualifyLeadArguments,
153
+ buildMessages: buildQualifyLeadMessages,
154
+ tokenBudget: 400, // Per spec (with defaults)
155
+ };
156
+ export default qualifyLeadPrompt;
157
+ //# sourceMappingURL=qualify-lead.v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qualify-lead.v1.js","sourceRoot":"","sources":["../../../src/prompts/v1/qualify-lead.v1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Type definitions for MCP v1 Prompts
3
+ *
4
+ * These types align with the Model Context Protocol specification for prompts
5
+ * and extend them with token awareness features from issue #775.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * MCP PromptMessage types
10
+ * Aligned with @modelcontextprotocol/sdk types
11
+ */
12
+ export type PromptRole = 'user' | 'assistant';
13
+ export interface TextContent {
14
+ type: 'text';
15
+ text: string;
16
+ }
17
+ export interface ImageContent {
18
+ type: 'image';
19
+ data: string;
20
+ mimeType: string;
21
+ }
22
+ export interface EmbeddedResource {
23
+ type: 'resource';
24
+ resource: {
25
+ uri: string;
26
+ mimeType?: string;
27
+ text?: string;
28
+ };
29
+ }
30
+ export type PromptContent = TextContent | ImageContent | EmbeddedResource;
31
+ export interface PromptMessage {
32
+ role: PromptRole;
33
+ content: PromptContent;
34
+ }
35
+ /**
36
+ * Token metadata for prompt responses
37
+ * Provides token counting information when dev mode is enabled
38
+ */
39
+ export interface TokenMetadata {
40
+ /** Total estimated tokens for the prompt */
41
+ estimated_tokens: number;
42
+ /** Total character count across all messages */
43
+ message_chars: number;
44
+ /** Total bytes for embedded resources */
45
+ resource_bytes: number;
46
+ /** Counting method used */
47
+ method: 'tiktoken' | 'estimate';
48
+ /** Whether the count is approximate */
49
+ approx: boolean;
50
+ }
51
+ /**
52
+ * Argument definition for a prompt parameter
53
+ */
54
+ export interface PromptArgument {
55
+ /** Argument name */
56
+ name: string;
57
+ /** Human-readable description (≤80 chars per spec) */
58
+ description: string;
59
+ /** Whether this argument is required */
60
+ required: boolean;
61
+ /** Zod schema for validation */
62
+ schema: z.ZodTypeAny;
63
+ /** Default value if not provided */
64
+ default?: unknown;
65
+ }
66
+ /**
67
+ * Prompt metadata for discovery
68
+ */
69
+ export interface PromptMetadata {
70
+ /** Unique prompt identifier (e.g., "people_search.v1") */
71
+ name: string;
72
+ /** Human-readable title */
73
+ title: string;
74
+ /** Short description (≤140 chars per spec) */
75
+ description: string;
76
+ /** Category for grouping */
77
+ category: 'search' | 'activity' | 'workflow' | 'analysis' | 'general';
78
+ /** Prompt version */
79
+ version: string;
80
+ }
81
+ /**
82
+ * Complete prompt definition
83
+ */
84
+ export interface PromptV1Definition {
85
+ /** Prompt metadata */
86
+ metadata: PromptMetadata;
87
+ /** Argument definitions with Zod schemas */
88
+ arguments: PromptArgument[];
89
+ /** Function to build prompt messages from validated arguments */
90
+ buildMessages: (args: Record<string, unknown>) => PromptMessage[];
91
+ /** Optional: expected token budget for this prompt */
92
+ tokenBudget?: number;
93
+ }
94
+ /**
95
+ * Result structure for prompts/get endpoint with optional dev metadata
96
+ */
97
+ export interface GetPromptV1Result {
98
+ /** Description of the prompt */
99
+ description?: string;
100
+ /** Array of prompt messages */
101
+ messages: PromptMessage[];
102
+ /** Optional dev metadata (when ?dev=true) */
103
+ _meta?: TokenMetadata;
104
+ }
105
+ /**
106
+ * Universal argument schemas for read prompts
107
+ */
108
+ export declare const UniversalReadArgs: {
109
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json", "ids"]>>>;
110
+ fields_preset: z.ZodDefault<z.ZodOptional<z.ZodEnum<["sales_short", "full"]>>>;
111
+ verbosity: z.ZodDefault<z.ZodOptional<z.ZodEnum<["brief", "normal"]>>>;
112
+ };
113
+ /**
114
+ * Universal argument for write prompts
115
+ */
116
+ export declare const DryRunArg: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
117
+ /**
118
+ * Validation error structure
119
+ */
120
+ export interface ValidationError {
121
+ field: string;
122
+ message: string;
123
+ code: string;
124
+ }
125
+ /**
126
+ * Budget enforcement result
127
+ */
128
+ export interface BudgetCheckResult {
129
+ withinBudget: boolean;
130
+ estimatedTokens: number;
131
+ budgetLimit: number;
132
+ exceededBy?: number;
133
+ }
134
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/prompts/v1/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Type definitions for MCP v1 Prompts
3
+ *
4
+ * These types align with the Model Context Protocol specification for prompts
5
+ * and extend them with token awareness features from issue #775.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Universal argument schemas for read prompts
10
+ */
11
+ export const UniversalReadArgs = {
12
+ format: z
13
+ .enum(['table', 'json', 'ids'])
14
+ .optional()
15
+ .default('table')
16
+ .describe('Output format: table (Markdown), json (structured array), or ids (comma-separated)'),
17
+ fields_preset: z
18
+ .enum(['sales_short', 'full'])
19
+ .optional()
20
+ .default('sales_short')
21
+ .describe('Field verbosity: sales_short (minimal, token-efficient) or full (all fields)'),
22
+ verbosity: z
23
+ .enum(['brief', 'normal'])
24
+ .optional()
25
+ .default('brief')
26
+ .describe('Response detail level: brief (concise) or normal (detailed)'),
27
+ };
28
+ /**
29
+ * Universal argument for write prompts
30
+ */
31
+ export const DryRunArg = z
32
+ .boolean()
33
+ .optional()
34
+ .default(false)
35
+ .describe('If true, only propose tool calls without executing writes');
36
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/prompts/v1/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8GxB;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAC9B,QAAQ,EAAE;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CACP,oFAAoF,CACrF;IAEH,aAAa,EAAE,CAAC;SACb,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SAC7B,QAAQ,EAAE;SACV,OAAO,CAAC,aAAa,CAAC;SACtB,QAAQ,CACP,8EAA8E,CAC/E;IAEH,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SACzB,QAAQ,EAAE;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,6DAA6D,CAAC;CAC3E,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC;KACvB,OAAO,EAAE;KACT,QAAQ,EAAE;KACV,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,2DAA2D,CAAC,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Telemetry logging for v1 prompts
3
+ *
4
+ * Provides structured logging of prompt usage metrics when enabled.
5
+ * Respects PROMPT_TELEMETRY_ENABLED environment variable.
6
+ */
7
+ import { TokenMetadata } from '../types.js';
8
+ /**
9
+ * Telemetry event data structure
10
+ */
11
+ export interface PromptTelemetryEvent {
12
+ /** Name of the prompt executed */
13
+ prompt_name: string;
14
+ /** Estimated tokens in the response */
15
+ estimated_tokens: number;
16
+ /** Number of messages in the response */
17
+ message_count: number;
18
+ /** Total bytes of embedded resources */
19
+ resource_bytes: number;
20
+ /** Duration of prompt execution in milliseconds */
21
+ duration_ms: number;
22
+ /** Timestamp of the event */
23
+ timestamp: string;
24
+ /** Whether the prompt exceeded its budget */
25
+ budget_exceeded?: boolean;
26
+ /** User ID if available */
27
+ user_id?: string;
28
+ /** Request ID for correlation */
29
+ request_id?: string;
30
+ }
31
+ /**
32
+ * Log a prompt telemetry event
33
+ *
34
+ * Only logs if PROMPT_TELEMETRY_ENABLED=true
35
+ *
36
+ * @param event - Telemetry event data
37
+ */
38
+ export declare function logPromptTelemetry(event: PromptTelemetryEvent): void;
39
+ /**
40
+ * Create a telemetry event from execution data
41
+ *
42
+ * @param promptName - Name of the prompt
43
+ * @param tokenMetadata - Token metadata from execution
44
+ * @param messageCount - Number of messages generated
45
+ * @param startTime - Execution start time (Date.now())
46
+ * @param budgetExceeded - Whether budget was exceeded
47
+ * @param userId - Optional user ID
48
+ * @param requestId - Optional request ID
49
+ * @returns Telemetry event
50
+ */
51
+ export declare function createTelemetryEvent(promptName: string, tokenMetadata: TokenMetadata, messageCount: number, startTime: number, budgetExceeded?: boolean, userId?: string, requestId?: string): PromptTelemetryEvent;
52
+ /**
53
+ * Track prompt execution with automatic telemetry
54
+ *
55
+ * Helper function to wrap prompt execution with telemetry logging
56
+ *
57
+ * @param promptName - Name of the prompt
58
+ * @param execution - Async function that executes the prompt
59
+ * @param userId - Optional user ID
60
+ * @param requestId - Optional request ID
61
+ * @returns Execution result with telemetry logged
62
+ */
63
+ export declare function trackPromptExecution<T>(promptName: string, execution: () => Promise<T>, userId?: string, requestId?: string): Promise<T>;
64
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../../src/prompts/v1/utils/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAgBpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,OAAe,EAC/B,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,oBAAoB,CAYtB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,CAkBZ"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Telemetry logging for v1 prompts
3
+ *
4
+ * Provides structured logging of prompt usage metrics when enabled.
5
+ * Respects PROMPT_TELEMETRY_ENABLED environment variable.
6
+ */
7
+ import { createScopedLogger } from '../../../utils/logger.js';
8
+ import { isTelemetryEnabled } from '../constants.js';
9
+ const logger = createScopedLogger('prompts.v1', 'telemetry');
10
+ /**
11
+ * Log a prompt telemetry event
12
+ *
13
+ * Only logs if PROMPT_TELEMETRY_ENABLED=true
14
+ *
15
+ * @param event - Telemetry event data
16
+ */
17
+ export function logPromptTelemetry(event) {
18
+ if (!isTelemetryEnabled()) {
19
+ return;
20
+ }
21
+ logger.info('Prompt executed', {
22
+ prompt_name: event.prompt_name,
23
+ estimated_tokens: event.estimated_tokens,
24
+ message_count: event.message_count,
25
+ resource_bytes: event.resource_bytes,
26
+ duration_ms: event.duration_ms,
27
+ budget_exceeded: event.budget_exceeded,
28
+ user_id: event.user_id,
29
+ request_id: event.request_id,
30
+ timestamp: event.timestamp,
31
+ });
32
+ }
33
+ /**
34
+ * Create a telemetry event from execution data
35
+ *
36
+ * @param promptName - Name of the prompt
37
+ * @param tokenMetadata - Token metadata from execution
38
+ * @param messageCount - Number of messages generated
39
+ * @param startTime - Execution start time (Date.now())
40
+ * @param budgetExceeded - Whether budget was exceeded
41
+ * @param userId - Optional user ID
42
+ * @param requestId - Optional request ID
43
+ * @returns Telemetry event
44
+ */
45
+ export function createTelemetryEvent(promptName, tokenMetadata, messageCount, startTime, budgetExceeded = false, userId, requestId) {
46
+ return {
47
+ prompt_name: promptName,
48
+ estimated_tokens: tokenMetadata.estimated_tokens,
49
+ message_count: messageCount,
50
+ resource_bytes: tokenMetadata.resource_bytes,
51
+ duration_ms: Date.now() - startTime,
52
+ timestamp: new Date().toISOString(),
53
+ budget_exceeded: budgetExceeded,
54
+ user_id: userId,
55
+ request_id: requestId,
56
+ };
57
+ }
58
+ /**
59
+ * Track prompt execution with automatic telemetry
60
+ *
61
+ * Helper function to wrap prompt execution with telemetry logging
62
+ *
63
+ * @param promptName - Name of the prompt
64
+ * @param execution - Async function that executes the prompt
65
+ * @param userId - Optional user ID
66
+ * @param requestId - Optional request ID
67
+ * @returns Execution result with telemetry logged
68
+ */
69
+ export async function trackPromptExecution(promptName, execution, userId, requestId) {
70
+ const startTime = Date.now();
71
+ try {
72
+ const result = await execution();
73
+ return result;
74
+ }
75
+ finally {
76
+ // Note: This is a simplified version
77
+ // Full telemetry is logged in the handlers after message generation
78
+ if (isTelemetryEnabled()) {
79
+ logger.debug('Prompt execution completed', {
80
+ prompt_name: promptName,
81
+ duration_ms: Date.now() - startTime,
82
+ user_id: userId,
83
+ request_id: requestId,
84
+ });
85
+ }
86
+ }
87
+ }
88
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../src/prompts/v1/utils/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AA0B7D;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA2B;IAC5D,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC7B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,aAA4B,EAC5B,YAAoB,EACpB,SAAiB,EACjB,iBAA0B,KAAK,EAC/B,MAAe,EACf,SAAkB;IAElB,OAAO;QACL,WAAW,EAAE,UAAU;QACvB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;QAChD,aAAa,EAAE,YAAY;QAC3B,cAAc,EAAE,aAAa,CAAC,cAAc;QAC5C,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,eAAe,EAAE,cAAc;QAC/B,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,SAA2B,EAC3B,MAAe,EACf,SAAkB;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,qCAAqC;QACrC,oEAAoE;QACpE,IAAI,kBAAkB,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;gBACzC,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACnC,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Token metadata calculation utilities for MCP prompts
3
+ *
4
+ * Wraps the token counting utility from #775 to provide
5
+ * prompt-specific token awareness features.
6
+ */
7
+ import { PromptMessage, TokenMetadata, EmbeddedResource } from '../types.js';
8
+ /**
9
+ * Calculate token metadata for a set of prompt messages
10
+ *
11
+ * @param messages - Array of prompt messages
12
+ * @param resources - Optional array of embedded resources
13
+ * @param model - Optional model name for token counting
14
+ * @returns Token metadata with counts and method info
15
+ */
16
+ export declare function calculatePromptTokens(messages: PromptMessage[], resources?: EmbeddedResource[], model?: string): Promise<TokenMetadata>;
17
+ /**
18
+ * Calculate tokens for a single text string
19
+ *
20
+ * Helper function for quick token estimates during prompt building
21
+ *
22
+ * @param text - Text to count tokens for
23
+ * @param model - Optional model name
24
+ * @returns Token count
25
+ */
26
+ export declare function estimateTextTokens(text: string, model?: string): Promise<number>;
27
+ /**
28
+ * Check if messages exceed a token budget
29
+ *
30
+ * @param messages - Prompt messages to check
31
+ * @param budget - Maximum allowed tokens
32
+ * @param model - Optional model name
33
+ * @returns Whether messages are within budget
34
+ */
35
+ export declare function isWithinTokenBudget(messages: PromptMessage[], budget: number, model?: string): Promise<boolean>;
36
+ /**
37
+ * Format token metadata for logging
38
+ *
39
+ * @param metadata - Token metadata to format
40
+ * @returns Formatted string for logs
41
+ */
42
+ export declare function formatTokenMetadata(metadata: TokenMetadata): string;
43
+ //# sourceMappingURL=token-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-metadata.d.ts","sourceRoot":"","sources":["../../../../src/prompts/v1/utils/token-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,CAAC,EAAE,gBAAgB,EAAE,EAC9B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CAyCxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAEnE"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Token metadata calculation utilities for MCP prompts
3
+ *
4
+ * Wraps the token counting utility from #775 to provide
5
+ * prompt-specific token awareness features.
6
+ */
7
+ import { countTokens } from '../../../utils/token-count.js';
8
+ /**
9
+ * Calculate token metadata for a set of prompt messages
10
+ *
11
+ * @param messages - Array of prompt messages
12
+ * @param resources - Optional array of embedded resources
13
+ * @param model - Optional model name for token counting
14
+ * @returns Token metadata with counts and method info
15
+ */
16
+ export async function calculatePromptTokens(messages, resources, model) {
17
+ let totalTokens = 0;
18
+ let totalChars = 0;
19
+ let totalResourceBytes = 0;
20
+ // Count tokens and chars for each message
21
+ for (const message of messages) {
22
+ if (message.content.type === 'text') {
23
+ const text = message.content.text;
24
+ totalChars += text.length;
25
+ totalTokens += await countTokens(text, model);
26
+ }
27
+ else if (message.content.type === 'image') {
28
+ // Images are counted by data length (base64 encoded)
29
+ const dataSize = message.content.data.length;
30
+ totalChars += dataSize;
31
+ // Rough estimate: 1 token per 4 chars for base64
32
+ totalTokens += Math.ceil(dataSize / 4);
33
+ }
34
+ else if (message.content.type === 'resource') {
35
+ const resourceText = message.content.resource.text || '';
36
+ totalChars += resourceText.length;
37
+ totalTokens += await countTokens(resourceText, model);
38
+ }
39
+ }
40
+ // Count embedded resource tokens
41
+ if (resources && resources.length > 0) {
42
+ for (const resource of resources) {
43
+ const resourceText = resource.resource.text || '';
44
+ const resourceBytes = Buffer.byteLength(resourceText, 'utf8');
45
+ totalResourceBytes += resourceBytes;
46
+ totalTokens += await countTokens(resourceText, model);
47
+ }
48
+ }
49
+ return {
50
+ estimated_tokens: totalTokens,
51
+ message_chars: totalChars,
52
+ resource_bytes: totalResourceBytes,
53
+ method: 'tiktoken',
54
+ approx: false, // tiktoken provides deterministic counts
55
+ };
56
+ }
57
+ /**
58
+ * Calculate tokens for a single text string
59
+ *
60
+ * Helper function for quick token estimates during prompt building
61
+ *
62
+ * @param text - Text to count tokens for
63
+ * @param model - Optional model name
64
+ * @returns Token count
65
+ */
66
+ export async function estimateTextTokens(text, model) {
67
+ return countTokens(text, model);
68
+ }
69
+ /**
70
+ * Check if messages exceed a token budget
71
+ *
72
+ * @param messages - Prompt messages to check
73
+ * @param budget - Maximum allowed tokens
74
+ * @param model - Optional model name
75
+ * @returns Whether messages are within budget
76
+ */
77
+ export async function isWithinTokenBudget(messages, budget, model) {
78
+ const metadata = await calculatePromptTokens(messages, undefined, model);
79
+ return metadata.estimated_tokens <= budget;
80
+ }
81
+ /**
82
+ * Format token metadata for logging
83
+ *
84
+ * @param metadata - Token metadata to format
85
+ * @returns Formatted string for logs
86
+ */
87
+ export function formatTokenMetadata(metadata) {
88
+ return `${metadata.estimated_tokens} tokens (${metadata.message_chars} chars, ${metadata.resource_bytes} resource bytes) via ${metadata.method}`;
89
+ }
90
+ //# sourceMappingURL=token-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-metadata.js","sourceRoot":"","sources":["../../../../src/prompts/v1/utils/token-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAyB,EACzB,SAA8B,EAC9B,KAAc;IAEd,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,0CAA0C;IAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YAClC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC;YAC1B,WAAW,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5C,qDAAqD;YACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7C,UAAU,IAAI,QAAQ,CAAC;YACvB,iDAAiD;YACjD,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YACzD,UAAU,IAAI,YAAY,CAAC,MAAM,CAAC;YAClC,WAAW,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAC9D,kBAAkB,IAAI,aAAa,CAAC;YACpC,WAAW,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,WAAW;QAC7B,aAAa,EAAE,UAAU;QACzB,cAAc,EAAE,kBAAkB;QAClC,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,KAAK,EAAE,yCAAyC;KACzD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,KAAc;IAEd,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAyB,EACzB,MAAc,EACd,KAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACzE,OAAO,QAAQ,CAAC,gBAAgB,IAAI,MAAM,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAuB;IACzD,OAAO,GAAG,QAAQ,CAAC,gBAAgB,YAAY,QAAQ,CAAC,aAAa,WAAW,QAAQ,CAAC,cAAc,wBAAwB,QAAQ,CAAC,MAAM,EAAE,CAAC;AACnJ,CAAC"}