@anthropic-ai/sdk 0.125.0 → 0.127.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 (417) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/client.d.mts +12 -11
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +12 -11
  5. package/client.d.ts.map +1 -1
  6. package/client.js +865 -845
  7. package/client.js.map +1 -1
  8. package/client.mjs +866 -840
  9. package/client.mjs.map +1 -1
  10. package/core/api-promise.js +71 -68
  11. package/core/api-promise.js.map +1 -1
  12. package/core/api-promise.mjs +71 -64
  13. package/core/api-promise.mjs.map +1 -1
  14. package/core/error.js +5 -2
  15. package/core/error.js.map +1 -1
  16. package/core/error.mjs +5 -2
  17. package/core/error.mjs.map +1 -1
  18. package/core/pagination.js +56 -50
  19. package/core/pagination.js.map +1 -1
  20. package/core/pagination.mjs +56 -41
  21. package/core/pagination.mjs.map +1 -1
  22. package/core/streaming.js +212 -209
  23. package/core/streaming.js.map +1 -1
  24. package/core/streaming.mjs +212 -209
  25. package/core/streaming.mjs.map +1 -1
  26. package/helpers/beta/mcp.js +14 -19
  27. package/helpers/beta/mcp.js.map +1 -1
  28. package/helpers/beta/mcp.mjs +14 -13
  29. package/helpers/beta/mcp.mjs.map +1 -1
  30. package/internal/constants.js +1 -1
  31. package/internal/constants.js.map +1 -1
  32. package/internal/decoders/jsonl.js +27 -24
  33. package/internal/decoders/jsonl.js.map +1 -1
  34. package/internal/decoders/jsonl.mjs +27 -24
  35. package/internal/decoders/jsonl.mjs.map +1 -1
  36. package/internal/decoders/line.js +52 -49
  37. package/internal/decoders/line.js.map +1 -1
  38. package/internal/decoders/line.mjs +52 -43
  39. package/internal/decoders/line.mjs.map +1 -1
  40. package/internal/file-store.js +256 -258
  41. package/internal/file-store.js.map +1 -1
  42. package/internal/file-store.mjs +256 -243
  43. package/internal/file-store.mjs.map +1 -1
  44. package/internal/node.browser.d.mts.map +1 -1
  45. package/internal/node.browser.d.ts.map +1 -1
  46. package/internal/node.browser.js.map +1 -1
  47. package/internal/node.browser.mjs +7 -7
  48. package/internal/node.browser.mjs.map +1 -1
  49. package/internal/parse.d.mts.map +1 -1
  50. package/internal/parse.d.ts.map +1 -1
  51. package/internal/parse.js +2 -2
  52. package/internal/parse.js.map +1 -1
  53. package/internal/parse.mjs +3 -3
  54. package/internal/parse.mjs.map +1 -1
  55. package/internal/shim-types.js +0 -6
  56. package/internal/shim-types.js.map +1 -1
  57. package/internal/shim-types.mjs +0 -6
  58. package/internal/shim-types.mjs.map +1 -1
  59. package/internal/shims.d.mts +3 -3
  60. package/internal/shims.d.mts.map +1 -1
  61. package/internal/shims.d.ts +3 -3
  62. package/internal/shims.d.ts.map +1 -1
  63. package/internal/shims.js +0 -6
  64. package/internal/shims.js.map +1 -1
  65. package/internal/shims.mjs +0 -6
  66. package/internal/shims.mjs.map +1 -1
  67. package/internal/stainless-helper-header.js +6 -6
  68. package/internal/stainless-helper-header.js.map +1 -1
  69. package/internal/utils/async-queue.js +66 -63
  70. package/internal/utils/async-queue.js.map +1 -1
  71. package/internal/utils/async-queue.mjs +66 -56
  72. package/internal/utils/async-queue.mjs.map +1 -1
  73. package/internal/utils/bytes.d.mts +1 -1
  74. package/internal/utils/bytes.d.mts.map +1 -1
  75. package/internal/utils/bytes.d.ts +1 -1
  76. package/internal/utils/bytes.d.ts.map +1 -1
  77. package/internal/utils/log.d.mts +7 -12
  78. package/internal/utils/log.d.mts.map +1 -1
  79. package/internal/utils/log.d.ts +7 -12
  80. package/internal/utils/log.d.ts.map +1 -1
  81. package/internal/utils/log.js +12 -0
  82. package/internal/utils/log.js.map +1 -1
  83. package/internal/utils/log.mjs +11 -0
  84. package/internal/utils/log.mjs.map +1 -1
  85. package/lib/BetaMessageStream.d.mts.map +1 -1
  86. package/lib/BetaMessageStream.d.ts.map +1 -1
  87. package/lib/BetaMessageStream.js +595 -590
  88. package/lib/BetaMessageStream.js.map +1 -1
  89. package/lib/BetaMessageStream.mjs +595 -590
  90. package/lib/BetaMessageStream.mjs.map +1 -1
  91. package/lib/MessageStream.js +544 -541
  92. package/lib/MessageStream.js.map +1 -1
  93. package/lib/MessageStream.mjs +544 -541
  94. package/lib/MessageStream.mjs.map +1 -1
  95. package/lib/beta-parser.d.mts +1 -3
  96. package/lib/beta-parser.d.mts.map +1 -1
  97. package/lib/beta-parser.d.ts +1 -3
  98. package/lib/beta-parser.d.ts.map +1 -1
  99. package/lib/beta-parser.js.map +1 -1
  100. package/lib/beta-parser.mjs.map +1 -1
  101. package/lib/environments/poller.js +180 -174
  102. package/lib/environments/poller.js.map +1 -1
  103. package/lib/environments/poller.mjs +180 -153
  104. package/lib/environments/poller.mjs.map +1 -1
  105. package/lib/environments/worker.js +375 -369
  106. package/lib/environments/worker.js.map +1 -1
  107. package/lib/environments/worker.mjs +374 -329
  108. package/lib/environments/worker.mjs.map +1 -1
  109. package/lib/internal/stub.d.mts +2 -0
  110. package/lib/internal/stub.d.mts.map +1 -0
  111. package/lib/internal/stub.d.ts +2 -0
  112. package/lib/internal/stub.d.ts.map +1 -0
  113. package/lib/internal/stub.js +6 -0
  114. package/lib/internal/stub.js.map +1 -0
  115. package/lib/internal/stub.mjs +3 -0
  116. package/lib/internal/stub.mjs.map +1 -0
  117. package/lib/internal/types.d.mts +5 -0
  118. package/lib/internal/types.d.mts.map +1 -0
  119. package/lib/internal/types.d.ts +5 -0
  120. package/lib/internal/types.d.ts.map +1 -0
  121. package/lib/internal/types.js +3 -0
  122. package/lib/internal/types.js.map +1 -0
  123. package/lib/internal/types.mjs +2 -0
  124. package/lib/internal/types.mjs.map +1 -0
  125. package/lib/middleware.js +6 -1
  126. package/lib/middleware.js.map +1 -1
  127. package/lib/middleware.mjs +6 -1
  128. package/lib/middleware.mjs.map +1 -1
  129. package/lib/parser.d.mts +1 -3
  130. package/lib/parser.d.mts.map +1 -1
  131. package/lib/parser.d.ts +1 -3
  132. package/lib/parser.d.ts.map +1 -1
  133. package/lib/parser.js.map +1 -1
  134. package/lib/parser.mjs.map +1 -1
  135. package/lib/tools/BetaToolRunner.d.mts +21 -6
  136. package/lib/tools/BetaToolRunner.d.mts.map +1 -1
  137. package/lib/tools/BetaToolRunner.d.ts +21 -6
  138. package/lib/tools/BetaToolRunner.d.ts.map +1 -1
  139. package/lib/tools/BetaToolRunner.js +415 -310
  140. package/lib/tools/BetaToolRunner.js.map +1 -1
  141. package/lib/tools/BetaToolRunner.mjs +414 -303
  142. package/lib/tools/BetaToolRunner.mjs.map +1 -1
  143. package/lib/tools/SessionToolRunner.js +241 -235
  144. package/lib/tools/SessionToolRunner.js.map +1 -1
  145. package/lib/tools/SessionToolRunner.mjs +241 -192
  146. package/lib/tools/SessionToolRunner.mjs.map +1 -1
  147. package/lib/tools/ToolError.js +39 -36
  148. package/lib/tools/ToolError.js.map +1 -1
  149. package/lib/tools/ToolError.mjs +39 -13
  150. package/lib/tools/ToolError.mjs.map +1 -1
  151. package/lib/transform-json-schema.js +7 -5
  152. package/lib/transform-json-schema.js.map +1 -1
  153. package/lib/transform-json-schema.mjs +7 -5
  154. package/lib/transform-json-schema.mjs.map +1 -1
  155. package/package.json +4 -3
  156. package/resources/beta/agents/agents.js +135 -132
  157. package/resources/beta/agents/agents.js.map +1 -1
  158. package/resources/beta/agents/agents.mjs +135 -132
  159. package/resources/beta/agents/agents.mjs.map +1 -1
  160. package/resources/beta/beta.d.mts +5 -5
  161. package/resources/beta/beta.d.mts.map +1 -1
  162. package/resources/beta/beta.d.ts +5 -5
  163. package/resources/beta/beta.d.ts.map +1 -1
  164. package/resources/beta/beta.js +39 -36
  165. package/resources/beta/beta.js.map +1 -1
  166. package/resources/beta/beta.mjs +39 -36
  167. package/resources/beta/beta.mjs.map +1 -1
  168. package/resources/beta/deployment-runs.d.mts +4 -0
  169. package/resources/beta/deployment-runs.d.mts.map +1 -1
  170. package/resources/beta/deployment-runs.d.ts +4 -0
  171. package/resources/beta/deployment-runs.d.ts.map +1 -1
  172. package/resources/beta/deployments.d.mts +5 -0
  173. package/resources/beta/deployments.d.mts.map +1 -1
  174. package/resources/beta/deployments.d.ts +5 -0
  175. package/resources/beta/deployments.d.ts.map +1 -1
  176. package/resources/beta/dreams.d.mts +19 -28
  177. package/resources/beta/dreams.d.mts.map +1 -1
  178. package/resources/beta/dreams.d.ts +19 -28
  179. package/resources/beta/dreams.d.ts.map +1 -1
  180. package/resources/beta/environments/environments.js +157 -154
  181. package/resources/beta/environments/environments.js.map +1 -1
  182. package/resources/beta/environments/environments.mjs +157 -154
  183. package/resources/beta/environments/environments.mjs.map +1 -1
  184. package/resources/beta/environments/work.js +255 -252
  185. package/resources/beta/environments/work.js.map +1 -1
  186. package/resources/beta/environments/work.mjs +255 -252
  187. package/resources/beta/environments/work.mjs.map +1 -1
  188. package/resources/beta/index.d.mts +2 -2
  189. package/resources/beta/index.d.mts.map +1 -1
  190. package/resources/beta/index.d.ts +2 -2
  191. package/resources/beta/index.d.ts.map +1 -1
  192. package/resources/beta/index.js.map +1 -1
  193. package/resources/beta/index.mjs.map +1 -1
  194. package/resources/beta/memory-stores/memories.d.mts +6 -0
  195. package/resources/beta/memory-stores/memories.d.mts.map +1 -1
  196. package/resources/beta/memory-stores/memories.d.ts +6 -0
  197. package/resources/beta/memory-stores/memories.d.ts.map +1 -1
  198. package/resources/beta/memory-stores/memory-stores.js +150 -147
  199. package/resources/beta/memory-stores/memory-stores.js.map +1 -1
  200. package/resources/beta/memory-stores/memory-stores.mjs +150 -147
  201. package/resources/beta/memory-stores/memory-stores.mjs.map +1 -1
  202. package/resources/beta/memory-stores/memory-versions.d.mts +7 -0
  203. package/resources/beta/memory-stores/memory-versions.d.mts.map +1 -1
  204. package/resources/beta/memory-stores/memory-versions.d.ts +7 -0
  205. package/resources/beta/memory-stores/memory-versions.d.ts.map +1 -1
  206. package/resources/beta/messages/batches.d.mts +12 -1
  207. package/resources/beta/messages/batches.d.mts.map +1 -1
  208. package/resources/beta/messages/batches.d.ts +12 -1
  209. package/resources/beta/messages/batches.d.ts.map +1 -1
  210. package/resources/beta/messages/index.d.mts +1 -1
  211. package/resources/beta/messages/index.d.mts.map +1 -1
  212. package/resources/beta/messages/index.d.ts +1 -1
  213. package/resources/beta/messages/index.d.ts.map +1 -1
  214. package/resources/beta/messages/index.js.map +1 -1
  215. package/resources/beta/messages/index.mjs.map +1 -1
  216. package/resources/beta/messages/messages.d.mts +239 -101
  217. package/resources/beta/messages/messages.d.mts.map +1 -1
  218. package/resources/beta/messages/messages.d.ts +239 -101
  219. package/resources/beta/messages/messages.d.ts.map +1 -1
  220. package/resources/beta/messages/messages.js +113 -110
  221. package/resources/beta/messages/messages.js.map +1 -1
  222. package/resources/beta/messages/messages.mjs +113 -110
  223. package/resources/beta/messages/messages.mjs.map +1 -1
  224. package/resources/beta/models.d.mts +22 -1
  225. package/resources/beta/models.d.mts.map +1 -1
  226. package/resources/beta/models.d.ts +22 -1
  227. package/resources/beta/models.d.ts.map +1 -1
  228. package/resources/beta/organization/federation/federation.js +11 -8
  229. package/resources/beta/organization/federation/federation.js.map +1 -1
  230. package/resources/beta/organization/federation/federation.mjs +11 -8
  231. package/resources/beta/organization/federation/federation.mjs.map +1 -1
  232. package/resources/beta/organization/federation/rules/rules.js +187 -184
  233. package/resources/beta/organization/federation/rules/rules.js.map +1 -1
  234. package/resources/beta/organization/federation/rules/rules.mjs +187 -184
  235. package/resources/beta/organization/federation/rules/rules.mjs.map +1 -1
  236. package/resources/beta/organization/index.d.mts +1 -1
  237. package/resources/beta/organization/index.d.mts.map +1 -1
  238. package/resources/beta/organization/index.d.ts +1 -1
  239. package/resources/beta/organization/index.d.ts.map +1 -1
  240. package/resources/beta/organization/index.js.map +1 -1
  241. package/resources/beta/organization/index.mjs.map +1 -1
  242. package/resources/beta/organization/organization.d.mts +2 -2
  243. package/resources/beta/organization/organization.d.mts.map +1 -1
  244. package/resources/beta/organization/organization.d.ts +2 -2
  245. package/resources/beta/organization/organization.d.ts.map +1 -1
  246. package/resources/beta/organization/organization.js +38 -35
  247. package/resources/beta/organization/organization.js.map +1 -1
  248. package/resources/beta/organization/organization.mjs +38 -35
  249. package/resources/beta/organization/organization.mjs.map +1 -1
  250. package/resources/beta/organization/rate-limits.d.mts +87 -5
  251. package/resources/beta/organization/rate-limits.d.mts.map +1 -1
  252. package/resources/beta/organization/rate-limits.d.ts +87 -5
  253. package/resources/beta/organization/rate-limits.d.ts.map +1 -1
  254. package/resources/beta/organization/service-accounts/service-accounts.js +163 -160
  255. package/resources/beta/organization/service-accounts/service-accounts.js.map +1 -1
  256. package/resources/beta/organization/service-accounts/service-accounts.mjs +163 -160
  257. package/resources/beta/organization/service-accounts/service-accounts.mjs.map +1 -1
  258. package/resources/beta/organization/workspaces/rate-limits.d.mts +9 -4
  259. package/resources/beta/organization/workspaces/rate-limits.d.mts.map +1 -1
  260. package/resources/beta/organization/workspaces/rate-limits.d.ts +9 -4
  261. package/resources/beta/organization/workspaces/rate-limits.d.ts.map +1 -1
  262. package/resources/beta/organization/workspaces/rate-limits.js.map +1 -1
  263. package/resources/beta/organization/workspaces/rate-limits.mjs.map +1 -1
  264. package/resources/beta/organization/workspaces/workspaces.d.mts +3 -3
  265. package/resources/beta/organization/workspaces/workspaces.d.mts.map +1 -1
  266. package/resources/beta/organization/workspaces/workspaces.d.ts +3 -3
  267. package/resources/beta/organization/workspaces/workspaces.d.ts.map +1 -1
  268. package/resources/beta/organization/workspaces/workspaces.js +97 -94
  269. package/resources/beta/organization/workspaces/workspaces.js.map +1 -1
  270. package/resources/beta/organization/workspaces/workspaces.mjs +97 -94
  271. package/resources/beta/organization/workspaces/workspaces.mjs.map +1 -1
  272. package/resources/beta/sessions/events.d.mts +12 -21
  273. package/resources/beta/sessions/events.d.mts.map +1 -1
  274. package/resources/beta/sessions/events.d.ts +12 -21
  275. package/resources/beta/sessions/events.d.ts.map +1 -1
  276. package/resources/beta/sessions/events.js +118 -115
  277. package/resources/beta/sessions/events.js.map +1 -1
  278. package/resources/beta/sessions/events.mjs +118 -115
  279. package/resources/beta/sessions/events.mjs.map +1 -1
  280. package/resources/beta/sessions/resources.d.mts +0 -3
  281. package/resources/beta/sessions/resources.d.mts.map +1 -1
  282. package/resources/beta/sessions/resources.d.ts +0 -3
  283. package/resources/beta/sessions/resources.d.ts.map +1 -1
  284. package/resources/beta/sessions/sessions.d.mts +8 -2
  285. package/resources/beta/sessions/sessions.d.mts.map +1 -1
  286. package/resources/beta/sessions/sessions.d.ts +8 -2
  287. package/resources/beta/sessions/sessions.d.ts.map +1 -1
  288. package/resources/beta/sessions/sessions.js +161 -158
  289. package/resources/beta/sessions/sessions.js.map +1 -1
  290. package/resources/beta/sessions/sessions.mjs +161 -158
  291. package/resources/beta/sessions/sessions.mjs.map +1 -1
  292. package/resources/beta/sessions/threads/threads.js +86 -83
  293. package/resources/beta/sessions/threads/threads.js.map +1 -1
  294. package/resources/beta/sessions/threads/threads.mjs +86 -83
  295. package/resources/beta/sessions/threads/threads.mjs.map +1 -1
  296. package/resources/beta/skills/skills.js +104 -101
  297. package/resources/beta/skills/skills.js.map +1 -1
  298. package/resources/beta/skills/skills.mjs +104 -101
  299. package/resources/beta/skills/skills.mjs.map +1 -1
  300. package/resources/beta/tunnels/certificates.d.mts +2 -2
  301. package/resources/beta/tunnels/certificates.d.ts +2 -2
  302. package/resources/beta/tunnels/tunnels.js +188 -185
  303. package/resources/beta/tunnels/tunnels.js.map +1 -1
  304. package/resources/beta/tunnels/tunnels.mjs +188 -185
  305. package/resources/beta/tunnels/tunnels.mjs.map +1 -1
  306. package/resources/beta/user-profiles.d.mts +45 -0
  307. package/resources/beta/user-profiles.d.mts.map +1 -1
  308. package/resources/beta/user-profiles.d.ts +45 -0
  309. package/resources/beta/user-profiles.d.ts.map +1 -1
  310. package/resources/beta/user-profiles.js +25 -10
  311. package/resources/beta/user-profiles.js.map +1 -1
  312. package/resources/beta/user-profiles.mjs +25 -10
  313. package/resources/beta/user-profiles.mjs.map +1 -1
  314. package/resources/beta/vaults/credentials.d.mts +19 -19
  315. package/resources/beta/vaults/credentials.d.mts.map +1 -1
  316. package/resources/beta/vaults/credentials.d.ts +19 -19
  317. package/resources/beta/vaults/credentials.d.ts.map +1 -1
  318. package/resources/beta/vaults/vaults.js +156 -153
  319. package/resources/beta/vaults/vaults.js.map +1 -1
  320. package/resources/beta/vaults/vaults.mjs +156 -153
  321. package/resources/beta/vaults/vaults.mjs.map +1 -1
  322. package/resources/completions.d.mts +1 -1
  323. package/resources/completions.d.ts +1 -1
  324. package/resources/index.d.mts +1 -1
  325. package/resources/index.d.mts.map +1 -1
  326. package/resources/index.d.ts +1 -1
  327. package/resources/index.d.ts.map +1 -1
  328. package/resources/index.js.map +1 -1
  329. package/resources/index.mjs.map +1 -1
  330. package/resources/messages/index.d.mts +1 -1
  331. package/resources/messages/index.d.mts.map +1 -1
  332. package/resources/messages/index.d.ts +1 -1
  333. package/resources/messages/index.d.ts.map +1 -1
  334. package/resources/messages/index.js.map +1 -1
  335. package/resources/messages/index.mjs.map +1 -1
  336. package/resources/messages/messages.d.mts +100 -63
  337. package/resources/messages/messages.d.mts.map +1 -1
  338. package/resources/messages/messages.d.ts +100 -63
  339. package/resources/messages/messages.d.ts.map +1 -1
  340. package/resources/messages/messages.js +115 -112
  341. package/resources/messages/messages.js.map +1 -1
  342. package/resources/messages/messages.mjs +115 -112
  343. package/resources/messages/messages.mjs.map +1 -1
  344. package/resources/skills/skills.js +88 -85
  345. package/resources/skills/skills.js.map +1 -1
  346. package/resources/skills/skills.mjs +88 -85
  347. package/resources/skills/skills.mjs.map +1 -1
  348. package/resources/top-level.js +0 -1
  349. package/resources/top-level.js.map +1 -1
  350. package/resources/top-level.mjs +0 -1
  351. package/resources/top-level.mjs.map +1 -1
  352. package/src/client.ts +95 -72
  353. package/src/internal/node.browser.ts +7 -7
  354. package/src/internal/parse.ts +8 -11
  355. package/src/internal/shims.ts +4 -3
  356. package/src/internal/utils/bytes.ts +1 -1
  357. package/src/internal/utils/log.ts +16 -2
  358. package/src/lib/BetaMessageStream.ts +7 -5
  359. package/src/lib/beta-parser.ts +1 -3
  360. package/src/lib/internal/stub.ts +2 -0
  361. package/src/lib/internal/types.ts +2 -0
  362. package/src/lib/middleware.ts +6 -1
  363. package/src/lib/parser.ts +1 -3
  364. package/src/lib/tools/BetaToolRunner.ts +157 -24
  365. package/src/lib/transform-json-schema.ts +8 -6
  366. package/src/resources/beta/beta.ts +24 -1
  367. package/src/resources/beta/deployment-runs.ts +4 -0
  368. package/src/resources/beta/deployments.ts +5 -0
  369. package/src/resources/beta/dreams.ts +19 -28
  370. package/src/resources/beta/index.ts +11 -0
  371. package/src/resources/beta/memory-stores/memories.ts +6 -0
  372. package/src/resources/beta/memory-stores/memory-versions.ts +7 -0
  373. package/src/resources/beta/messages/batches.ts +13 -1
  374. package/src/resources/beta/messages/index.ts +10 -0
  375. package/src/resources/beta/messages/messages.ts +289 -100
  376. package/src/resources/beta/models.ts +25 -0
  377. package/src/resources/beta/organization/index.ts +6 -0
  378. package/src/resources/beta/organization/organization.ts +12 -0
  379. package/src/resources/beta/organization/rate-limits.ts +112 -4
  380. package/src/resources/beta/organization/workspaces/rate-limits.ts +16 -4
  381. package/src/resources/beta/organization/workspaces/workspaces.ts +3 -3
  382. package/src/resources/beta/sessions/events.ts +12 -21
  383. package/src/resources/beta/sessions/resources.ts +0 -3
  384. package/src/resources/beta/sessions/sessions.ts +8 -2
  385. package/src/resources/beta/tunnels/certificates.ts +2 -2
  386. package/src/resources/beta/user-profiles.ts +75 -10
  387. package/src/resources/beta/vaults/credentials.ts +19 -19
  388. package/src/resources/completions.ts +1 -1
  389. package/src/resources/index.ts +6 -0
  390. package/src/resources/messages/index.ts +6 -0
  391. package/src/resources/messages/messages.ts +128 -62
  392. package/src/tsconfig.json +13 -3
  393. package/src/version.ts +1 -1
  394. package/tools/agent-toolset/fs-util.js +0 -6
  395. package/tools/agent-toolset/fs-util.js.map +1 -1
  396. package/tools/agent-toolset/fs-util.mjs +0 -6
  397. package/tools/agent-toolset/fs-util.mjs.map +1 -1
  398. package/tools/agent-toolset/memories.js +4 -4
  399. package/tools/agent-toolset/memories.js.map +1 -1
  400. package/tools/agent-toolset/memories.mjs +2 -2
  401. package/tools/agent-toolset/memories.mjs.map +1 -1
  402. package/tools/agent-toolset/node.browser.js +12 -12
  403. package/tools/agent-toolset/node.browser.js.map +1 -1
  404. package/tools/agent-toolset/node.js +142 -139
  405. package/tools/agent-toolset/node.js.map +1 -1
  406. package/tools/agent-toolset/node.mjs +132 -125
  407. package/tools/agent-toolset/node.mjs.map +1 -1
  408. package/tools/agent-toolset/skills.js +5 -5
  409. package/tools/agent-toolset/skills.js.map +1 -1
  410. package/tools/agent-toolset/sync-interval.js +3 -3
  411. package/tools/agent-toolset/sync-interval.js.map +1 -1
  412. package/tools/memory/node.browser.js +2 -2
  413. package/tools/memory/node.browser.js.map +1 -1
  414. package/version.d.mts +1 -1
  415. package/version.d.ts +1 -1
  416. package/version.js +1 -1
  417. package/version.mjs +1 -1
@@ -13,593 +13,596 @@ const message_stream_utils_1 = require("../internal/message-stream-utils.js");
13
13
  function tracksToolInput(content) {
14
14
  return content.type === 'tool_use' || content.type === 'server_tool_use';
15
15
  }
16
- class MessageStream {
17
- constructor(params, opts) {
18
- _MessageStream_instances.add(this);
19
- this.messages = [];
20
- this.receivedMessages = [];
21
- _MessageStream_currentMessageSnapshot.set(this, void 0);
22
- _MessageStream_params.set(this, null);
23
- this.controller = new AbortController();
24
- _MessageStream_connectedPromise.set(this, void 0);
25
- _MessageStream_resolveConnectedPromise.set(this, () => { });
26
- _MessageStream_rejectConnectedPromise.set(this, () => { });
27
- _MessageStream_endPromise.set(this, void 0);
28
- _MessageStream_resolveEndPromise.set(this, () => { });
29
- _MessageStream_rejectEndPromise.set(this, () => { });
30
- _MessageStream_listeners.set(this, {});
31
- _MessageStream_ended.set(this, false);
32
- _MessageStream_errored.set(this, false);
33
- _MessageStream_aborted.set(this, false);
34
- _MessageStream_catchingPromiseCreated.set(this, false);
35
- _MessageStream_response.set(this, void 0);
36
- _MessageStream_request_id.set(this, void 0);
37
- _MessageStream_workspace_id.set(this, void 0);
38
- _MessageStream_logger.set(this, void 0);
39
- _MessageStream_handleError.set(this, (error) => {
40
- tslib_1.__classPrivateFieldSet(this, _MessageStream_errored, true, "f");
41
- if ((0, errors_1.isAbortError)(error)) {
42
- error = new error_1.APIUserAbortError();
43
- }
44
- if (error instanceof error_1.APIUserAbortError) {
45
- tslib_1.__classPrivateFieldSet(this, _MessageStream_aborted, true, "f");
46
- return this._emit('abort', error);
47
- }
48
- if (error instanceof error_1.AnthropicError) {
49
- return this._emit('error', error);
50
- }
51
- if (error instanceof Error) {
52
- const anthropicError = new error_1.AnthropicError(error.message);
53
- // @ts-ignore
54
- anthropicError.cause = error;
55
- return this._emit('error', anthropicError);
56
- }
57
- return this._emit('error', new error_1.AnthropicError(String(error)));
58
- });
59
- tslib_1.__classPrivateFieldSet(this, _MessageStream_connectedPromise, new Promise((resolve, reject) => {
60
- tslib_1.__classPrivateFieldSet(this, _MessageStream_resolveConnectedPromise, resolve, "f");
61
- tslib_1.__classPrivateFieldSet(this, _MessageStream_rejectConnectedPromise, reject, "f");
62
- }), "f");
63
- tslib_1.__classPrivateFieldSet(this, _MessageStream_endPromise, new Promise((resolve, reject) => {
64
- tslib_1.__classPrivateFieldSet(this, _MessageStream_resolveEndPromise, resolve, "f");
65
- tslib_1.__classPrivateFieldSet(this, _MessageStream_rejectEndPromise, reject, "f");
66
- }), "f");
67
- // Don't let these promises cause unhandled rejection errors.
68
- // we will manually cause an unhandled rejection error later
69
- // if the user hasn't registered any error listener or called
70
- // any promise-returning method.
71
- tslib_1.__classPrivateFieldGet(this, _MessageStream_connectedPromise, "f").catch(() => { });
72
- tslib_1.__classPrivateFieldGet(this, _MessageStream_endPromise, "f").catch(() => { });
73
- tslib_1.__classPrivateFieldSet(this, _MessageStream_params, params, "f");
74
- tslib_1.__classPrivateFieldSet(this, _MessageStream_logger, opts?.logger ?? console, "f");
75
- }
76
- get response() {
77
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_response, "f");
78
- }
79
- get request_id() {
80
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_request_id, "f");
81
- }
82
- get workspace_id() {
83
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_workspace_id, "f");
84
- }
85
- /**
86
- * Returns the `MessageStream` data, the raw `Response` instance and the ID of the request,
87
- * returned vie the `request-id` header which is useful for debugging requests and resporting
88
- * issues to Anthropic.
89
- *
90
- * This is the same as the `APIPromise.withResponse()` method.
91
- *
92
- * This method will raise an error if you created the stream using `MessageStream.fromReadableStream`
93
- * as no `Response` is available.
94
- */
95
- async withResponse() {
96
- tslib_1.__classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, "f");
97
- const response = await tslib_1.__classPrivateFieldGet(this, _MessageStream_connectedPromise, "f");
98
- if (!response) {
99
- throw new Error('Could not resolve a `Response` object');
16
+ var MessageStream = /* @__PURE__ */ (() => {
17
+ class MessageStream {
18
+ constructor(params, opts) {
19
+ _MessageStream_instances.add(this);
20
+ this.messages = [];
21
+ this.receivedMessages = [];
22
+ _MessageStream_currentMessageSnapshot.set(this, void 0);
23
+ _MessageStream_params.set(this, null);
24
+ this.controller = new AbortController();
25
+ _MessageStream_connectedPromise.set(this, void 0);
26
+ _MessageStream_resolveConnectedPromise.set(this, () => { });
27
+ _MessageStream_rejectConnectedPromise.set(this, () => { });
28
+ _MessageStream_endPromise.set(this, void 0);
29
+ _MessageStream_resolveEndPromise.set(this, () => { });
30
+ _MessageStream_rejectEndPromise.set(this, () => { });
31
+ _MessageStream_listeners.set(this, {});
32
+ _MessageStream_ended.set(this, false);
33
+ _MessageStream_errored.set(this, false);
34
+ _MessageStream_aborted.set(this, false);
35
+ _MessageStream_catchingPromiseCreated.set(this, false);
36
+ _MessageStream_response.set(this, void 0);
37
+ _MessageStream_request_id.set(this, void 0);
38
+ _MessageStream_workspace_id.set(this, void 0);
39
+ _MessageStream_logger.set(this, void 0);
40
+ _MessageStream_handleError.set(this, (error) => {
41
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_errored, true, "f");
42
+ if ((0, errors_1.isAbortError)(error)) {
43
+ error = new error_1.APIUserAbortError();
44
+ }
45
+ if (error instanceof error_1.APIUserAbortError) {
46
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_aborted, true, "f");
47
+ return this._emit('abort', error);
48
+ }
49
+ if (error instanceof error_1.AnthropicError) {
50
+ return this._emit('error', error);
51
+ }
52
+ if (error instanceof Error) {
53
+ const anthropicError = new error_1.AnthropicError(error.message);
54
+ // @ts-ignore
55
+ anthropicError.cause = error;
56
+ return this._emit('error', anthropicError);
57
+ }
58
+ return this._emit('error', new error_1.AnthropicError(String(error)));
59
+ });
60
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_connectedPromise, new Promise((resolve, reject) => {
61
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_resolveConnectedPromise, resolve, "f");
62
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_rejectConnectedPromise, reject, "f");
63
+ }), "f");
64
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_endPromise, new Promise((resolve, reject) => {
65
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_resolveEndPromise, resolve, "f");
66
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_rejectEndPromise, reject, "f");
67
+ }), "f");
68
+ // Don't let these promises cause unhandled rejection errors.
69
+ // we will manually cause an unhandled rejection error later
70
+ // if the user hasn't registered any error listener or called
71
+ // any promise-returning method.
72
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_connectedPromise, "f").catch(() => { });
73
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_endPromise, "f").catch(() => { });
74
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_params, params, "f");
75
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_logger, opts?.logger ?? console, "f");
100
76
  }
101
- return {
102
- data: this,
103
- response,
104
- request_id: response.headers.get('request-id'),
105
- workspace_id: response.headers.get('anthropic-workspace-id'),
106
- };
107
- }
108
- /**
109
- * Intended for use on the frontend, consuming a stream produced with
110
- * `.toReadableStream()` on the backend.
111
- *
112
- * Note that messages sent to the model do not appear in `.on('message')`
113
- * in this context.
114
- */
115
- static fromReadableStream(stream) {
116
- const runner = new MessageStream(null);
117
- runner._run(() => runner._fromReadableStream(stream));
118
- return runner;
119
- }
120
- static createMessage(messages, params, options, { logger } = {}) {
121
- const runner = new MessageStream(params, { logger });
122
- for (const message of params.messages) {
123
- runner._addMessageParam(message);
77
+ get response() {
78
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_response, "f");
124
79
  }
125
- tslib_1.__classPrivateFieldSet(runner, _MessageStream_params, { ...params, stream: true }, "f");
126
- runner._run(() => runner._createMessage(messages, { ...params, stream: true }, { ...options, headers: { ...options?.headers, [stainless_helper_header_1.STAINLESS_HELPER_METHOD_HEADER]: 'stream' } }));
127
- return runner;
128
- }
129
- _run(executor) {
130
- executor().then(() => {
131
- this._emitFinal();
132
- this._emit('end');
133
- }, tslib_1.__classPrivateFieldGet(this, _MessageStream_handleError, "f"));
134
- }
135
- _addMessageParam(message) {
136
- this.messages.push(message);
137
- }
138
- _addMessage(message, emit = true) {
139
- this.receivedMessages.push(message);
140
- if (emit) {
141
- this._emit('message', message);
80
+ get request_id() {
81
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_request_id, "f");
142
82
  }
143
- }
144
- async _createMessage(messages, params, options) {
145
- const signal = options?.signal;
146
- let abortHandler;
147
- if (signal) {
148
- if (signal.aborted)
149
- this.controller.abort();
150
- abortHandler = this.controller.abort.bind(this.controller);
151
- signal.addEventListener('abort', abortHandler);
83
+ get workspace_id() {
84
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_workspace_id, "f");
152
85
  }
153
- try {
154
- tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_beginRequest).call(this);
155
- const { response, data: stream } = await messages
156
- .create({ ...params, stream: true }, { ...options, signal: this.controller.signal })
157
- .withResponse();
158
- this._connected(response);
159
- for await (const event of stream) {
160
- tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_addStreamEvent).call(this, event);
161
- }
162
- if (stream.controller.signal?.aborted) {
163
- throw new error_1.APIUserAbortError();
86
+ /**
87
+ * Returns the `MessageStream` data, the raw `Response` instance and the ID of the request,
88
+ * returned vie the `request-id` header which is useful for debugging requests and resporting
89
+ * issues to Anthropic.
90
+ *
91
+ * This is the same as the `APIPromise.withResponse()` method.
92
+ *
93
+ * This method will raise an error if you created the stream using `MessageStream.fromReadableStream`
94
+ * as no `Response` is available.
95
+ */
96
+ async withResponse() {
97
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, "f");
98
+ const response = await tslib_1.__classPrivateFieldGet(this, _MessageStream_connectedPromise, "f");
99
+ if (!response) {
100
+ throw new Error('Could not resolve a `Response` object');
164
101
  }
165
- tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_endRequest).call(this);
102
+ return {
103
+ data: this,
104
+ response,
105
+ request_id: response.headers.get('request-id'),
106
+ workspace_id: response.headers.get('anthropic-workspace-id'),
107
+ };
108
+ }
109
+ /**
110
+ * Intended for use on the frontend, consuming a stream produced with
111
+ * `.toReadableStream()` on the backend.
112
+ *
113
+ * Note that messages sent to the model do not appear in `.on('message')`
114
+ * in this context.
115
+ */
116
+ static fromReadableStream(stream) {
117
+ const runner = new MessageStream(null);
118
+ runner._run(() => runner._fromReadableStream(stream));
119
+ return runner;
166
120
  }
167
- finally {
168
- if (signal && abortHandler) {
169
- signal.removeEventListener('abort', abortHandler);
121
+ static createMessage(messages, params, options, { logger } = {}) {
122
+ const runner = new MessageStream(params, { logger });
123
+ for (const message of params.messages) {
124
+ runner._addMessageParam(message);
170
125
  }
126
+ tslib_1.__classPrivateFieldSet(runner, _MessageStream_params, { ...params, stream: true }, "f");
127
+ runner._run(() => runner._createMessage(messages, { ...params, stream: true }, { ...options, headers: { ...options?.headers, [stainless_helper_header_1.STAINLESS_HELPER_METHOD_HEADER]: 'stream' } }));
128
+ return runner;
171
129
  }
172
- }
173
- _connected(response) {
174
- if (this.ended)
175
- return;
176
- tslib_1.__classPrivateFieldSet(this, _MessageStream_response, response, "f");
177
- tslib_1.__classPrivateFieldSet(this, _MessageStream_request_id, response?.headers.get('request-id'), "f");
178
- tslib_1.__classPrivateFieldSet(this, _MessageStream_workspace_id, response?.headers.get('anthropic-workspace-id'), "f");
179
- tslib_1.__classPrivateFieldGet(this, _MessageStream_resolveConnectedPromise, "f").call(this, response);
180
- this._emit('connect');
181
- }
182
- get ended() {
183
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_ended, "f");
184
- }
185
- get errored() {
186
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_errored, "f");
187
- }
188
- get aborted() {
189
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_aborted, "f");
190
- }
191
- abort() {
192
- this.controller.abort();
193
- }
194
- /**
195
- * Adds the listener function to the end of the listeners array for the event.
196
- * No checks are made to see if the listener has already been added. Multiple calls passing
197
- * the same combination of event and listener will result in the listener being added, and
198
- * called, multiple times.
199
- * @returns this MessageStream, so that calls can be chained
200
- */
201
- on(event, listener) {
202
- const listeners = tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] || (tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] = []);
203
- listeners.push({ listener });
204
- return this;
205
- }
206
- /**
207
- * Removes the specified listener from the listener array for the event.
208
- * off() will remove, at most, one instance of a listener from the listener array. If any single
209
- * listener has been added multiple times to the listener array for the specified event, then
210
- * off() must be called multiple times to remove each instance.
211
- * @returns this MessageStream, so that calls can be chained
212
- */
213
- off(event, listener) {
214
- const listeners = tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event];
215
- if (!listeners)
216
- return this;
217
- const index = listeners.findIndex((l) => l.listener === listener);
218
- if (index >= 0)
219
- listeners.splice(index, 1);
220
- return this;
221
- }
222
- /**
223
- * Adds a one-time listener function for the event. The next time the event is triggered,
224
- * this listener is removed and then invoked.
225
- * @returns this MessageStream, so that calls can be chained
226
- */
227
- once(event, listener) {
228
- const listeners = tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] || (tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] = []);
229
- listeners.push({ listener, once: true });
230
- return this;
231
- }
232
- /**
233
- * This is similar to `.once()`, but returns a Promise that resolves the next time
234
- * the event is triggered, instead of calling a listener callback.
235
- * @returns a Promise that resolves the next time given event is triggered,
236
- * or rejects if an error is emitted. (If you request the 'error' event,
237
- * returns a promise that resolves with the error).
238
- *
239
- * Example:
240
- *
241
- * const message = await stream.emitted('message') // rejects if the stream errors
242
- */
243
- emitted(event) {
244
- return new Promise((resolve, reject) => {
245
- tslib_1.__classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, "f");
246
- if (event !== 'error')
247
- this.once('error', reject);
248
- this.once(event, resolve);
249
- });
250
- }
251
- async done() {
252
- tslib_1.__classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, "f");
253
- await tslib_1.__classPrivateFieldGet(this, _MessageStream_endPromise, "f");
254
- }
255
- get currentMessage() {
256
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, "f");
257
- }
258
- /**
259
- * @returns a promise that resolves with the the final assistant Message response,
260
- * or rejects if an error occurred or the stream ended prematurely without producing a Message.
261
- * If structured outputs were used, this will be a ParsedMessage with a `parsed_output` field.
262
- */
263
- async finalMessage() {
264
- await this.done();
265
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_getFinalMessage).call(this);
266
- }
267
- /**
268
- * @returns a promise that resolves with the the final assistant Message's text response, concatenated
269
- * together if there are more than one text blocks.
270
- * Rejects if an error occurred or the stream ended prematurely without producing a Message.
271
- */
272
- async finalText() {
273
- await this.done();
274
- return tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_getFinalText).call(this);
275
- }
276
- _emit(event, ...args) {
277
- // make sure we don't emit any MessageStreamEvents after end
278
- if (tslib_1.__classPrivateFieldGet(this, _MessageStream_ended, "f"))
279
- return;
280
- if (event === 'end') {
281
- tslib_1.__classPrivateFieldSet(this, _MessageStream_ended, true, "f");
282
- tslib_1.__classPrivateFieldGet(this, _MessageStream_resolveEndPromise, "f").call(this);
130
+ _run(executor) {
131
+ executor().then(() => {
132
+ this._emitFinal();
133
+ this._emit('end');
134
+ }, tslib_1.__classPrivateFieldGet(this, _MessageStream_handleError, "f"));
283
135
  }
284
- const listeners = tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event];
285
- if (listeners) {
286
- tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] = listeners.filter((l) => !l.once);
287
- listeners.forEach(({ listener }) => listener(...args));
136
+ _addMessageParam(message) {
137
+ this.messages.push(message);
288
138
  }
289
- if (event === 'abort') {
290
- const error = args[0];
291
- if (!tslib_1.__classPrivateFieldGet(this, _MessageStream_catchingPromiseCreated, "f") && !listeners?.length) {
292
- Promise.reject(error);
139
+ _addMessage(message, emit = true) {
140
+ this.receivedMessages.push(message);
141
+ if (emit) {
142
+ this._emit('message', message);
293
143
  }
294
- tslib_1.__classPrivateFieldGet(this, _MessageStream_rejectConnectedPromise, "f").call(this, error);
295
- tslib_1.__classPrivateFieldGet(this, _MessageStream_rejectEndPromise, "f").call(this, error);
296
- this._emit('end');
297
- return;
298
144
  }
299
- if (event === 'error') {
300
- // NOTE: _emit('error', error) should only be called from #handleError().
301
- const error = args[0];
302
- if (!tslib_1.__classPrivateFieldGet(this, _MessageStream_catchingPromiseCreated, "f") && !listeners?.length) {
303
- // Trigger an unhandled rejection if the user hasn't registered any error handlers.
304
- // If you are seeing stack traces here, make sure to handle errors via either:
305
- // - runner.on('error', () => ...)
306
- // - await runner.done()
307
- // - await runner.final...()
308
- // - etc.
309
- Promise.reject(error);
145
+ async _createMessage(messages, params, options) {
146
+ const signal = options?.signal;
147
+ let abortHandler;
148
+ if (signal) {
149
+ if (signal.aborted)
150
+ this.controller.abort();
151
+ abortHandler = this.controller.abort.bind(this.controller);
152
+ signal.addEventListener('abort', abortHandler);
153
+ }
154
+ try {
155
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_beginRequest).call(this);
156
+ const { response, data: stream } = await messages
157
+ .create({ ...params, stream: true }, { ...options, signal: this.controller.signal })
158
+ .withResponse();
159
+ this._connected(response);
160
+ for await (const event of stream) {
161
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_addStreamEvent).call(this, event);
162
+ }
163
+ if (stream.controller.signal?.aborted) {
164
+ throw new error_1.APIUserAbortError();
165
+ }
166
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_endRequest).call(this);
167
+ }
168
+ finally {
169
+ if (signal && abortHandler) {
170
+ signal.removeEventListener('abort', abortHandler);
171
+ }
310
172
  }
311
- tslib_1.__classPrivateFieldGet(this, _MessageStream_rejectConnectedPromise, "f").call(this, error);
312
- tslib_1.__classPrivateFieldGet(this, _MessageStream_rejectEndPromise, "f").call(this, error);
313
- this._emit('end');
314
173
  }
315
- }
316
- _emitFinal() {
317
- const finalMessage = this.receivedMessages.at(-1);
318
- if (finalMessage) {
319
- this._emit('finalMessage', tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_getFinalMessage).call(this));
174
+ _connected(response) {
175
+ if (this.ended)
176
+ return;
177
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_response, response, "f");
178
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_request_id, response?.headers.get('request-id'), "f");
179
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_workspace_id, response?.headers.get('anthropic-workspace-id'), "f");
180
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_resolveConnectedPromise, "f").call(this, response);
181
+ this._emit('connect');
320
182
  }
321
- }
322
- async _fromReadableStream(readableStream, options) {
323
- const signal = options?.signal;
324
- let abortHandler;
325
- if (signal) {
326
- if (signal.aborted)
327
- this.controller.abort();
328
- abortHandler = this.controller.abort.bind(this.controller);
329
- signal.addEventListener('abort', abortHandler);
183
+ get ended() {
184
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_ended, "f");
330
185
  }
331
- try {
332
- tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_beginRequest).call(this);
333
- this._connected(null);
334
- const stream = streaming_1.Stream.fromReadableStream(readableStream, this.controller);
335
- for await (const event of stream) {
336
- tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_addStreamEvent).call(this, event);
337
- }
338
- if (stream.controller.signal?.aborted) {
339
- throw new error_1.APIUserAbortError();
340
- }
341
- tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_endRequest).call(this);
186
+ get errored() {
187
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_errored, "f");
342
188
  }
343
- finally {
344
- if (signal && abortHandler) {
345
- signal.removeEventListener('abort', abortHandler);
346
- }
189
+ get aborted() {
190
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_aborted, "f");
347
191
  }
348
- }
349
- [(_MessageStream_currentMessageSnapshot = new WeakMap(), _MessageStream_params = new WeakMap(), _MessageStream_connectedPromise = new WeakMap(), _MessageStream_resolveConnectedPromise = new WeakMap(), _MessageStream_rejectConnectedPromise = new WeakMap(), _MessageStream_endPromise = new WeakMap(), _MessageStream_resolveEndPromise = new WeakMap(), _MessageStream_rejectEndPromise = new WeakMap(), _MessageStream_listeners = new WeakMap(), _MessageStream_ended = new WeakMap(), _MessageStream_errored = new WeakMap(), _MessageStream_aborted = new WeakMap(), _MessageStream_catchingPromiseCreated = new WeakMap(), _MessageStream_response = new WeakMap(), _MessageStream_request_id = new WeakMap(), _MessageStream_workspace_id = new WeakMap(), _MessageStream_logger = new WeakMap(), _MessageStream_handleError = new WeakMap(), _MessageStream_instances = new WeakSet(), _MessageStream_getFinalMessage = function _MessageStream_getFinalMessage() {
350
- if (this.receivedMessages.length === 0) {
351
- throw new error_1.AnthropicError('stream ended without producing a Message with role=assistant');
192
+ abort() {
193
+ this.controller.abort();
352
194
  }
353
- return this.receivedMessages.at(-1);
354
- }, _MessageStream_getFinalText = function _MessageStream_getFinalText() {
355
- if (this.receivedMessages.length === 0) {
356
- throw new error_1.AnthropicError('stream ended without producing a Message with role=assistant');
195
+ /**
196
+ * Adds the listener function to the end of the listeners array for the event.
197
+ * No checks are made to see if the listener has already been added. Multiple calls passing
198
+ * the same combination of event and listener will result in the listener being added, and
199
+ * called, multiple times.
200
+ * @returns this MessageStream, so that calls can be chained
201
+ */
202
+ on(event, listener) {
203
+ const listeners = tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] || (tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] = []);
204
+ listeners.push({ listener });
205
+ return this;
357
206
  }
358
- const textBlocks = this.receivedMessages
359
- .at(-1)
360
- .content.filter((block) => block.type === 'text')
361
- .map((block) => block.text);
362
- if (textBlocks.length === 0) {
363
- throw new error_1.AnthropicError('stream ended without producing a content block with type=text');
207
+ /**
208
+ * Removes the specified listener from the listener array for the event.
209
+ * off() will remove, at most, one instance of a listener from the listener array. If any single
210
+ * listener has been added multiple times to the listener array for the specified event, then
211
+ * off() must be called multiple times to remove each instance.
212
+ * @returns this MessageStream, so that calls can be chained
213
+ */
214
+ off(event, listener) {
215
+ const listeners = tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event];
216
+ if (!listeners)
217
+ return this;
218
+ const index = listeners.findIndex((l) => l.listener === listener);
219
+ if (index >= 0)
220
+ listeners.splice(index, 1);
221
+ return this;
364
222
  }
365
- return textBlocks.join(' ');
366
- }, _MessageStream_beginRequest = function _MessageStream_beginRequest() {
367
- if (this.ended)
368
- return;
369
- tslib_1.__classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, undefined, "f");
370
- }, _MessageStream_addStreamEvent = function _MessageStream_addStreamEvent(event) {
371
- if (this.ended)
372
- return;
373
- const messageSnapshot = tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_accumulateMessage).call(this, event);
374
- this._emit('streamEvent', event, messageSnapshot);
375
- switch (event.type) {
376
- case 'content_block_delta': {
377
- const content = messageSnapshot.content.at(-1);
378
- switch (event.delta.type) {
379
- case 'text_delta': {
380
- if (content.type === 'text') {
381
- this._emit('text', event.delta.text, content.text || '');
382
- }
383
- break;
384
- }
385
- case 'citations_delta': {
386
- if (content.type === 'text') {
387
- this._emit('citation', event.delta.citation, content.citations ?? []);
388
- }
389
- break;
390
- }
391
- case 'input_json_delta': {
392
- if (tracksToolInput(content) && tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f").inputJson?.length) {
393
- this._emit('inputJson', event.delta.partial_json, content.input);
394
- }
395
- break;
396
- }
397
- case 'thinking_delta': {
398
- if (content.type === 'thinking') {
399
- this._emit('thinking', event.delta.thinking, content.thinking);
400
- }
401
- break;
402
- }
403
- case 'signature_delta': {
404
- if (content.type === 'thinking') {
405
- this._emit('signature', content.signature);
406
- }
407
- break;
408
- }
409
- default:
410
- (0, values_1.checkNever)(event.delta);
411
- }
412
- break;
413
- }
414
- case 'message_stop': {
415
- this._addMessageParam(messageSnapshot);
416
- this._addMessage((0, parser_1.maybeParseMessage)(messageSnapshot, tslib_1.__classPrivateFieldGet(this, _MessageStream_params, "f"), { logger: tslib_1.__classPrivateFieldGet(this, _MessageStream_logger, "f") }), true);
417
- break;
418
- }
419
- case 'content_block_stop': {
420
- this._emit('contentBlock', messageSnapshot.content.at(-1));
421
- break;
422
- }
423
- case 'message_start': {
424
- tslib_1.__classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, messageSnapshot, "f");
425
- break;
426
- }
427
- case 'content_block_start':
428
- case 'message_delta':
429
- break;
223
+ /**
224
+ * Adds a one-time listener function for the event. The next time the event is triggered,
225
+ * this listener is removed and then invoked.
226
+ * @returns this MessageStream, so that calls can be chained
227
+ */
228
+ once(event, listener) {
229
+ const listeners = tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] || (tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] = []);
230
+ listeners.push({ listener, once: true });
231
+ return this;
430
232
  }
431
- }, _MessageStream_endRequest = function _MessageStream_endRequest() {
432
- if (this.ended) {
433
- throw new error_1.AnthropicError(`stream has ended, this shouldn't happen`);
233
+ /**
234
+ * This is similar to `.once()`, but returns a Promise that resolves the next time
235
+ * the event is triggered, instead of calling a listener callback.
236
+ * @returns a Promise that resolves the next time given event is triggered,
237
+ * or rejects if an error is emitted. (If you request the 'error' event,
238
+ * returns a promise that resolves with the error).
239
+ *
240
+ * Example:
241
+ *
242
+ * const message = await stream.emitted('message') // rejects if the stream errors
243
+ */
244
+ emitted(event) {
245
+ return new Promise((resolve, reject) => {
246
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, "f");
247
+ if (event !== 'error')
248
+ this.once('error', reject);
249
+ this.once(event, resolve);
250
+ });
434
251
  }
435
- const snapshot = tslib_1.__classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, "f");
436
- if (!snapshot) {
437
- throw new error_1.AnthropicError(`request ended without sending any chunks`);
252
+ async done() {
253
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_catchingPromiseCreated, true, "f");
254
+ await tslib_1.__classPrivateFieldGet(this, _MessageStream_endPromise, "f");
438
255
  }
439
- tslib_1.__classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, undefined, "f");
440
- return (0, parser_1.maybeParseMessage)(snapshot, tslib_1.__classPrivateFieldGet(this, _MessageStream_params, "f"), { logger: tslib_1.__classPrivateFieldGet(this, _MessageStream_logger, "f") });
441
- }, _MessageStream_accumulateMessage = function _MessageStream_accumulateMessage(event) {
442
- let snapshot = tslib_1.__classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, "f");
443
- if (event.type === 'message_start') {
444
- if (snapshot) {
445
- throw new error_1.AnthropicError(`Unexpected event order, got ${event.type} before receiving "message_stop"`);
446
- }
447
- return event.message;
256
+ get currentMessage() {
257
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, "f");
448
258
  }
449
- if (!snapshot) {
450
- throw new error_1.AnthropicError(`Unexpected event order, got ${event.type} before "message_start"`);
259
+ /**
260
+ * @returns a promise that resolves with the the final assistant Message response,
261
+ * or rejects if an error occurred or the stream ended prematurely without producing a Message.
262
+ * If structured outputs were used, this will be a ParsedMessage with a `parsed_output` field.
263
+ */
264
+ async finalMessage() {
265
+ await this.done();
266
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_getFinalMessage).call(this);
451
267
  }
452
- switch (event.type) {
453
- case 'message_stop':
454
- return snapshot;
455
- case 'message_delta':
456
- snapshot.stop_reason = event.delta.stop_reason;
457
- snapshot.stop_sequence = event.delta.stop_sequence;
458
- snapshot.stop_details = event.delta.stop_details;
459
- snapshot.usage.output_tokens = event.usage.output_tokens;
460
- if (event.delta.container != null) {
461
- snapshot.container = event.delta.container;
462
- }
463
- // The remaining usage counters are cumulative whole-message totals that are
464
- // omitted when they don't apply, so overwrite when present and never add.
465
- if (event.usage.input_tokens != null) {
466
- snapshot.usage.input_tokens = event.usage.input_tokens;
268
+ /**
269
+ * @returns a promise that resolves with the the final assistant Message's text response, concatenated
270
+ * together if there are more than one text blocks.
271
+ * Rejects if an error occurred or the stream ended prematurely without producing a Message.
272
+ */
273
+ async finalText() {
274
+ await this.done();
275
+ return tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_getFinalText).call(this);
276
+ }
277
+ _emit(event, ...args) {
278
+ // make sure we don't emit any MessageStreamEvents after end
279
+ if (tslib_1.__classPrivateFieldGet(this, _MessageStream_ended, "f"))
280
+ return;
281
+ if (event === 'end') {
282
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_ended, true, "f");
283
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_resolveEndPromise, "f").call(this);
284
+ }
285
+ const listeners = tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event];
286
+ if (listeners) {
287
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f")[event] = listeners.filter((l) => !l.once);
288
+ listeners.forEach(({ listener }) => listener(...args));
289
+ }
290
+ if (event === 'abort') {
291
+ const error = args[0];
292
+ if (!tslib_1.__classPrivateFieldGet(this, _MessageStream_catchingPromiseCreated, "f") && !listeners?.length) {
293
+ Promise.reject(error);
467
294
  }
468
- if (event.usage.cache_creation_input_tokens != null) {
469
- snapshot.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens;
295
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_rejectConnectedPromise, "f").call(this, error);
296
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_rejectEndPromise, "f").call(this, error);
297
+ this._emit('end');
298
+ return;
299
+ }
300
+ if (event === 'error') {
301
+ // NOTE: _emit('error', error) should only be called from #handleError().
302
+ const error = args[0];
303
+ if (!tslib_1.__classPrivateFieldGet(this, _MessageStream_catchingPromiseCreated, "f") && !listeners?.length) {
304
+ // Trigger an unhandled rejection if the user hasn't registered any error handlers.
305
+ // If you are seeing stack traces here, make sure to handle errors via either:
306
+ // - runner.on('error', () => ...)
307
+ // - await runner.done()
308
+ // - await runner.final...()
309
+ // - etc.
310
+ Promise.reject(error);
470
311
  }
471
- if (event.usage.cache_read_input_tokens != null) {
472
- snapshot.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens;
312
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_rejectConnectedPromise, "f").call(this, error);
313
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_rejectEndPromise, "f").call(this, error);
314
+ this._emit('end');
315
+ }
316
+ }
317
+ _emitFinal() {
318
+ const finalMessage = this.receivedMessages.at(-1);
319
+ if (finalMessage) {
320
+ this._emit('finalMessage', tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_getFinalMessage).call(this));
321
+ }
322
+ }
323
+ async _fromReadableStream(readableStream, options) {
324
+ const signal = options?.signal;
325
+ let abortHandler;
326
+ if (signal) {
327
+ if (signal.aborted)
328
+ this.controller.abort();
329
+ abortHandler = this.controller.abort.bind(this.controller);
330
+ signal.addEventListener('abort', abortHandler);
331
+ }
332
+ try {
333
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_beginRequest).call(this);
334
+ this._connected(null);
335
+ const stream = streaming_1.Stream.fromReadableStream(readableStream, this.controller);
336
+ for await (const event of stream) {
337
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_addStreamEvent).call(this, event);
473
338
  }
474
- if (event.usage.server_tool_use != null) {
475
- snapshot.usage.server_tool_use = event.usage.server_tool_use;
339
+ if (stream.controller.signal?.aborted) {
340
+ throw new error_1.APIUserAbortError();
476
341
  }
477
- if (event.usage.output_tokens_details != null) {
478
- snapshot.usage.output_tokens_details = event.usage.output_tokens_details;
342
+ tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_endRequest).call(this);
343
+ }
344
+ finally {
345
+ if (signal && abortHandler) {
346
+ signal.removeEventListener('abort', abortHandler);
479
347
  }
480
- return snapshot;
481
- case 'content_block_start':
482
- snapshot.content.push({ ...event.content_block });
483
- return snapshot;
484
- case 'content_block_delta': {
485
- const snapshotContent = snapshot.content.at(event.index);
486
- switch (event.delta.type) {
487
- case 'text_delta': {
488
- if (snapshotContent?.type === 'text') {
489
- snapshot.content[event.index] = {
490
- ...snapshotContent,
491
- text: (snapshotContent.text || '') + event.delta.text,
492
- };
348
+ }
349
+ }
350
+ [(_MessageStream_currentMessageSnapshot = new WeakMap(), _MessageStream_params = new WeakMap(), _MessageStream_connectedPromise = new WeakMap(), _MessageStream_resolveConnectedPromise = new WeakMap(), _MessageStream_rejectConnectedPromise = new WeakMap(), _MessageStream_endPromise = new WeakMap(), _MessageStream_resolveEndPromise = new WeakMap(), _MessageStream_rejectEndPromise = new WeakMap(), _MessageStream_listeners = new WeakMap(), _MessageStream_ended = new WeakMap(), _MessageStream_errored = new WeakMap(), _MessageStream_aborted = new WeakMap(), _MessageStream_catchingPromiseCreated = new WeakMap(), _MessageStream_response = new WeakMap(), _MessageStream_request_id = new WeakMap(), _MessageStream_workspace_id = new WeakMap(), _MessageStream_logger = new WeakMap(), _MessageStream_handleError = new WeakMap(), _MessageStream_instances = new WeakSet(), _MessageStream_getFinalMessage = function _MessageStream_getFinalMessage() {
351
+ if (this.receivedMessages.length === 0) {
352
+ throw new error_1.AnthropicError('stream ended without producing a Message with role=assistant');
353
+ }
354
+ return this.receivedMessages.at(-1);
355
+ }, _MessageStream_getFinalText = function _MessageStream_getFinalText() {
356
+ if (this.receivedMessages.length === 0) {
357
+ throw new error_1.AnthropicError('stream ended without producing a Message with role=assistant');
358
+ }
359
+ const textBlocks = this.receivedMessages
360
+ .at(-1)
361
+ .content.filter((block) => block.type === 'text')
362
+ .map((block) => block.text);
363
+ if (textBlocks.length === 0) {
364
+ throw new error_1.AnthropicError('stream ended without producing a content block with type=text');
365
+ }
366
+ return textBlocks.join(' ');
367
+ }, _MessageStream_beginRequest = function _MessageStream_beginRequest() {
368
+ if (this.ended)
369
+ return;
370
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, undefined, "f");
371
+ }, _MessageStream_addStreamEvent = function _MessageStream_addStreamEvent(event) {
372
+ if (this.ended)
373
+ return;
374
+ const messageSnapshot = tslib_1.__classPrivateFieldGet(this, _MessageStream_instances, "m", _MessageStream_accumulateMessage).call(this, event);
375
+ this._emit('streamEvent', event, messageSnapshot);
376
+ switch (event.type) {
377
+ case 'content_block_delta': {
378
+ const content = messageSnapshot.content.at(-1);
379
+ switch (event.delta.type) {
380
+ case 'text_delta': {
381
+ if (content.type === 'text') {
382
+ this._emit('text', event.delta.text, content.text || '');
383
+ }
384
+ break;
493
385
  }
494
- break;
495
- }
496
- case 'citations_delta': {
497
- if (snapshotContent?.type === 'text') {
498
- snapshot.content[event.index] = {
499
- ...snapshotContent,
500
- citations: [...(snapshotContent.citations ?? []), event.delta.citation],
501
- };
386
+ case 'citations_delta': {
387
+ if (content.type === 'text') {
388
+ this._emit('citation', event.delta.citation, content.citations ?? []);
389
+ }
390
+ break;
502
391
  }
503
- break;
504
- }
505
- case 'input_json_delta': {
506
- if (snapshotContent && tracksToolInput(snapshotContent)) {
507
- const jsonBuf = (snapshotContent[message_stream_utils_1.JSON_BUF_PROPERTY] || '') + event.delta.partial_json;
508
- snapshot.content[event.index] = (0, message_stream_utils_1.withLazyInput)(snapshotContent, jsonBuf);
392
+ case 'input_json_delta': {
393
+ if (tracksToolInput(content) && tslib_1.__classPrivateFieldGet(this, _MessageStream_listeners, "f").inputJson?.length) {
394
+ this._emit('inputJson', event.delta.partial_json, content.input);
395
+ }
396
+ break;
509
397
  }
510
- break;
511
- }
512
- case 'thinking_delta': {
513
- if (snapshotContent?.type === 'thinking') {
514
- snapshot.content[event.index] = {
515
- ...snapshotContent,
516
- thinking: snapshotContent.thinking + event.delta.thinking,
517
- };
398
+ case 'thinking_delta': {
399
+ if (content.type === 'thinking') {
400
+ this._emit('thinking', event.delta.thinking, content.thinking);
401
+ }
402
+ break;
518
403
  }
519
- break;
520
- }
521
- case 'signature_delta': {
522
- if (snapshotContent?.type === 'thinking') {
523
- snapshot.content[event.index] = {
524
- ...snapshotContent,
525
- signature: event.delta.signature,
526
- };
404
+ case 'signature_delta': {
405
+ if (content.type === 'thinking') {
406
+ this._emit('signature', content.signature);
407
+ }
408
+ break;
527
409
  }
528
- break;
410
+ default:
411
+ (0, values_1.checkNever)(event.delta);
529
412
  }
530
- default:
531
- (0, values_1.checkNever)(event.delta);
413
+ break;
532
414
  }
533
- return snapshot;
534
- }
535
- case 'content_block_stop': {
536
- const snapshotContent = snapshot.content.at(event.index);
537
- if (snapshotContent && tracksToolInput(snapshotContent) && message_stream_utils_1.JSON_BUF_PROPERTY in snapshotContent) {
538
- Object.defineProperty(snapshotContent, 'input', {
539
- value: snapshotContent.input,
540
- enumerable: true,
541
- configurable: true,
542
- writable: true,
543
- });
415
+ case 'message_stop': {
416
+ this._addMessageParam(messageSnapshot);
417
+ this._addMessage((0, parser_1.maybeParseMessage)(messageSnapshot, tslib_1.__classPrivateFieldGet(this, _MessageStream_params, "f"), { logger: tslib_1.__classPrivateFieldGet(this, _MessageStream_logger, "f") }), true);
418
+ break;
544
419
  }
545
- return snapshot;
546
- }
547
- }
548
- }, Symbol.asyncIterator)]() {
549
- const pushQueue = [];
550
- const readQueue = [];
551
- let done = false;
552
- this.on('streamEvent', (event) => {
553
- const reader = readQueue.shift();
554
- if (reader) {
555
- reader.resolve(event);
420
+ case 'content_block_stop': {
421
+ this._emit('contentBlock', messageSnapshot.content.at(-1));
422
+ break;
423
+ }
424
+ case 'message_start': {
425
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, messageSnapshot, "f");
426
+ break;
427
+ }
428
+ case 'content_block_start':
429
+ case 'message_delta':
430
+ break;
556
431
  }
557
- else {
558
- pushQueue.push(event);
432
+ }, _MessageStream_endRequest = function _MessageStream_endRequest() {
433
+ if (this.ended) {
434
+ throw new error_1.AnthropicError(`stream has ended, this shouldn't happen`);
559
435
  }
560
- });
561
- this.on('end', () => {
562
- done = true;
563
- for (const reader of readQueue) {
564
- reader.resolve(undefined);
436
+ const snapshot = tslib_1.__classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, "f");
437
+ if (!snapshot) {
438
+ throw new error_1.AnthropicError(`request ended without sending any chunks`);
565
439
  }
566
- readQueue.length = 0;
567
- });
568
- this.on('abort', (err) => {
569
- done = true;
570
- for (const reader of readQueue) {
571
- reader.reject(err);
440
+ tslib_1.__classPrivateFieldSet(this, _MessageStream_currentMessageSnapshot, undefined, "f");
441
+ return (0, parser_1.maybeParseMessage)(snapshot, tslib_1.__classPrivateFieldGet(this, _MessageStream_params, "f"), { logger: tslib_1.__classPrivateFieldGet(this, _MessageStream_logger, "f") });
442
+ }, _MessageStream_accumulateMessage = function _MessageStream_accumulateMessage(event) {
443
+ let snapshot = tslib_1.__classPrivateFieldGet(this, _MessageStream_currentMessageSnapshot, "f");
444
+ if (event.type === 'message_start') {
445
+ if (snapshot) {
446
+ throw new error_1.AnthropicError(`Unexpected event order, got ${event.type} before receiving "message_stop"`);
447
+ }
448
+ return event.message;
572
449
  }
573
- readQueue.length = 0;
574
- });
575
- this.on('error', (err) => {
576
- done = true;
577
- for (const reader of readQueue) {
578
- reader.reject(err);
450
+ if (!snapshot) {
451
+ throw new error_1.AnthropicError(`Unexpected event order, got ${event.type} before "message_start"`);
579
452
  }
580
- readQueue.length = 0;
581
- });
582
- return {
583
- next: async () => {
584
- if (!pushQueue.length) {
585
- if (done) {
586
- return { value: undefined, done: true };
453
+ switch (event.type) {
454
+ case 'message_stop':
455
+ return snapshot;
456
+ case 'message_delta':
457
+ snapshot.stop_reason = event.delta.stop_reason;
458
+ snapshot.stop_sequence = event.delta.stop_sequence;
459
+ snapshot.stop_details = event.delta.stop_details;
460
+ snapshot.usage.output_tokens = event.usage.output_tokens;
461
+ if (event.delta.container != null) {
462
+ snapshot.container = event.delta.container;
463
+ }
464
+ // The remaining usage counters are cumulative whole-message totals that are
465
+ // omitted when they don't apply, so overwrite when present and never add.
466
+ if (event.usage.input_tokens != null) {
467
+ snapshot.usage.input_tokens = event.usage.input_tokens;
468
+ }
469
+ if (event.usage.cache_creation_input_tokens != null) {
470
+ snapshot.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens;
471
+ }
472
+ if (event.usage.cache_read_input_tokens != null) {
473
+ snapshot.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens;
474
+ }
475
+ if (event.usage.server_tool_use != null) {
476
+ snapshot.usage.server_tool_use = event.usage.server_tool_use;
477
+ }
478
+ if (event.usage.output_tokens_details != null) {
479
+ snapshot.usage.output_tokens_details = event.usage.output_tokens_details;
480
+ }
481
+ return snapshot;
482
+ case 'content_block_start':
483
+ snapshot.content.push({ ...event.content_block });
484
+ return snapshot;
485
+ case 'content_block_delta': {
486
+ const snapshotContent = snapshot.content.at(event.index);
487
+ switch (event.delta.type) {
488
+ case 'text_delta': {
489
+ if (snapshotContent?.type === 'text') {
490
+ snapshot.content[event.index] = {
491
+ ...snapshotContent,
492
+ text: (snapshotContent.text || '') + event.delta.text,
493
+ };
494
+ }
495
+ break;
496
+ }
497
+ case 'citations_delta': {
498
+ if (snapshotContent?.type === 'text') {
499
+ snapshot.content[event.index] = {
500
+ ...snapshotContent,
501
+ citations: [...(snapshotContent.citations ?? []), event.delta.citation],
502
+ };
503
+ }
504
+ break;
505
+ }
506
+ case 'input_json_delta': {
507
+ if (snapshotContent && tracksToolInput(snapshotContent)) {
508
+ const jsonBuf = (snapshotContent[message_stream_utils_1.JSON_BUF_PROPERTY] || '') + event.delta.partial_json;
509
+ snapshot.content[event.index] = (0, message_stream_utils_1.withLazyInput)(snapshotContent, jsonBuf);
510
+ }
511
+ break;
512
+ }
513
+ case 'thinking_delta': {
514
+ if (snapshotContent?.type === 'thinking') {
515
+ snapshot.content[event.index] = {
516
+ ...snapshotContent,
517
+ thinking: snapshotContent.thinking + event.delta.thinking,
518
+ };
519
+ }
520
+ break;
521
+ }
522
+ case 'signature_delta': {
523
+ if (snapshotContent?.type === 'thinking') {
524
+ snapshot.content[event.index] = {
525
+ ...snapshotContent,
526
+ signature: event.delta.signature,
527
+ };
528
+ }
529
+ break;
530
+ }
531
+ default:
532
+ (0, values_1.checkNever)(event.delta);
587
533
  }
588
- return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));
534
+ return snapshot;
589
535
  }
590
- const chunk = pushQueue.shift();
591
- return { value: chunk, done: false };
592
- },
593
- return: async () => {
594
- this.abort();
595
- return { value: undefined, done: true };
596
- },
597
- };
598
- }
599
- toReadableStream() {
600
- const stream = new streaming_1.Stream(this[Symbol.asyncIterator].bind(this), this.controller);
601
- return stream.toReadableStream();
536
+ case 'content_block_stop': {
537
+ const snapshotContent = snapshot.content.at(event.index);
538
+ if (snapshotContent && tracksToolInput(snapshotContent) && message_stream_utils_1.JSON_BUF_PROPERTY in snapshotContent) {
539
+ Object.defineProperty(snapshotContent, 'input', {
540
+ value: snapshotContent.input,
541
+ enumerable: true,
542
+ configurable: true,
543
+ writable: true,
544
+ });
545
+ }
546
+ return snapshot;
547
+ }
548
+ }
549
+ }, Symbol.asyncIterator)]() {
550
+ const pushQueue = [];
551
+ const readQueue = [];
552
+ let done = false;
553
+ this.on('streamEvent', (event) => {
554
+ const reader = readQueue.shift();
555
+ if (reader) {
556
+ reader.resolve(event);
557
+ }
558
+ else {
559
+ pushQueue.push(event);
560
+ }
561
+ });
562
+ this.on('end', () => {
563
+ done = true;
564
+ for (const reader of readQueue) {
565
+ reader.resolve(undefined);
566
+ }
567
+ readQueue.length = 0;
568
+ });
569
+ this.on('abort', (err) => {
570
+ done = true;
571
+ for (const reader of readQueue) {
572
+ reader.reject(err);
573
+ }
574
+ readQueue.length = 0;
575
+ });
576
+ this.on('error', (err) => {
577
+ done = true;
578
+ for (const reader of readQueue) {
579
+ reader.reject(err);
580
+ }
581
+ readQueue.length = 0;
582
+ });
583
+ return {
584
+ next: async () => {
585
+ if (!pushQueue.length) {
586
+ if (done) {
587
+ return { value: undefined, done: true };
588
+ }
589
+ return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));
590
+ }
591
+ const chunk = pushQueue.shift();
592
+ return { value: chunk, done: false };
593
+ },
594
+ return: async () => {
595
+ this.abort();
596
+ return { value: undefined, done: true };
597
+ },
598
+ };
599
+ }
600
+ toReadableStream() {
601
+ const stream = new streaming_1.Stream(this[Symbol.asyncIterator].bind(this), this.controller);
602
+ return stream.toReadableStream();
603
+ }
602
604
  }
603
- }
605
+ return MessageStream;
606
+ })();
604
607
  exports.MessageStream = MessageStream;
605
608
  //# sourceMappingURL=MessageStream.js.map