@ainative/cody-sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (770) hide show
  1. package/.github/logo.svg +3 -0
  2. package/CHANGELOG.md +2345 -0
  3. package/LICENSE +8 -0
  4. package/README.md +45 -0
  5. package/_vendor/partial-json-parser/parser.d.mts +3 -0
  6. package/_vendor/partial-json-parser/parser.d.mts.map +1 -0
  7. package/_vendor/partial-json-parser/parser.d.ts +3 -0
  8. package/_vendor/partial-json-parser/parser.d.ts.map +1 -0
  9. package/_vendor/partial-json-parser/parser.js +226 -0
  10. package/_vendor/partial-json-parser/parser.js.map +1 -0
  11. package/_vendor/partial-json-parser/parser.mjs +223 -0
  12. package/_vendor/partial-json-parser/parser.mjs.map +1 -0
  13. package/ainative.d.mts +32 -0
  14. package/ainative.d.mts.map +1 -0
  15. package/ainative.d.ts +32 -0
  16. package/ainative.d.ts.map +1 -0
  17. package/ainative.js +78 -0
  18. package/ainative.js.map +1 -0
  19. package/ainative.mjs +71 -0
  20. package/ainative.mjs.map +1 -0
  21. package/api-promise.d.mts +2 -0
  22. package/api-promise.d.mts.map +1 -0
  23. package/api-promise.d.ts +2 -0
  24. package/api-promise.d.ts.map +1 -0
  25. package/api-promise.js +6 -0
  26. package/api-promise.js.map +1 -0
  27. package/api-promise.mjs +2 -0
  28. package/api-promise.mjs.map +1 -0
  29. package/bin/cli +53 -0
  30. package/bin/migration-config.json +82 -0
  31. package/client.d.mts +247 -0
  32. package/client.d.mts.map +1 -0
  33. package/client.d.ts +247 -0
  34. package/client.d.ts.map +1 -0
  35. package/client.js +567 -0
  36. package/client.js.map +1 -0
  37. package/client.mjs +562 -0
  38. package/client.mjs.map +1 -0
  39. package/core/api-promise.d.mts +49 -0
  40. package/core/api-promise.d.mts.map +1 -0
  41. package/core/api-promise.d.ts +49 -0
  42. package/core/api-promise.d.ts.map +1 -0
  43. package/core/api-promise.js +76 -0
  44. package/core/api-promise.js.map +1 -0
  45. package/core/api-promise.mjs +72 -0
  46. package/core/api-promise.mjs.map +1 -0
  47. package/core/error.d.mts +50 -0
  48. package/core/error.d.mts.map +1 -0
  49. package/core/error.d.ts +50 -0
  50. package/core/error.d.ts.map +1 -0
  51. package/core/error.js +116 -0
  52. package/core/error.js.map +1 -0
  53. package/core/error.mjs +100 -0
  54. package/core/error.mjs.map +1 -0
  55. package/core/pagination.d.mts +105 -0
  56. package/core/pagination.d.mts.map +1 -0
  57. package/core/pagination.d.ts +105 -0
  58. package/core/pagination.d.ts.map +1 -0
  59. package/core/pagination.js +185 -0
  60. package/core/pagination.js.map +1 -0
  61. package/core/pagination.mjs +177 -0
  62. package/core/pagination.mjs.map +1 -0
  63. package/core/resource.d.mts +6 -0
  64. package/core/resource.d.mts.map +1 -0
  65. package/core/resource.d.ts +6 -0
  66. package/core/resource.d.ts.map +1 -0
  67. package/core/resource.js +11 -0
  68. package/core/resource.js.map +1 -0
  69. package/core/resource.mjs +7 -0
  70. package/core/resource.mjs.map +1 -0
  71. package/core/streaming.d.mts +33 -0
  72. package/core/streaming.d.mts.map +1 -0
  73. package/core/streaming.d.ts +33 -0
  74. package/core/streaming.d.ts.map +1 -0
  75. package/core/streaming.js +290 -0
  76. package/core/streaming.js.map +1 -0
  77. package/core/streaming.mjs +285 -0
  78. package/core/streaming.mjs.map +1 -0
  79. package/core/uploads.d.mts +3 -0
  80. package/core/uploads.d.mts.map +1 -0
  81. package/core/uploads.d.ts +3 -0
  82. package/core/uploads.d.ts.map +1 -0
  83. package/core/uploads.js +6 -0
  84. package/core/uploads.js.map +1 -0
  85. package/core/uploads.mjs +2 -0
  86. package/core/uploads.mjs.map +1 -0
  87. package/error.d.mts +2 -0
  88. package/error.d.mts.map +1 -0
  89. package/error.d.ts +2 -0
  90. package/error.d.ts.map +1 -0
  91. package/error.js +6 -0
  92. package/error.js.map +1 -0
  93. package/error.mjs +2 -0
  94. package/error.mjs.map +1 -0
  95. package/helpers/beta/json-schema.d.mts +31 -0
  96. package/helpers/beta/json-schema.d.mts.map +1 -0
  97. package/helpers/beta/json-schema.d.ts +31 -0
  98. package/helpers/beta/json-schema.d.ts.map +1 -0
  99. package/helpers/beta/json-schema.js +56 -0
  100. package/helpers/beta/json-schema.js.map +1 -0
  101. package/helpers/beta/json-schema.mjs +52 -0
  102. package/helpers/beta/json-schema.mjs.map +1 -0
  103. package/helpers/beta/mcp.d.mts +303 -0
  104. package/helpers/beta/mcp.d.mts.map +1 -0
  105. package/helpers/beta/mcp.d.ts +303 -0
  106. package/helpers/beta/mcp.d.ts.map +1 -0
  107. package/helpers/beta/mcp.js +419 -0
  108. package/helpers/beta/mcp.js.map +1 -0
  109. package/helpers/beta/mcp.mjs +406 -0
  110. package/helpers/beta/mcp.mjs.map +1 -0
  111. package/helpers/beta/memory.d.mts +11 -0
  112. package/helpers/beta/memory.d.mts.map +1 -0
  113. package/helpers/beta/memory.d.ts +11 -0
  114. package/helpers/beta/memory.d.ts.map +1 -0
  115. package/helpers/beta/memory.js +18 -0
  116. package/helpers/beta/memory.js.map +1 -0
  117. package/helpers/beta/memory.mjs +15 -0
  118. package/helpers/beta/memory.mjs.map +1 -0
  119. package/helpers/beta/zod.d.mts +27 -0
  120. package/helpers/beta/zod.d.mts.map +1 -0
  121. package/helpers/beta/zod.d.ts +27 -0
  122. package/helpers/beta/zod.d.ts.map +1 -0
  123. package/helpers/beta/zod.js +57 -0
  124. package/helpers/beta/zod.js.map +1 -0
  125. package/helpers/beta/zod.mjs +52 -0
  126. package/helpers/beta/zod.mjs.map +1 -0
  127. package/helpers/index.d.mts +3 -0
  128. package/helpers/index.d.mts.map +1 -0
  129. package/helpers/index.d.ts +3 -0
  130. package/helpers/index.d.ts.map +1 -0
  131. package/helpers/index.js +8 -0
  132. package/helpers/index.js.map +1 -0
  133. package/helpers/index.mjs +3 -0
  134. package/helpers/index.mjs.map +1 -0
  135. package/helpers/json-schema.d.mts +18 -0
  136. package/helpers/json-schema.d.mts.map +1 -0
  137. package/helpers/json-schema.d.ts +18 -0
  138. package/helpers/json-schema.d.ts.map +1 -0
  139. package/helpers/json-schema.js +37 -0
  140. package/helpers/json-schema.js.map +1 -0
  141. package/helpers/json-schema.mjs +34 -0
  142. package/helpers/json-schema.mjs.map +1 -0
  143. package/helpers/zod.d.mts +13 -0
  144. package/helpers/zod.d.mts.map +1 -0
  145. package/helpers/zod.d.ts +13 -0
  146. package/helpers/zod.d.ts.map +1 -0
  147. package/helpers/zod.js +47 -0
  148. package/helpers/zod.js.map +1 -0
  149. package/helpers/zod.mjs +43 -0
  150. package/helpers/zod.mjs.map +1 -0
  151. package/index.d.mts +9 -0
  152. package/index.d.mts.map +1 -0
  153. package/index.d.ts +9 -0
  154. package/index.d.ts.map +1 -0
  155. package/index.js +42 -0
  156. package/index.js.map +1 -0
  157. package/index.mjs +9 -0
  158. package/index.mjs.map +1 -0
  159. package/internal/builtin-types.d.mts +73 -0
  160. package/internal/builtin-types.d.mts.map +1 -0
  161. package/internal/builtin-types.d.ts +73 -0
  162. package/internal/builtin-types.d.ts.map +1 -0
  163. package/internal/builtin-types.js +4 -0
  164. package/internal/builtin-types.js.map +1 -0
  165. package/internal/builtin-types.mjs +3 -0
  166. package/internal/builtin-types.mjs.map +1 -0
  167. package/internal/constants.d.mts +5 -0
  168. package/internal/constants.d.mts.map +1 -0
  169. package/internal/constants.d.ts +5 -0
  170. package/internal/constants.d.ts.map +1 -0
  171. package/internal/constants.js +18 -0
  172. package/internal/constants.js.map +1 -0
  173. package/internal/constants.mjs +15 -0
  174. package/internal/constants.mjs.map +1 -0
  175. package/internal/decoders/jsonl.d.mts +10 -0
  176. package/internal/decoders/jsonl.d.mts.map +1 -0
  177. package/internal/decoders/jsonl.d.ts +10 -0
  178. package/internal/decoders/jsonl.d.ts.map +1 -0
  179. package/internal/decoders/jsonl.js +39 -0
  180. package/internal/decoders/jsonl.js.map +1 -0
  181. package/internal/decoders/jsonl.mjs +35 -0
  182. package/internal/decoders/jsonl.mjs.map +1 -0
  183. package/internal/decoders/line.d.mts +17 -0
  184. package/internal/decoders/line.d.mts.map +1 -0
  185. package/internal/decoders/line.d.ts +17 -0
  186. package/internal/decoders/line.d.ts.map +1 -0
  187. package/internal/decoders/line.js +113 -0
  188. package/internal/decoders/line.js.map +1 -0
  189. package/internal/decoders/line.mjs +108 -0
  190. package/internal/decoders/line.mjs.map +1 -0
  191. package/internal/detect-platform.d.mts +15 -0
  192. package/internal/detect-platform.d.mts.map +1 -0
  193. package/internal/detect-platform.d.ts +15 -0
  194. package/internal/detect-platform.d.ts.map +1 -0
  195. package/internal/detect-platform.js +162 -0
  196. package/internal/detect-platform.js.map +1 -0
  197. package/internal/detect-platform.mjs +157 -0
  198. package/internal/detect-platform.mjs.map +1 -0
  199. package/internal/errors.d.mts +3 -0
  200. package/internal/errors.d.mts.map +1 -0
  201. package/internal/errors.d.ts +3 -0
  202. package/internal/errors.d.ts.map +1 -0
  203. package/internal/errors.js +41 -0
  204. package/internal/errors.js.map +1 -0
  205. package/internal/errors.mjs +36 -0
  206. package/internal/errors.mjs.map +1 -0
  207. package/internal/headers.d.mts +22 -0
  208. package/internal/headers.d.mts.map +1 -0
  209. package/internal/headers.d.ts +22 -0
  210. package/internal/headers.d.ts.map +1 -0
  211. package/internal/headers.js +79 -0
  212. package/internal/headers.js.map +1 -0
  213. package/internal/headers.mjs +74 -0
  214. package/internal/headers.mjs.map +1 -0
  215. package/internal/parse.d.mts +17 -0
  216. package/internal/parse.d.mts.map +1 -0
  217. package/internal/parse.d.ts +17 -0
  218. package/internal/parse.d.ts.map +1 -0
  219. package/internal/parse.js +60 -0
  220. package/internal/parse.js.map +1 -0
  221. package/internal/parse.mjs +56 -0
  222. package/internal/parse.mjs.map +1 -0
  223. package/internal/request-options.d.mts +77 -0
  224. package/internal/request-options.d.mts.map +1 -0
  225. package/internal/request-options.d.ts +77 -0
  226. package/internal/request-options.d.ts.map +1 -0
  227. package/internal/request-options.js +14 -0
  228. package/internal/request-options.js.map +1 -0
  229. package/internal/request-options.mjs +10 -0
  230. package/internal/request-options.mjs.map +1 -0
  231. package/internal/shim-types.d.mts +17 -0
  232. package/internal/shim-types.d.mts.map +1 -0
  233. package/internal/shim-types.d.ts +17 -0
  234. package/internal/shim-types.d.ts.map +1 -0
  235. package/internal/shim-types.js +4 -0
  236. package/internal/shim-types.js.map +1 -0
  237. package/internal/shim-types.mjs +3 -0
  238. package/internal/shim-types.mjs.map +1 -0
  239. package/internal/shims.d.mts +20 -0
  240. package/internal/shims.d.mts.map +1 -0
  241. package/internal/shims.d.ts +20 -0
  242. package/internal/shims.d.ts.map +1 -0
  243. package/internal/shims.js +92 -0
  244. package/internal/shims.js.map +1 -0
  245. package/internal/shims.mjs +85 -0
  246. package/internal/shims.mjs.map +1 -0
  247. package/internal/stream-utils.d.mts +8 -0
  248. package/internal/stream-utils.d.mts.map +1 -0
  249. package/internal/stream-utils.d.ts +8 -0
  250. package/internal/stream-utils.d.ts.map +1 -0
  251. package/internal/stream-utils.js +38 -0
  252. package/internal/stream-utils.js.map +1 -0
  253. package/internal/stream-utils.mjs +35 -0
  254. package/internal/stream-utils.mjs.map +1 -0
  255. package/internal/to-file.d.mts +45 -0
  256. package/internal/to-file.d.mts.map +1 -0
  257. package/internal/to-file.d.ts +45 -0
  258. package/internal/to-file.d.ts.map +1 -0
  259. package/internal/to-file.js +96 -0
  260. package/internal/to-file.js.map +1 -0
  261. package/internal/to-file.mjs +93 -0
  262. package/internal/to-file.mjs.map +1 -0
  263. package/internal/tslib.js +81 -0
  264. package/internal/tslib.mjs +17 -0
  265. package/internal/types.d.mts +69 -0
  266. package/internal/types.d.mts.map +1 -0
  267. package/internal/types.d.ts +69 -0
  268. package/internal/types.d.ts.map +1 -0
  269. package/internal/types.js +4 -0
  270. package/internal/types.js.map +1 -0
  271. package/internal/types.mjs +3 -0
  272. package/internal/types.mjs.map +1 -0
  273. package/internal/uploads.d.mts +42 -0
  274. package/internal/uploads.d.mts.map +1 -0
  275. package/internal/uploads.d.ts +42 -0
  276. package/internal/uploads.d.ts.map +1 -0
  277. package/internal/uploads.js +145 -0
  278. package/internal/uploads.js.map +1 -0
  279. package/internal/uploads.mjs +135 -0
  280. package/internal/uploads.mjs.map +1 -0
  281. package/internal/utils/base64.d.mts +3 -0
  282. package/internal/utils/base64.d.mts.map +1 -0
  283. package/internal/utils/base64.d.ts +3 -0
  284. package/internal/utils/base64.d.ts.map +1 -0
  285. package/internal/utils/base64.js +38 -0
  286. package/internal/utils/base64.js.map +1 -0
  287. package/internal/utils/base64.mjs +33 -0
  288. package/internal/utils/base64.mjs.map +1 -0
  289. package/internal/utils/bytes.d.mts +4 -0
  290. package/internal/utils/bytes.d.mts.map +1 -0
  291. package/internal/utils/bytes.d.ts +4 -0
  292. package/internal/utils/bytes.d.ts.map +1 -0
  293. package/internal/utils/bytes.js +31 -0
  294. package/internal/utils/bytes.js.map +1 -0
  295. package/internal/utils/bytes.mjs +26 -0
  296. package/internal/utils/bytes.mjs.map +1 -0
  297. package/internal/utils/env.d.mts +9 -0
  298. package/internal/utils/env.d.mts.map +1 -0
  299. package/internal/utils/env.d.ts +9 -0
  300. package/internal/utils/env.d.ts.map +1 -0
  301. package/internal/utils/env.js +22 -0
  302. package/internal/utils/env.js.map +1 -0
  303. package/internal/utils/env.mjs +18 -0
  304. package/internal/utils/env.mjs.map +1 -0
  305. package/internal/utils/log.d.mts +37 -0
  306. package/internal/utils/log.d.mts.map +1 -0
  307. package/internal/utils/log.d.ts +37 -0
  308. package/internal/utils/log.d.ts.map +1 -0
  309. package/internal/utils/log.js +86 -0
  310. package/internal/utils/log.js.map +1 -0
  311. package/internal/utils/log.mjs +80 -0
  312. package/internal/utils/log.mjs.map +1 -0
  313. package/internal/utils/path.d.mts +15 -0
  314. package/internal/utils/path.d.mts.map +1 -0
  315. package/internal/utils/path.d.ts +15 -0
  316. package/internal/utils/path.d.ts.map +1 -0
  317. package/internal/utils/path.js +79 -0
  318. package/internal/utils/path.js.map +1 -0
  319. package/internal/utils/path.mjs +74 -0
  320. package/internal/utils/path.mjs.map +1 -0
  321. package/internal/utils/query.d.mts +5 -0
  322. package/internal/utils/query.d.mts.map +1 -0
  323. package/internal/utils/query.d.ts +5 -0
  324. package/internal/utils/query.d.ts.map +1 -0
  325. package/internal/utils/query.js +23 -0
  326. package/internal/utils/query.js.map +1 -0
  327. package/internal/utils/query.mjs +20 -0
  328. package/internal/utils/query.mjs.map +1 -0
  329. package/internal/utils/sleep.d.mts +2 -0
  330. package/internal/utils/sleep.d.mts.map +1 -0
  331. package/internal/utils/sleep.d.ts +2 -0
  332. package/internal/utils/sleep.d.ts.map +1 -0
  333. package/internal/utils/sleep.js +7 -0
  334. package/internal/utils/sleep.js.map +1 -0
  335. package/internal/utils/sleep.mjs +3 -0
  336. package/internal/utils/sleep.mjs.map +1 -0
  337. package/internal/utils/uuid.d.mts +5 -0
  338. package/internal/utils/uuid.d.mts.map +1 -0
  339. package/internal/utils/uuid.d.ts +5 -0
  340. package/internal/utils/uuid.d.ts.map +1 -0
  341. package/internal/utils/uuid.js +19 -0
  342. package/internal/utils/uuid.js.map +1 -0
  343. package/internal/utils/uuid.mjs +15 -0
  344. package/internal/utils/uuid.mjs.map +1 -0
  345. package/internal/utils/values.d.mts +19 -0
  346. package/internal/utils/values.d.mts.map +1 -0
  347. package/internal/utils/values.d.ts +19 -0
  348. package/internal/utils/values.d.ts.map +1 -0
  349. package/internal/utils/values.js +119 -0
  350. package/internal/utils/values.js.map +1 -0
  351. package/internal/utils/values.mjs +100 -0
  352. package/internal/utils/values.mjs.map +1 -0
  353. package/internal/utils.d.mts +8 -0
  354. package/internal/utils.d.mts.map +1 -0
  355. package/internal/utils.d.ts +8 -0
  356. package/internal/utils.d.ts.map +1 -0
  357. package/internal/utils.js +12 -0
  358. package/internal/utils.js.map +1 -0
  359. package/internal/utils.mjs +9 -0
  360. package/internal/utils.mjs.map +1 -0
  361. package/lib/BetaMessageStream.d.mts +122 -0
  362. package/lib/BetaMessageStream.d.mts.map +1 -0
  363. package/lib/BetaMessageStream.d.ts +122 -0
  364. package/lib/BetaMessageStream.d.ts.map +1 -0
  365. package/lib/BetaMessageStream.js +620 -0
  366. package/lib/BetaMessageStream.js.map +1 -0
  367. package/lib/BetaMessageStream.mjs +616 -0
  368. package/lib/BetaMessageStream.mjs.map +1 -0
  369. package/lib/MessageStream.d.mts +121 -0
  370. package/lib/MessageStream.d.mts.map +1 -0
  371. package/lib/MessageStream.d.ts +121 -0
  372. package/lib/MessageStream.d.ts.map +1 -0
  373. package/lib/MessageStream.js +595 -0
  374. package/lib/MessageStream.js.map +1 -0
  375. package/lib/MessageStream.mjs +591 -0
  376. package/lib/MessageStream.mjs.map +1 -0
  377. package/lib/beta-parser.d.mts +37 -0
  378. package/lib/beta-parser.d.mts.map +1 -0
  379. package/lib/beta-parser.d.ts +37 -0
  380. package/lib/beta-parser.d.ts.map +1 -0
  381. package/lib/beta-parser.js +79 -0
  382. package/lib/beta-parser.js.map +1 -0
  383. package/lib/beta-parser.mjs +75 -0
  384. package/lib/beta-parser.mjs.map +1 -0
  385. package/lib/parser.d.mts +32 -0
  386. package/lib/parser.d.mts.map +1 -0
  387. package/lib/parser.d.ts +32 -0
  388. package/lib/parser.d.ts.map +1 -0
  389. package/lib/parser.js +66 -0
  390. package/lib/parser.js.map +1 -0
  391. package/lib/parser.mjs +62 -0
  392. package/lib/parser.mjs.map +1 -0
  393. package/lib/stainless-helper-header.d.mts +34 -0
  394. package/lib/stainless-helper-header.d.mts.map +1 -0
  395. package/lib/stainless-helper-header.d.ts +34 -0
  396. package/lib/stainless-helper-header.d.ts.map +1 -0
  397. package/lib/stainless-helper-header.js +70 -0
  398. package/lib/stainless-helper-header.js.map +1 -0
  399. package/lib/stainless-helper-header.mjs +63 -0
  400. package/lib/stainless-helper-header.mjs.map +1 -0
  401. package/lib/tools/BetaRunnableTool.d.mts +12 -0
  402. package/lib/tools/BetaRunnableTool.d.mts.map +1 -0
  403. package/lib/tools/BetaRunnableTool.d.ts +12 -0
  404. package/lib/tools/BetaRunnableTool.d.ts.map +1 -0
  405. package/lib/tools/BetaRunnableTool.js +3 -0
  406. package/lib/tools/BetaRunnableTool.js.map +1 -0
  407. package/lib/tools/BetaRunnableTool.mjs +2 -0
  408. package/lib/tools/BetaRunnableTool.mjs.map +1 -0
  409. package/lib/tools/BetaToolRunner.d.mts +141 -0
  410. package/lib/tools/BetaToolRunner.d.mts.map +1 -0
  411. package/lib/tools/BetaToolRunner.d.ts +141 -0
  412. package/lib/tools/BetaToolRunner.d.ts.map +1 -0
  413. package/lib/tools/BetaToolRunner.js +381 -0
  414. package/lib/tools/BetaToolRunner.js.map +1 -0
  415. package/lib/tools/BetaToolRunner.mjs +377 -0
  416. package/lib/tools/BetaToolRunner.mjs.map +1 -0
  417. package/lib/tools/CompactionControl.d.mts +30 -0
  418. package/lib/tools/CompactionControl.d.mts.map +1 -0
  419. package/lib/tools/CompactionControl.d.ts +30 -0
  420. package/lib/tools/CompactionControl.d.ts.map +1 -0
  421. package/lib/tools/CompactionControl.js +28 -0
  422. package/lib/tools/CompactionControl.js.map +1 -0
  423. package/lib/tools/CompactionControl.mjs +25 -0
  424. package/lib/tools/CompactionControl.mjs.map +1 -0
  425. package/lib/tools/ToolError.d.mts +33 -0
  426. package/lib/tools/ToolError.d.mts.map +1 -0
  427. package/lib/tools/ToolError.d.ts +33 -0
  428. package/lib/tools/ToolError.d.ts.map +1 -0
  429. package/lib/tools/ToolError.js +42 -0
  430. package/lib/tools/ToolError.js.map +1 -0
  431. package/lib/tools/ToolError.mjs +38 -0
  432. package/lib/tools/ToolError.mjs.map +1 -0
  433. package/lib/tools/ToolRunner.d.mts +132 -0
  434. package/lib/tools/ToolRunner.d.mts.map +1 -0
  435. package/lib/tools/ToolRunner.d.ts +132 -0
  436. package/lib/tools/ToolRunner.d.ts.map +1 -0
  437. package/lib/tools/ToolRunner.js +294 -0
  438. package/lib/tools/ToolRunner.js.map +1 -0
  439. package/lib/tools/ToolRunner.mjs +290 -0
  440. package/lib/tools/ToolRunner.mjs.map +1 -0
  441. package/lib/transform-json-schema.d.mts +3 -0
  442. package/lib/transform-json-schema.d.mts.map +1 -0
  443. package/lib/transform-json-schema.d.ts +3 -0
  444. package/lib/transform-json-schema.d.ts.map +1 -0
  445. package/lib/transform-json-schema.js +114 -0
  446. package/lib/transform-json-schema.js.map +1 -0
  447. package/lib/transform-json-schema.mjs +111 -0
  448. package/lib/transform-json-schema.mjs.map +1 -0
  449. package/package.json +246 -0
  450. package/pagination.d.mts +2 -0
  451. package/pagination.d.mts.map +1 -0
  452. package/pagination.d.ts +2 -0
  453. package/pagination.d.ts.map +1 -0
  454. package/pagination.js +6 -0
  455. package/pagination.js.map +1 -0
  456. package/pagination.mjs +2 -0
  457. package/pagination.mjs.map +1 -0
  458. package/resource.d.mts +2 -0
  459. package/resource.d.mts.map +1 -0
  460. package/resource.d.ts +2 -0
  461. package/resource.d.ts.map +1 -0
  462. package/resource.js +6 -0
  463. package/resource.js.map +1 -0
  464. package/resource.mjs +2 -0
  465. package/resource.mjs.map +1 -0
  466. package/resources/beta/beta.d.mts +66 -0
  467. package/resources/beta/beta.d.mts.map +1 -0
  468. package/resources/beta/beta.d.ts +66 -0
  469. package/resources/beta/beta.d.ts.map +1 -0
  470. package/resources/beta/beta.js +29 -0
  471. package/resources/beta/beta.js.map +1 -0
  472. package/resources/beta/beta.mjs +24 -0
  473. package/resources/beta/beta.mjs.map +1 -0
  474. package/resources/beta/files.d.mts +151 -0
  475. package/resources/beta/files.d.mts.map +1 -0
  476. package/resources/beta/files.d.ts +151 -0
  477. package/resources/beta/files.d.ts.map +1 -0
  478. package/resources/beta/files.js +124 -0
  479. package/resources/beta/files.js.map +1 -0
  480. package/resources/beta/files.mjs +120 -0
  481. package/resources/beta/files.mjs.map +1 -0
  482. package/resources/beta/index.d.mts +6 -0
  483. package/resources/beta/index.d.mts.map +1 -0
  484. package/resources/beta/index.d.ts +6 -0
  485. package/resources/beta/index.d.ts.map +1 -0
  486. package/resources/beta/index.js +15 -0
  487. package/resources/beta/index.js.map +1 -0
  488. package/resources/beta/index.mjs +7 -0
  489. package/resources/beta/index.mjs.map +1 -0
  490. package/resources/beta/messages/batches.d.mts +646 -0
  491. package/resources/beta/messages/batches.d.mts.map +1 -0
  492. package/resources/beta/messages/batches.d.ts +646 -0
  493. package/resources/beta/messages/batches.d.ts.map +1 -0
  494. package/resources/beta/messages/batches.js +204 -0
  495. package/resources/beta/messages/batches.js.map +1 -0
  496. package/resources/beta/messages/batches.mjs +200 -0
  497. package/resources/beta/messages/batches.mjs.map +1 -0
  498. package/resources/beta/messages/index.d.mts +4 -0
  499. package/resources/beta/messages/index.d.mts.map +1 -0
  500. package/resources/beta/messages/index.d.ts +4 -0
  501. package/resources/beta/messages/index.d.ts.map +1 -0
  502. package/resources/beta/messages/index.js +12 -0
  503. package/resources/beta/messages/index.js.map +1 -0
  504. package/resources/beta/messages/index.mjs +5 -0
  505. package/resources/beta/messages/index.mjs.map +1 -0
  506. package/resources/beta/messages/messages.d.mts +2993 -0
  507. package/resources/beta/messages/messages.d.mts.map +1 -0
  508. package/resources/beta/messages/messages.d.ts +2993 -0
  509. package/resources/beta/messages/messages.d.ts.map +1 -0
  510. package/resources/beta/messages/messages.js +163 -0
  511. package/resources/beta/messages/messages.js.map +1 -0
  512. package/resources/beta/messages/messages.mjs +156 -0
  513. package/resources/beta/messages/messages.mjs.map +1 -0
  514. package/resources/beta/messages.d.mts +2 -0
  515. package/resources/beta/messages.d.mts.map +1 -0
  516. package/resources/beta/messages.d.ts +2 -0
  517. package/resources/beta/messages.d.ts.map +1 -0
  518. package/resources/beta/messages.js +6 -0
  519. package/resources/beta/messages.js.map +1 -0
  520. package/resources/beta/messages.mjs +3 -0
  521. package/resources/beta/messages.mjs.map +1 -0
  522. package/resources/beta/models.d.mts +208 -0
  523. package/resources/beta/models.d.mts.map +1 -0
  524. package/resources/beta/models.d.ts +208 -0
  525. package/resources/beta/models.d.ts.map +1 -0
  526. package/resources/beta/models.js +60 -0
  527. package/resources/beta/models.js.map +1 -0
  528. package/resources/beta/models.mjs +56 -0
  529. package/resources/beta/models.mjs.map +1 -0
  530. package/resources/beta/skills/index.d.mts +3 -0
  531. package/resources/beta/skills/index.d.mts.map +1 -0
  532. package/resources/beta/skills/index.d.ts +3 -0
  533. package/resources/beta/skills/index.d.ts.map +1 -0
  534. package/resources/beta/skills/index.js +9 -0
  535. package/resources/beta/skills/index.js.map +1 -0
  536. package/resources/beta/skills/index.mjs +4 -0
  537. package/resources/beta/skills/index.mjs.map +1 -0
  538. package/resources/beta/skills/skills.d.mts +249 -0
  539. package/resources/beta/skills/skills.d.mts.map +1 -0
  540. package/resources/beta/skills/skills.d.ts +249 -0
  541. package/resources/beta/skills/skills.d.ts.map +1 -0
  542. package/resources/beta/skills/skills.js +98 -0
  543. package/resources/beta/skills/skills.js.map +1 -0
  544. package/resources/beta/skills/skills.mjs +93 -0
  545. package/resources/beta/skills/skills.mjs.map +1 -0
  546. package/resources/beta/skills/versions.d.mts +257 -0
  547. package/resources/beta/skills/versions.d.mts.map +1 -0
  548. package/resources/beta/skills/versions.d.ts +257 -0
  549. package/resources/beta/skills/versions.d.ts.map +1 -0
  550. package/resources/beta/skills/versions.js +100 -0
  551. package/resources/beta/skills/versions.js.map +1 -0
  552. package/resources/beta/skills/versions.mjs +96 -0
  553. package/resources/beta/skills/versions.mjs.map +1 -0
  554. package/resources/beta/skills.d.mts +2 -0
  555. package/resources/beta/skills.d.mts.map +1 -0
  556. package/resources/beta/skills.d.ts +2 -0
  557. package/resources/beta/skills.d.ts.map +1 -0
  558. package/resources/beta/skills.js +6 -0
  559. package/resources/beta/skills.js.map +1 -0
  560. package/resources/beta/skills.mjs +3 -0
  561. package/resources/beta/skills.mjs.map +1 -0
  562. package/resources/beta.d.mts +2 -0
  563. package/resources/beta.d.mts.map +1 -0
  564. package/resources/beta.d.ts +2 -0
  565. package/resources/beta.d.ts.map +1 -0
  566. package/resources/beta.js +6 -0
  567. package/resources/beta.js.map +1 -0
  568. package/resources/beta.mjs +3 -0
  569. package/resources/beta.mjs.map +1 -0
  570. package/resources/completions.d.mts +182 -0
  571. package/resources/completions.d.mts.map +1 -0
  572. package/resources/completions.d.ts +182 -0
  573. package/resources/completions.d.ts.map +1 -0
  574. package/resources/completions.js +23 -0
  575. package/resources/completions.js.map +1 -0
  576. package/resources/completions.mjs +19 -0
  577. package/resources/completions.mjs.map +1 -0
  578. package/resources/index.d.mts +6 -0
  579. package/resources/index.d.mts.map +1 -0
  580. package/resources/index.d.ts +6 -0
  581. package/resources/index.d.ts.map +1 -0
  582. package/resources/index.js +15 -0
  583. package/resources/index.js.map +1 -0
  584. package/resources/index.mjs +7 -0
  585. package/resources/index.mjs.map +1 -0
  586. package/resources/messages/batches.d.mts +304 -0
  587. package/resources/messages/batches.d.mts.map +1 -0
  588. package/resources/messages/batches.d.ts +304 -0
  589. package/resources/messages/batches.d.ts.map +1 -0
  590. package/resources/messages/batches.js +153 -0
  591. package/resources/messages/batches.js.map +1 -0
  592. package/resources/messages/batches.mjs +149 -0
  593. package/resources/messages/batches.mjs.map +1 -0
  594. package/resources/messages/index.d.mts +3 -0
  595. package/resources/messages/index.d.mts.map +1 -0
  596. package/resources/messages/index.d.ts +3 -0
  597. package/resources/messages/index.d.ts.map +1 -0
  598. package/resources/messages/index.js +9 -0
  599. package/resources/messages/index.js.map +1 -0
  600. package/resources/messages/index.mjs +4 -0
  601. package/resources/messages/index.mjs.map +1 -0
  602. package/resources/messages/messages.d.mts +2285 -0
  603. package/resources/messages/messages.d.mts.map +1 -0
  604. package/resources/messages/messages.d.ts +2285 -0
  605. package/resources/messages/messages.d.ts.map +1 -0
  606. package/resources/messages/messages.js +128 -0
  607. package/resources/messages/messages.js.map +1 -0
  608. package/resources/messages/messages.mjs +123 -0
  609. package/resources/messages/messages.mjs.map +1 -0
  610. package/resources/messages.d.mts +2 -0
  611. package/resources/messages.d.mts.map +1 -0
  612. package/resources/messages.d.ts +2 -0
  613. package/resources/messages.d.ts.map +1 -0
  614. package/resources/messages.js +6 -0
  615. package/resources/messages.js.map +1 -0
  616. package/resources/messages.mjs +3 -0
  617. package/resources/messages.mjs.map +1 -0
  618. package/resources/models.d.mts +193 -0
  619. package/resources/models.d.mts.map +1 -0
  620. package/resources/models.d.ts +193 -0
  621. package/resources/models.d.ts.map +1 -0
  622. package/resources/models.js +45 -0
  623. package/resources/models.js.map +1 -0
  624. package/resources/models.mjs +41 -0
  625. package/resources/models.mjs.map +1 -0
  626. package/resources/shared.d.mts +44 -0
  627. package/resources/shared.d.mts.map +1 -0
  628. package/resources/shared.d.ts +44 -0
  629. package/resources/shared.d.ts.map +1 -0
  630. package/resources/shared.js +4 -0
  631. package/resources/shared.js.map +1 -0
  632. package/resources/shared.mjs +3 -0
  633. package/resources/shared.mjs.map +1 -0
  634. package/resources/top-level.d.mts +2 -0
  635. package/resources/top-level.d.mts.map +1 -0
  636. package/resources/top-level.d.ts +2 -0
  637. package/resources/top-level.d.ts.map +1 -0
  638. package/resources/top-level.js +4 -0
  639. package/resources/top-level.js.map +1 -0
  640. package/resources/top-level.mjs +3 -0
  641. package/resources/top-level.mjs.map +1 -0
  642. package/resources.d.mts +2 -0
  643. package/resources.d.mts.map +1 -0
  644. package/resources.d.ts +2 -0
  645. package/resources.d.ts.map +1 -0
  646. package/resources.js +5 -0
  647. package/resources.js.map +1 -0
  648. package/resources.mjs +2 -0
  649. package/resources.mjs.map +1 -0
  650. package/src/_vendor/partial-json-parser/README.md +3 -0
  651. package/src/_vendor/partial-json-parser/parser.ts +264 -0
  652. package/src/ainative.ts +85 -0
  653. package/src/api-promise.ts +2 -0
  654. package/src/client.ts +1326 -0
  655. package/src/core/README.md +3 -0
  656. package/src/core/api-promise.ts +101 -0
  657. package/src/core/error.ts +145 -0
  658. package/src/core/pagination.ts +331 -0
  659. package/src/core/resource.ts +11 -0
  660. package/src/core/streaming.ts +348 -0
  661. package/src/core/uploads.ts +2 -0
  662. package/src/error.ts +2 -0
  663. package/src/helpers/beta/json-schema.ts +75 -0
  664. package/src/helpers/beta/mcp.ts +624 -0
  665. package/src/helpers/beta/memory.ts +28 -0
  666. package/src/helpers/beta/zod.ts +72 -0
  667. package/src/helpers/index.ts +2 -0
  668. package/src/helpers/json-schema.ts +48 -0
  669. package/src/helpers/zod.ts +58 -0
  670. package/src/index.ts +40 -0
  671. package/src/internal/README.md +3 -0
  672. package/src/internal/builtin-types.ts +93 -0
  673. package/src/internal/constants.ts +15 -0
  674. package/src/internal/decoders/jsonl.ts +48 -0
  675. package/src/internal/decoders/line.ts +135 -0
  676. package/src/internal/detect-platform.ts +196 -0
  677. package/src/internal/errors.ts +33 -0
  678. package/src/internal/headers.ts +99 -0
  679. package/src/internal/parse.ts +90 -0
  680. package/src/internal/request-options.ts +93 -0
  681. package/src/internal/shim-types.ts +26 -0
  682. package/src/internal/shims.ts +107 -0
  683. package/src/internal/stream-utils.ts +32 -0
  684. package/src/internal/to-file.ts +159 -0
  685. package/src/internal/types.ts +95 -0
  686. package/src/internal/uploads.ts +204 -0
  687. package/src/internal/utils/base64.ts +40 -0
  688. package/src/internal/utils/bytes.ts +32 -0
  689. package/src/internal/utils/env.ts +18 -0
  690. package/src/internal/utils/log.ts +127 -0
  691. package/src/internal/utils/path.ts +88 -0
  692. package/src/internal/utils/query.ts +23 -0
  693. package/src/internal/utils/sleep.ts +3 -0
  694. package/src/internal/utils/uuid.ts +17 -0
  695. package/src/internal/utils/values.ts +112 -0
  696. package/src/internal/utils.ts +9 -0
  697. package/src/lib/.keep +4 -0
  698. package/src/lib/BetaMessageStream.ts +764 -0
  699. package/src/lib/MessageStream.ts +743 -0
  700. package/src/lib/beta-parser.ts +148 -0
  701. package/src/lib/parser.ts +125 -0
  702. package/src/lib/stainless-helper-header.ts +80 -0
  703. package/src/lib/tools/BetaRunnableTool.ts +40 -0
  704. package/src/lib/tools/BetaToolRunner.ts +494 -0
  705. package/src/lib/tools/CompactionControl.ts +57 -0
  706. package/src/lib/tools/ToolError.ts +47 -0
  707. package/src/lib/tools/ToolRunner.ts +381 -0
  708. package/src/lib/transform-json-schema.ts +124 -0
  709. package/src/pagination.ts +2 -0
  710. package/src/resource.ts +2 -0
  711. package/src/resources/beta/beta.ts +603 -0
  712. package/src/resources/beta/files.ts +261 -0
  713. package/src/resources/beta/index.ts +259 -0
  714. package/src/resources/beta/messages/batches.ts +827 -0
  715. package/src/resources/beta/messages/index.ts +229 -0
  716. package/src/resources/beta/messages/messages.ts +4372 -0
  717. package/src/resources/beta/messages.ts +3 -0
  718. package/src/resources/beta/models.ts +284 -0
  719. package/src/resources/beta/skills/index.ts +26 -0
  720. package/src/resources/beta/skills/skills.ts +384 -0
  721. package/src/resources/beta/skills/versions.ts +374 -0
  722. package/src/resources/beta/skills.ts +3 -0
  723. package/src/resources/beta.ts +3 -0
  724. package/src/resources/completions.ts +230 -0
  725. package/src/resources/index.ts +206 -0
  726. package/src/resources/messages/batches.ts +396 -0
  727. package/src/resources/messages/index.ts +189 -0
  728. package/src/resources/messages/messages.ts +3361 -0
  729. package/src/resources/messages.ts +3 -0
  730. package/src/resources/models.ts +269 -0
  731. package/src/resources/shared.ts +85 -0
  732. package/src/resources/top-level.ts +3 -0
  733. package/src/resources.ts +1 -0
  734. package/src/streaming.ts +2 -0
  735. package/src/tools/memory/node.ts +392 -0
  736. package/src/tsconfig.json +11 -0
  737. package/src/uploads.ts +2 -0
  738. package/src/version.ts +1 -0
  739. package/streaming.d.mts +2 -0
  740. package/streaming.d.mts.map +1 -0
  741. package/streaming.d.ts +2 -0
  742. package/streaming.d.ts.map +1 -0
  743. package/streaming.js +6 -0
  744. package/streaming.js.map +1 -0
  745. package/streaming.mjs +2 -0
  746. package/streaming.mjs.map +1 -0
  747. package/tools/memory/node.d.mts +18 -0
  748. package/tools/memory/node.d.mts.map +1 -0
  749. package/tools/memory/node.d.ts +18 -0
  750. package/tools/memory/node.d.ts.map +1 -0
  751. package/tools/memory/node.js +324 -0
  752. package/tools/memory/node.js.map +1 -0
  753. package/tools/memory/node.mjs +318 -0
  754. package/tools/memory/node.mjs.map +1 -0
  755. package/uploads.d.mts +2 -0
  756. package/uploads.d.mts.map +1 -0
  757. package/uploads.d.ts +2 -0
  758. package/uploads.d.ts.map +1 -0
  759. package/uploads.js +6 -0
  760. package/uploads.js.map +1 -0
  761. package/uploads.mjs +2 -0
  762. package/uploads.mjs.map +1 -0
  763. package/version.d.mts +2 -0
  764. package/version.d.mts.map +1 -0
  765. package/version.d.ts +2 -0
  766. package/version.d.ts.map +1 -0
  767. package/version.js +5 -0
  768. package/version.js.map +1 -0
  769. package/version.mjs +2 -0
  770. package/version.mjs.map +1 -0
@@ -0,0 +1,624 @@
1
+ /**
2
+ * Helper functions for integrating MCP (Model Context Protocol) SDK types
3
+ * with the Anthropic SDK.
4
+ *
5
+ * These helpers reduce boilerplate when converting between MCP types and
6
+ * Anthropic API types. The interfaces defined here use TypeScript's structural
7
+ * typing to match MCP SDK types without requiring a direct dependency.
8
+ */
9
+
10
+ import { BetaRunnableTool } from '../../lib/tools/BetaRunnableTool';
11
+ import { ToolError } from '../../lib/tools/ToolError';
12
+ import {
13
+ BetaTool,
14
+ BetaToolResultContentBlockParam,
15
+ BetaMessageParam,
16
+ BetaTextBlockParam,
17
+ BetaImageBlockParam,
18
+ BetaRequestDocumentBlock,
19
+ BetaPlainTextSource,
20
+ } from '../../resources/beta';
21
+ import {
22
+ SDK_HELPER_SYMBOL,
23
+ collectStainlessHelpers,
24
+ stainlessHelperHeader,
25
+ } from '../../lib/stainless-helper-header';
26
+ import { fromBase64 } from '../../internal/utils/base64';
27
+
28
+ export { SDK_HELPER_SYMBOL, collectStainlessHelpers, stainlessHelperHeader };
29
+
30
+ // -----------------------------------------------------------------------------
31
+ // Minimal MCP interfaces (duck-typed to match MCP SDK without dependency)
32
+ // -----------------------------------------------------------------------------
33
+
34
+ /**
35
+ * Represents an MCP tool definition.
36
+ * Matches the shape returned by `mcpClient.listTools()`.
37
+ */
38
+ export interface MCPToolLike {
39
+ name: string;
40
+ description?: string | undefined;
41
+ inputSchema: {
42
+ type: 'object';
43
+ properties?: Record<string, unknown> | null | undefined;
44
+ required?: string[] | readonly string[] | null | undefined;
45
+ [key: string]: unknown;
46
+ };
47
+ }
48
+
49
+ /**
50
+ * Represents the result of calling an MCP tool.
51
+ * Matches the shape returned by `mcpClient.callTool()`.
52
+ */
53
+ export interface MCPCallToolResultLike {
54
+ content: MCPToolResultContentLike[];
55
+ structuredContent?: object | undefined;
56
+ isError?: boolean | undefined;
57
+ }
58
+
59
+ export type MCPToolResultContentLike =
60
+ | MCPTextContentLike
61
+ | MCPImageContentLike
62
+ | MCPAudioContentLike
63
+ | MCPEmbeddedResourceLike
64
+ | MCPResourceLinkLike;
65
+
66
+ export interface MCPTextContentLike {
67
+ type: 'text';
68
+ text: string;
69
+ }
70
+
71
+ export interface MCPImageContentLike {
72
+ type: 'image';
73
+ data: string;
74
+ mimeType: string;
75
+ }
76
+
77
+ export interface MCPAudioContentLike {
78
+ type: 'audio';
79
+ data: string;
80
+ mimeType: string;
81
+ }
82
+
83
+ export interface MCPEmbeddedResourceLike {
84
+ type: 'resource';
85
+ resource: MCPResourceContentsLike;
86
+ }
87
+
88
+ export interface MCPResourceLinkLike {
89
+ type: 'resource_link';
90
+ uri: string;
91
+ name: string;
92
+ mimeType?: string | undefined;
93
+ }
94
+
95
+ /**
96
+ * Text resource contents from MCP.
97
+ */
98
+ export interface MCPTextResourceContentsLike {
99
+ uri: string;
100
+ mimeType?: string | undefined;
101
+ text: string;
102
+ }
103
+
104
+ /**
105
+ * Blob (binary) resource contents from MCP.
106
+ */
107
+ export interface MCPBlobResourceContentsLike {
108
+ uri: string;
109
+ mimeType?: string | undefined;
110
+ blob: string;
111
+ }
112
+
113
+ /**
114
+ * Resource contents - either text or blob.
115
+ * Matches `TextResourceContents | BlobResourceContents` from MCP SDK.
116
+ */
117
+ export type MCPResourceContentsLike = MCPTextResourceContentsLike | MCPBlobResourceContentsLike;
118
+
119
+ /**
120
+ * Interface for an MCP client that can call tools.
121
+ * Matches the relevant methods of `Client` from `@modelcontextprotocol/sdk`.
122
+ */
123
+ export interface MCPClientLike {
124
+ callTool(params: { name: string; arguments?: Record<string, unknown> }): Promise<MCPCallToolResultLike>;
125
+ }
126
+
127
+ /**
128
+ * Represents a message from an MCP prompt.
129
+ * Matches the shape returned by `mcpClient.getPrompt()`.
130
+ */
131
+ export interface MCPPromptMessageLike {
132
+ role: 'user' | 'assistant';
133
+ content: MCPPromptContentLike;
134
+ }
135
+
136
+ export type MCPPromptContentLike =
137
+ | MCPTextContentLike
138
+ | MCPImageContentLike
139
+ | MCPAudioContentLike
140
+ | MCPEmbeddedResourceLike
141
+ | MCPResourceLinkLike;
142
+
143
+ /**
144
+ * Represents the contents of an MCP resource.
145
+ * Matches the shape returned by `mcpClient.readResource()`.
146
+ */
147
+ export interface MCPReadResourceResultLike {
148
+ contents: MCPResourceContentsLike[];
149
+ }
150
+
151
+ // -----------------------------------------------------------------------------
152
+ // Supported MIME types
153
+ // -----------------------------------------------------------------------------
154
+
155
+ const SUPPORTED_IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'] as const;
156
+ type SupportedImageType = (typeof SUPPORTED_IMAGE_TYPES)[number];
157
+
158
+ function isSupportedImageType(mimeType: string): mimeType is SupportedImageType {
159
+ return SUPPORTED_IMAGE_TYPES.includes(mimeType as SupportedImageType);
160
+ }
161
+
162
+ function isSupportedResourceMimeType(mimeType: string | undefined): boolean {
163
+ return (
164
+ !mimeType ||
165
+ mimeType.startsWith('text/') ||
166
+ mimeType === 'application/pdf' ||
167
+ isSupportedImageType(mimeType)
168
+ );
169
+ }
170
+
171
+ // -----------------------------------------------------------------------------
172
+ // Error classes
173
+ // -----------------------------------------------------------------------------
174
+
175
+ /**
176
+ * Error thrown when an MCP value cannot be converted to a format supported by the Claude API.
177
+ */
178
+ export class UnsupportedMCPValueError extends Error {
179
+ constructor(message: string) {
180
+ super(message);
181
+ this.name = 'UnsupportedMCPValueError';
182
+ }
183
+ }
184
+
185
+ // -----------------------------------------------------------------------------
186
+ // Helper functions
187
+ // -----------------------------------------------------------------------------
188
+
189
+ /**
190
+ * Converts an MCP tool to a BetaRunnableTool for use with the Anthropic SDK's
191
+ * `toolRunner()` method.
192
+ *
193
+ * @param tool The MCP tool definition from `mcpClient.listTools()`
194
+ * @param mcpClient The MCP client instance used to call the tool
195
+ * @param extraProps Additional Claude API properties to include in the tool definition
196
+ * @returns A runnable tool for use with `anthropic.beta.messages.toolRunner()`
197
+ * @throws {UnsupportedMCPValueError} When the tool returns unsupported content types
198
+ * @throws {UnsupportedMCPValueError} When the tool returns unsupported resource links
199
+ * @throws {UnsupportedMCPValueError} When the tool returns resources with unsupported MIME types
200
+ *
201
+ * @example
202
+ * ```ts
203
+ * import { Client } from "@modelcontextprotocol/sdk/client/index.js";
204
+ * import Anthropic from "@anthropic-ai/sdk";
205
+ * import { mcpTool } from "@anthropic-ai/sdk/helpers/beta/mcp";
206
+ *
207
+ * const mcpClient = new Client({ name: "example", version: "1.0.0" });
208
+ * const anthropic = new Anthropic();
209
+ *
210
+ * const tools = await mcpClient.listTools();
211
+ * const runner = await anthropic.beta.messages.toolRunner({
212
+ * model: "claude-sonnet-4-20250514",
213
+ * max_tokens: 1024,
214
+ * tools: tools.tools.map(tool => mcpTool(tool, mcpClient)),
215
+ * messages: [{ role: "user", content: "Use the available tools" }],
216
+ * });
217
+ * ```
218
+ */
219
+ export function mcpTool(
220
+ tool: MCPToolLike,
221
+ mcpClient: MCPClientLike,
222
+ extraProps?: Partial<Omit<BetaTool, 'name' | 'description' | 'input_schema'>>,
223
+ ): BetaRunnableTool<Record<string, unknown>> {
224
+ // Transform inputSchema to match BetaTool.InputSchema (convert undefined to null)
225
+ const inputSchema: BetaTool['input_schema'] = {
226
+ ...tool.inputSchema,
227
+ type: 'object',
228
+ properties: tool.inputSchema.properties ?? null,
229
+ required: tool.inputSchema.required ?? null,
230
+ };
231
+
232
+ const betaTool: BetaTool = {
233
+ name: tool.name,
234
+ input_schema: inputSchema,
235
+ ...(tool.description !== undefined ? { description: tool.description } : {}),
236
+ ...extraProps,
237
+ };
238
+
239
+ const runnableTool = {
240
+ ...betaTool,
241
+ run: async (input: Record<string, unknown>): Promise<string | Array<BetaToolResultContentBlockParam>> => {
242
+ const result = await mcpClient.callTool({
243
+ name: tool.name,
244
+ arguments: input,
245
+ });
246
+
247
+ if (result.isError) {
248
+ const content = result.content.map((item) => mcpContent(item));
249
+ throw new ToolError(content);
250
+ }
251
+
252
+ // If content is empty but structuredContent is present, JSON encode it
253
+ // Spec: "For backwards compatibility, a tool that returns structured content SHOULD also return the serialized JSON in a TextContent block."
254
+ // meaning it's not required and cannot be assumed.
255
+ if (
256
+ result.content.length === 0 &&
257
+ // Spec: "Structured content is returned as a JSON object in the structuredContent field of a result."
258
+ typeof result.structuredContent === 'object' &&
259
+ result.structuredContent !== null
260
+ ) {
261
+ return JSON.stringify(result.structuredContent);
262
+ }
263
+
264
+ return result.content.map((item) => mcpContent(item));
265
+ },
266
+ parse: (content: unknown): Record<string, unknown> => content as Record<string, unknown>,
267
+ [SDK_HELPER_SYMBOL]: 'mcpTool',
268
+ };
269
+
270
+ return runnableTool;
271
+ }
272
+
273
+ /**
274
+ * Converts an array of MCP tools to BetaRunnableTools.
275
+ *
276
+ * @param tools Array of MCP tool definitions from `mcpClient.listTools()`
277
+ * @param mcpClient The MCP client instance used to call the tools
278
+ * @param extraProps Additional Claude API properties to include in each tool definition
279
+ * @returns An array of runnable tools for use with `anthropic.beta.messages.toolRunner()`
280
+ *
281
+ * @example
282
+ * ```ts
283
+ * const { tools } = await mcpClient.listTools();
284
+ * const runner = await anthropic.beta.messages.toolRunner({
285
+ * model: "claude-sonnet-4-20250514",
286
+ * max_tokens: 1024,
287
+ * tools: mcpTools(tools, mcpClient),
288
+ * messages: [{ role: "user", content: "Use the available tools" }],
289
+ * });
290
+ * ```
291
+ */
292
+ export function mcpTools(
293
+ tools: MCPToolLike[],
294
+ mcpClient: MCPClientLike,
295
+ extraProps?: Partial<Omit<BetaTool, 'name' | 'description' | 'input_schema'>>,
296
+ ): BetaRunnableTool<Record<string, unknown>>[] {
297
+ return tools.map((tool) => mcpTool(tool, mcpClient, extraProps));
298
+ }
299
+
300
+ /**
301
+ * Converts an MCP prompt message to an Anthropic BetaMessageParam.
302
+ *
303
+ * @param mcpMessage The MCP prompt message from `mcpClient.getPrompt()`
304
+ * @param extraProps Additional Claude API properties to include in content blocks (e.g., `cache_control`)
305
+ * @returns A message parameter for use with `anthropic.beta.messages.create()`
306
+ * @throws {UnsupportedMCPValueError} When the message contains unsupported content types
307
+ * @throws {UnsupportedMCPValueError} When the message contains unsupported resource links
308
+ * @throws {UnsupportedMCPValueError} When the message contains resources with unsupported MIME types
309
+ *
310
+ * @example
311
+ * ```ts
312
+ * import { Client } from "@modelcontextprotocol/sdk/client/index.js";
313
+ * import Anthropic from "@anthropic-ai/sdk";
314
+ * import { mcpMessage } from "@anthropic-ai/sdk/helpers/beta/mcp";
315
+ *
316
+ * const mcpClient = new Client({ name: "example", version: "1.0.0" });
317
+ * const anthropic = new Anthropic();
318
+ *
319
+ * const prompt = await mcpClient.getPrompt({
320
+ * name: "example-prompt",
321
+ * arguments: { arg1: "value" },
322
+ * });
323
+ *
324
+ * await anthropic.beta.messages.create({
325
+ * model: "claude-sonnet-4-20250514",
326
+ * max_tokens: 1024,
327
+ * messages: prompt.messages.map(msg => mcpMessage(msg)),
328
+ * });
329
+ * ```
330
+ */
331
+ export function mcpMessage(
332
+ mcpMessage: MCPPromptMessageLike,
333
+ extraProps?: Partial<
334
+ Omit<BetaTextBlockParam, 'type' | 'text' | 'source'> &
335
+ Omit<BetaImageBlockParam, 'type' | 'source'> &
336
+ Omit<BetaRequestDocumentBlock, 'type' | 'source'>
337
+ >,
338
+ ): BetaMessageParam {
339
+ const message = {
340
+ role: mcpMessage.role,
341
+ content: [mcpContent(mcpMessage.content, extraProps)],
342
+ [SDK_HELPER_SYMBOL]: 'mcpMessage',
343
+ };
344
+ return message;
345
+ }
346
+
347
+ /**
348
+ * Converts an array of MCP prompt messages to Anthropic BetaMessageParams.
349
+ *
350
+ * @param messages Array of MCP prompt messages from `mcpClient.getPrompt()`
351
+ * @param extraProps Additional Claude API properties to include in content blocks (e.g., `cache_control`)
352
+ * @returns An array of message parameters for use with `anthropic.beta.messages.create()`
353
+ * @throws {UnsupportedMCPValueError} When any message contains unsupported content types
354
+ * @throws {UnsupportedMCPValueError} When any message contains unsupported resource links
355
+ * @throws {UnsupportedMCPValueError} When any message contains resources with unsupported MIME types
356
+ *
357
+ * @example
358
+ * ```ts
359
+ * const { messages } = await mcpClient.getPrompt({ name: "example-prompt" });
360
+ * await anthropic.beta.messages.create({
361
+ * model: "claude-sonnet-4-20250514",
362
+ * max_tokens: 1024,
363
+ * messages: mcpMessages(messages),
364
+ * });
365
+ * ```
366
+ */
367
+ export function mcpMessages(
368
+ messages: MCPPromptMessageLike[],
369
+ extraProps?: Partial<
370
+ Omit<BetaTextBlockParam, 'type' | 'text' | 'source'> &
371
+ Omit<BetaImageBlockParam, 'type' | 'source'> &
372
+ Omit<BetaRequestDocumentBlock, 'type' | 'source'>
373
+ >,
374
+ ): BetaMessageParam[] {
375
+ return messages.map((message) => mcpMessage(message, extraProps));
376
+ }
377
+
378
+ /**
379
+ * Converts a single MCP prompt content item to an Anthropic content block.
380
+ *
381
+ * @param content The MCP content item (text, image, or embedded resource)
382
+ * @param extraProps Additional Claude API properties to include in the content block (e.g., `cache_control`)
383
+ * @returns A Claude content block for use in a message's content array
384
+ * @throws {UnsupportedMCPValueError} When the content type is not supported (e.g., 'audio')
385
+ * @throws {UnsupportedMCPValueError} When resource links use non-http/https protocols
386
+ * @throws {UnsupportedMCPValueError} When resources have unsupported MIME types
387
+ *
388
+ * @example
389
+ * ```ts
390
+ * const { messages } = await mcpClient.getPrompt({ name: "my-prompt" });
391
+ * // If you need to mix MCP content with other content:
392
+ * await anthropic.beta.messages.create({
393
+ * model: "claude-sonnet-4-20250514",
394
+ * max_tokens: 1024,
395
+ * messages: [{
396
+ * role: "user",
397
+ * content: [
398
+ * mcpContent(messages[0].content),
399
+ * { type: "text", text: "Additional context" },
400
+ * ],
401
+ * }],
402
+ * });
403
+ * ```
404
+ */
405
+ export function mcpContent(
406
+ content: MCPPromptContentLike,
407
+ extraProps?: Partial<
408
+ Omit<BetaTextBlockParam, 'type' | 'text' | 'source'> &
409
+ Omit<BetaImageBlockParam, 'type' | 'source'> &
410
+ Omit<BetaRequestDocumentBlock, 'type' | 'source'>
411
+ >,
412
+ ): BetaTextBlockParam | BetaImageBlockParam | BetaRequestDocumentBlock {
413
+ switch (content.type) {
414
+ case 'text': {
415
+ const textBlock = {
416
+ type: 'text' as const,
417
+ text: content.text,
418
+ ...extraProps,
419
+ [SDK_HELPER_SYMBOL]: 'mcpContent',
420
+ };
421
+ return textBlock;
422
+ }
423
+
424
+ case 'image': {
425
+ if (!isSupportedImageType(content.mimeType)) {
426
+ throw new UnsupportedMCPValueError(`Unsupported image MIME type: ${content.mimeType}`);
427
+ }
428
+ const imageBlock = {
429
+ type: 'image' as const,
430
+ source: {
431
+ type: 'base64' as const,
432
+ data: content.data,
433
+ media_type: content.mimeType,
434
+ },
435
+ ...extraProps,
436
+ [SDK_HELPER_SYMBOL]: 'mcpContent',
437
+ };
438
+ return imageBlock;
439
+ }
440
+
441
+ case 'resource':
442
+ return mcpResourceContentToContentBlock(content.resource, extraProps, 'mcpContent');
443
+
444
+ case 'resource_link':
445
+ case 'audio':
446
+ throw new UnsupportedMCPValueError(`Unsupported MCP content type: ${content.type}`);
447
+
448
+ default:
449
+ // This should never happen as we handle all MCPPromptContentLike types
450
+ content satisfies never;
451
+ throw new UnsupportedMCPValueError(
452
+ `Unsupported MCP content type: ${(content as { type: string }).type}`,
453
+ );
454
+ }
455
+ }
456
+
457
+ /**
458
+ * Converts a single MCP resource contents item to an Anthropic content block.
459
+ */
460
+ function mcpResourceContentToContentBlock(
461
+ resourceContent: MCPResourceContentsLike,
462
+ extraProps?: Partial<Omit<BetaRequestDocumentBlock, 'type' | 'source'>>,
463
+ helperName: string = 'mcpResourceToContent',
464
+ ): BetaTextBlockParam | BetaImageBlockParam | BetaRequestDocumentBlock {
465
+ const mimeType = resourceContent.mimeType;
466
+
467
+ // Handle images (requires blob - base64-encoded binary data)
468
+ if (mimeType && isSupportedImageType(mimeType)) {
469
+ if (!('blob' in resourceContent)) {
470
+ throw new UnsupportedMCPValueError(
471
+ `Image resource must have blob data, not text. URI: ${resourceContent.uri}`,
472
+ );
473
+ }
474
+ const imageBlock = {
475
+ type: 'image' as const,
476
+ source: {
477
+ type: 'base64' as const,
478
+ data: resourceContent.blob,
479
+ media_type: mimeType,
480
+ },
481
+ ...extraProps,
482
+ [SDK_HELPER_SYMBOL]: helperName,
483
+ };
484
+ return imageBlock;
485
+ }
486
+
487
+ // Handle PDFs (requires blob - base64-encoded binary data)
488
+ if (mimeType === 'application/pdf') {
489
+ if (!('blob' in resourceContent)) {
490
+ throw new UnsupportedMCPValueError(
491
+ `PDF resource must have blob data, not text. URI: ${resourceContent.uri}`,
492
+ );
493
+ }
494
+ const pdfBlock = {
495
+ type: 'document' as const,
496
+ source: {
497
+ type: 'base64' as const,
498
+ data: resourceContent.blob,
499
+ media_type: 'application/pdf' as const,
500
+ },
501
+ ...extraProps,
502
+ [SDK_HELPER_SYMBOL]: helperName,
503
+ };
504
+ return pdfBlock;
505
+ }
506
+
507
+ // Handle text types (text/*, or no MIME type defaults to text)
508
+ if (!mimeType || mimeType.startsWith('text/')) {
509
+ const textDocBlock = {
510
+ type: 'document' as const,
511
+ source: textSourceFromResource(resourceContent),
512
+ ...extraProps,
513
+ [SDK_HELPER_SYMBOL]: helperName,
514
+ };
515
+ return textDocBlock;
516
+ }
517
+
518
+ throw new UnsupportedMCPValueError(
519
+ `Unsupported MIME type "${mimeType}" for resource: ${resourceContent.uri}`,
520
+ );
521
+ }
522
+
523
+ /**
524
+ * Converts MCP resource contents to an Anthropic content block.
525
+ *
526
+ * This helper is useful when you have resource contents from `mcpClient.readResource()`
527
+ * and want to include them in a message or as a document source. It automatically
528
+ * finds the first resource with a supported MIME type.
529
+ *
530
+ * @param result The result from `mcpClient.readResource()`
531
+ * @param extraProps Additional Claude API properties to include in the content block (e.g., `cache_control`)
532
+ * @returns A Claude content block
533
+ * @throws {UnsupportedMCPValueError} When contents array is empty or none have a supported MIME type
534
+ *
535
+ * @example
536
+ * ```ts
537
+ * import { Client } from "@modelcontextprotocol/sdk/client/index.js";
538
+ * import Anthropic from "@anthropic-ai/sdk";
539
+ * import { mcpResourceToContent } from "@anthropic-ai/sdk/helpers/beta/mcp";
540
+ *
541
+ * const mcpClient = new Client({ name: "example", version: "1.0.0" });
542
+ * const anthropic = new Anthropic();
543
+ *
544
+ * const resource = await mcpClient.readResource({ uri: "file:///example.txt" });
545
+ * await anthropic.beta.messages.create({
546
+ * model: "claude-sonnet-4-20250514",
547
+ * max_tokens: 1024,
548
+ * messages: [{
549
+ * role: "user",
550
+ * content: [mcpResourceToContent(resource)],
551
+ * }],
552
+ * });
553
+ * ```
554
+ */
555
+ export function mcpResourceToContent(
556
+ result: MCPReadResourceResultLike,
557
+ extraProps?: Partial<Omit<BetaRequestDocumentBlock, 'type' | 'source'>>,
558
+ ): BetaTextBlockParam | BetaImageBlockParam | BetaRequestDocumentBlock {
559
+ if (result.contents.length === 0) {
560
+ throw new UnsupportedMCPValueError('Resource contents array must contain at least one item');
561
+ }
562
+ const supported = result.contents.find((c) => isSupportedResourceMimeType(c.mimeType));
563
+ if (!supported) {
564
+ const mimeTypes = result.contents.map((c) => c.mimeType).filter((m) => m !== undefined);
565
+ throw new UnsupportedMCPValueError(
566
+ `No supported MIME type found in resource contents. Available: ${mimeTypes.join(', ')}`,
567
+ );
568
+ }
569
+ return mcpResourceContentToContentBlock(supported, extraProps);
570
+ }
571
+
572
+ /**
573
+ * Gets the raw bytes from an MCP resource.
574
+ */
575
+ function bytesFromResource(resource: MCPResourceContentsLike): Uint8Array {
576
+ if ('blob' in resource) {
577
+ return fromBase64(resource.blob);
578
+ }
579
+ return new TextEncoder().encode(resource.text);
580
+ }
581
+
582
+ /**
583
+ * Creates a text document source from an MCP resource, decoding base64 blob to UTF-8 if needed.
584
+ */
585
+ function textSourceFromResource(resource: MCPResourceContentsLike): BetaPlainTextSource {
586
+ const data = 'text' in resource ? resource.text : new TextDecoder().decode(fromBase64(resource.blob));
587
+ return { type: 'text', data, media_type: 'text/plain' };
588
+ }
589
+
590
+ /**
591
+ * Converts an MCP resource to a File object suitable for uploading via `anthropic.beta.files.upload()`.
592
+ *
593
+ * @param result The result from `mcpClient.readResource()`
594
+ * @returns A File object for use with `anthropic.beta.files.upload()`
595
+ * @throws {UnsupportedMCPValueError} When contents array is empty
596
+ *
597
+ * @example
598
+ * ```ts
599
+ * import { Client } from "@modelcontextprotocol/sdk/client/index.js";
600
+ * import Anthropic from "@anthropic-ai/sdk";
601
+ * import { mcpResourceToFile } from "@anthropic-ai/sdk/helpers/beta/mcp";
602
+ *
603
+ * const mcpClient = new Client({ name: "example", version: "1.0.0" });
604
+ * const anthropic = new Anthropic();
605
+ *
606
+ * const resource = await mcpClient.readResource({ uri: "file:///document.pdf" });
607
+ *
608
+ * const uploaded = await anthropic.beta.files.upload({
609
+ * file: mcpResourceToFile(resource),
610
+ * });
611
+ * ```
612
+ */
613
+ export function mcpResourceToFile(result: MCPReadResourceResultLike): File {
614
+ if (result.contents.length === 0) {
615
+ throw new UnsupportedMCPValueError('Resource contents array must contain at least one item');
616
+ }
617
+ const resourceContents = result.contents[0]!;
618
+ const name = new URL(resourceContents.uri).pathname.split('/').at(-1) || 'file';
619
+ const type = resourceContents.mimeType;
620
+ const data = bytesFromResource(resourceContents);
621
+ const file = new File([data], name, type ? { type } : undefined);
622
+ (file as any)[SDK_HELPER_SYMBOL] = 'mcpResourceToFile';
623
+ return file;
624
+ }
@@ -0,0 +1,28 @@
1
+ import { BetaRunnableTool, Promisable } from '../../lib/tools/BetaRunnableTool';
2
+ import { BetaMemoryTool20250818Command, BetaToolResultContentBlockParam } from '../../resources/beta';
3
+
4
+ type Command = BetaMemoryTool20250818Command['command'];
5
+
6
+ export type MemoryToolHandlers = {
7
+ [K in Command]: (
8
+ command: Extract<BetaMemoryTool20250818Command, { command: K }>,
9
+ ) => Promisable<string | Array<BetaToolResultContentBlockParam>>;
10
+ };
11
+
12
+ export function betaMemoryTool(
13
+ handlers: MemoryToolHandlers,
14
+ ): BetaRunnableTool<BetaMemoryTool20250818Command> {
15
+ return {
16
+ type: 'memory_20250818',
17
+ name: 'memory',
18
+ parse: (content) => content as BetaMemoryTool20250818Command,
19
+ run: (args) => {
20
+ const handler = handlers[args.command];
21
+ if (!handler) {
22
+ throw new Error(`${args.command} not implemented`);
23
+ }
24
+
25
+ return handler.bind(handlers)(args as any);
26
+ },
27
+ };
28
+ }